TIP: You can type at any time to perform a new search.
Resellers
website_crm_partner_assign · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.2
- Category
- Website/Website
- Folder size
- 4.71 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- None
- Last tracking update
- 2026-08-15 22:44:18
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Xavier ALT, Raphael Collet, Thibault Delavallée, Odoo Translation Bot, Nicolas Martinelli, Géry Debongnie, Jeremy Kersten, qsm-odoo, Moens Alexandre, Julien Castiaux, Sébastien Theys, Prakash Prajapati, Rémy Voet (ryv), Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, Benjamin Vray, Benoit Socias, Nicolas Bayet, Renaud Thiry, Maximilien (malb), Victor Piryns (pivi), Maruan Aguerdouh (magm), Dylan Kiss (dyki), Antoine (ande), FrancoisGe, omra-odoo, Serge Bayet (seba), vava-odoo, mano-odoo, thle-odoo, guce, yagp-odoo, Pierre Pulinckx, Krzysztof Magusiak (krma), Tyler Landivar (tylan), defl, Augustin (duau), Alessandro Lupo, saurabh, Séna Nshimiyimana, chpa-odoo
- Odoo dependencies
- Python dependencies
- geoip2
- System dependencies
- None
- Required by
- test_crm_full, website_customer
- Description
This module allows to publish your resellers/partners on your website and to forward incoming leads/opportunities to them. **Publish a partner** To publish a partner, set a *Level* in their contact form (in the Partner Assignment section) and click the *Publish* button. **Forward leads** Forwarding leads can be done for one or several leads at a time. The action is available in the *Assigned Partner* section of the lead/opportunity form view and in the *Action* menu of the list view. The automatic assignment is figured from the weight of partner levels and the geolocalization. Partners get leads that are located around them.
Code Analysis ⓘ
Views touched (38)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
contact_details |
Contact Details | ir.ui.view | qweb | Inherits website_crm_partner_assign.partner |
crm_lead_forward_to_partner_form |
crm_lead_forward_to_partner | crm.lead.forward.to.partner | form | New |
crm_lead_merge_summary_inherit_partner_assign |
crm_lead_merge_summary_inherit_partner_assign | ir.ui.view | qweb | Inherits crm.crm_lead_merge_summary |
crm_lead_partner_filter |
crm.lead.partner.filter.assigned | crm.lead | Inherits crm.view_crm_case_leads_filter | |
crm_lead_view_graph |
crm.lead.view.graph.inherit.partner.assign | crm.lead | graph | Inherits crm.crm_lead_view_graph |
crm_lead_view_graph_forecast |
crm.lead.view.graph.forecast.inherit.website.crm.partner.assign | crm.lead | graph | Inherits crm.crm_lead_view_graph_forecast |
crm_lead_view_graph_report_lead |
crm.lead.view.graph.report.lead.inherit.partner.assign | crm.lead | graph | Inherits crm.crm_opportunity_report_view_graph_lead |
crm_lead_view_graph_report_opportunity |
crm.lead.view.graph.report.opportunity.inherit.partner.assign | crm.lead | graph | Inherits crm.crm_opportunity_report_view_graph |
crm_lead_view_kanban |
crm.lead.view.kanban.inherit.website.crm.partner.assign | crm.lead | kanban | Inherits crm.crm_case_kanban_view_leads |
crm_lead_view_pivot |
crm.lead.view.pivot.inherit.partner.assign | crm.lead | pivot | Inherits crm.crm_lead_view_pivot |
crm_lead_view_pivot_forecast |
crm.lead.view.pivot.forecast.inherit.website.crm.partner.assign | crm.lead | pivot | Inherits crm.crm_lead_view_pivot_forecast |
crm_opportunity_partner_filter |
crm.opportunity.partner.filter.assigned | crm.lead | Inherits crm.view_crm_case_opportunities_filter | |
crm_opportunity_report_view_pivot_lead |
crm.opportunity.report.view.pivot.lead.inherit.partner_assign | crm.lead | pivot | Inherits crm.crm_opportunity_report_view_pivot_lead |
grade_in_detail |
grade_in_detail | ir.ui.view | qweb | Inherits website_partner.partner_detail |
index |
Find Resellers | ir.ui.view | qweb | New |
index_filter_by_industry |
Filter Industries | ir.ui.view | qweb | Inherits index |
layout |
Partners Layout | ir.ui.view | qweb | New |
o_wcrm_partner_address |
Address | ir.ui.view | qweb | Inherits website_crm_partner_assign.index |
partner |
Partner Detail | ir.ui.view | qweb | New |
portal_my_home_lead |
Leads / Opps | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_home_menu_lead |
Portal layout : lead menu entry | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_lead |
My Lead | ir.ui.view | qweb | New |
portal_my_leads |
My Leads | ir.ui.view | qweb | New |
portal_my_opportunities |
My Opportunities | ir.ui.view | qweb | New |
portal_my_opportunity |
My Opportunity | ir.ui.view | qweb | New |
ref_country |
World Map | ir.ui.view | qweb | Inherits website_crm_partner_assign.index |
references_block |
Partner References Block | ir.ui.view | qweb | New |
res_partner_activation_form |
res.partner.activation.form | res.partner.activation | form | New |
res_partner_activation_tree |
res.partner.activation.list | res.partner.activation | list | New |
res_partner_activation_view_search |
res.partner.activation.view.search | res.partner.activation | search | New |
view_crm_lead_geo_assign_tree |
crm.lead.lead.geo_assign.list.inherit | crm.lead | list | Inherits crm.crm_case_tree_view_leads |
view_crm_lead_opportunity_geo_assign_form |
crm.lead.geo_assign.inherit | crm.lead | form | Inherits crm.crm_lead_view_form |
view_crm_opportunity_geo_assign_tree |
crm.lead.geo_assign.list.inherit | crm.lead | list | Inherits crm.crm_case_tree_view_oppor |
view_crm_partner_assign_form |
res.partner.assign.inherit | res.partner | form | Inherits base_geolocalize.view_crm_partner_geo_form |
view_partner_grade_form |
res.partner.grade.form | res.partner.grade | form | Inherits partnership.view_partner_grade_form |
view_report_crm_partner_assign_filter |
crm.partner.report.assign.select | crm.partner.report.assign | search | New |
view_report_crm_partner_assign_graph |
crm.partner.assign.report.graph | crm.partner.report.assign | graph | New |
view_res_partner_filter_assign_tree |
res.partner.geo.inherit.list | res.partner | list | Inherits base.view_partner_tree |
HTTP endpoints (6)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/my/lead/<model('crm.lead', "[('type','=', 'lead')]"):lead> |
WebsiteAccount.portal_my_lead |
user | http | ALL | website |
/my/leads, /my/leads/page/<int:page> |
WebsiteAccount.portal_my_leads |
user | http | ALL | website |
/my/opportunities, /my/opportunities/page/<int:page> |
WebsiteAccount.portal_my_opportunities |
user | http | ALL | sudo website |
/my/opportunity/<model('crm.lead', "[('type','=', 'opportunity')]"):opp> |
WebsiteAccount.portal_my_opportunity |
user | http | ALL | sudo website |
/partners, /partners/page/<int:page>, /partners/grade/<model("res.partner.grade"):grade>, /partners/grade/<model("res.partner.grade"):grade>/page/<int:page>, /partners/country/<model("res.country"):country>, /partners/country/<model("res.country"):country>/page/<int:page>, /partners/grade/<model("res.partner.grade"):grade>/country/<model("res.country"):country>, /partners/grade/<model("res.partner.grade"):grade>/country/<model("res.country"):country>/page/<int:page> |
WebsiteCrmPartnerAssign.partners |
public | http | ALL | website |
| (inherited route override) | WebsiteCrmPartnerAssign.partners_detail |
inherited | http | ALL | sudo |
Models touched (8)
New fields (5)
-
date_partner_assignDatecompute='_compute_date_partner_assign'copy=Truehelp='Last date this case was forwarded/assigned to a partner'readonly=Falsestore=True args: 'Partner Assignment Date' -
partner_assigned_idMany2one → res.partnerdomain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"index='btree_not_null'tracking=True args: 'res.partner', 'Assigned Partner' -
partner_declined_idsMany2many → res.partnerstring='Partner not interested' args: 'res.partner', 'crm_lead_declined_partner', 'lead_id', 'partner_id' -
partner_latitudeFloatdigits=(10, 7) args: 'Geo Latitude' -
partner_longitudeFloatdigits=(10, 7) args: 'Geo Longitude'
-
action_assign_partner(self)While assigning a partner, geo-localization is performed only for leads having country set (see method 'assign_geo_localize' and 'search_geo_partner'). So for leads that does not have country set, we show the notification, and for the rest, we geo-localize them. -
assign_geo_localize(self, latitude=False, longitude=False) -
assign_partner(self, partner_id=False) -
assign_salesman_of_assigned_partner(self) -
create_opp_portal(self, values)@api.model -
partner_desinterested(self, comment=False, contacted=False, spam=False) -
partner_interested(self, comment=False) -
search_geo_partner(self) -
update_contact_details_from_portal(self, values) -
update_lead_portal(self, values) -
update_stage_from_portal(self, stage_id)Allow portal users to update the stage of their assigned leads -
write(self, vals)
New fields (6)
-
forward_idMany2one → crm.lead.forward.to.partnerargs: 'crm.lead.forward.to.partner', 'Partner Assignment' -
lead_idMany2one → crm.leadargs: 'crm.lead', 'Lead' -
lead_linkCharargs: 'Link to Lead' -
lead_locationCharargs: 'Lead Location' -
partner_assigned_idMany2one → res.partnerargs: 'res.partner', 'Assigned Partner' -
partner_locationCharargs: 'Partner Location'
No public methods.
New fields (4)
-
assignation_linesOne2many → crm.lead.assignationargs: 'crm.lead.assignation', 'forward_id', 'Partner Assignment' -
bodyHtmlhelp='Automatically sanitized HTML contents' args: 'Contents' -
forward_typeSelectiondefault=<expr> args: [('single', 'a single partner: manual selection of partner'), ('assigned', "several partners: automatic assignment, using GPS coordinates and partner's grades")], 'Forward selected leads to' -
partner_idMany2one → res.partnerargs: 'res.partner', 'Forward Leads To'
-
action_forward(self) -
default_get(self, fields)@api.model -
get_lead_portal_url(self, lead)
New fields (10)
-
activationMany2one → res.partner.activationindex=True args: 'res.partner.activation', 'Activation' -
country_idMany2one → res.countryreadonly=True args: 'res.country', 'Country' -
dateDatereadonly=True args: 'Invoice Account Date' -
date_partnershipDateargs: 'Partnership Date' -
date_reviewDateargs: 'Latest Partner Review' -
grade_idMany2one → res.partner.gradereadonly=True args: 'res.partner.grade', 'Grade' -
nbr_opportunitiesIntegerreadonly=True args: '# of Opportunity' -
partner_idMany2one → res.partnerreadonly=Truerequired=False args: 'res.partner', 'Partner' -
turnoverFloatreadonly=True args: 'Turnover' -
user_idMany2one → res.usersreadonly=True args: 'res.users', 'User'
No public methods.
New fields (9)
-
activationMany2one → res.partner.activationindex='btree_not_null'tracking=True args: 'res.partner.activation', 'Activation' -
assigned_partner_idMany2one → res.partnerindex='btree_not_null' args: 'res.partner', 'Implemented by' -
date_partnershipDateargs: 'Partnership Date' -
date_reviewDateargs: 'Latest Review' -
date_review_nextDateargs: 'Next Review' -
grade_sequenceIntegerreadonly=Truerelated='grade_id.sequence'store=True -
implemented_partner_countIntegercompute='_compute_implemented_partner_count'store=True -
implemented_partner_idsOne2many → res.partnerstring='Implementation References' args: 'res.partner', 'assigned_partner_id' -
partner_weightIntegercompute='_compute_partner_weight'help='This should be a numerical value greater than 0 which will decide the contention for this partner to take this lead/opportunity.'readonly=Falsestore=Truetracking=True args: 'Level Weight'
-
default_get(self, fields)@api.model
New fields (3)
-
activeBooleandefault=True -
nameCharrequired=True args: 'Name' -
sequenceIntegerargs: 'Sequence'
No public methods.
New fields (1)
-
partner_weightIntegerdefault=1help='Gives the probability to assign a lead to this partner. (0 means no assignment.)' args: 'Level Weight'
No public methods.
New fields (0)
No new fields.
Public methods (1)-
get_suggested_controllers(self)
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…