TIP: You can type at any time to perform a new search.

Security findings

Repository
odoo/odoo · module folder
Module version
1.3
Category
Website/Website
Folder size
3.35 MB
License
LGPL-3
Application
No
Auto-installable
No
Website
None
Last tracking update
2026-10-05 00:19:50
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Raphael Collet, Thibault Delavallée, odoo, Odoo Translation Bot, Christophe Matthieu, Jeremy Kersten, Moens Alexandre, Julien Castiaux, Aurélien Warnon, Xavier-Do, Victor Feyens, Tiffany Chang (tic), Gorash, luvi, amdi-odoo, Pierre-Yves Dufays, Robin Lejeune (role), Maruan Aguerdouh (magm), Dylan Kiss (dyki), FrancoisGe, Sarah Bellefroid, omra-odoo, aktr-odoo, Chrysanthe (chgo), Harsh Shah, thle-odoo, Lucas Lefèvre (lul), Michaël Mattiello, pish-odoo, Krzysztof Magusiak (krma), Tyler Landivar (tylan), defl, Julien Launois (jula), dtda-odoo, Augustin (duau), Garvish Panchal, assk-odoo, Séna Nshimiyimana, Atovange, Kadam Darji, ELCO, chpa-odoo, Frantisek Binovsky, Francois Vasamillet (frva), Julien Piron, Mayur Barad
Odoo dependencies
Python dependencies
geoip2
System dependencies
None
Required by
test_crm_full, website_customer
Description
This module allows to forward incoming leads/opportunities to your resellers/partners.

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 info_outline

Views touched (43)
XML IDNameModelTypeStatus
categories_setting categories_setting ir.ui.view qweb Inherits website_partnership.categories_setting
contact_details Contact Details ir.ui.view qweb Inherits website_crm_partner_assign.partner
countries_setting Countries ir.ui.view qweb Inherits website_crm_partner_assign.index_content
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
index Find Resellers ir.ui.view qweb Inherits website_partnership.index_layout
index_content index_content ir.ui.view qweb Inherits website_partnership.index
industries_setting Filter Industries ir.ui.view qweb Inherits index_content
linked_partner_page_setting linked_partner_page_setting ir.ui.view qweb Inherits website_partnership.linked_partner_page_setting
partner partner ir.ui.view qweb Inherits website_partnership.partner_page
partner_detail partner_detail ir.ui.view qweb Inherits website_partnership.partner_detail
partner_pages_kanban_view Partner Pages Kanban res.partner kanban Inherits base.res_partner_kanban_view
partner_pages_tree_view Partner Pages List res.partner list Inherits partnership.view_res_partner_grade_tree
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_partnership.search_setting
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
search_setting search_setting ir.ui.view qweb Inherits website_partnership.search_setting
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 website_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
website_partnership.companies_only_setting New
HTTP endpoints (5)
Route(s)HandlerAuthTypeMethodsFlags
/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 user http ALL
Models touched (9)

New fields (5)
  • date_partner_assign Date
    compute='_compute_date_partner_assign' copy=True help='Last date this case was forwarded/assigned to a partner' readonly=False store=True args: 'Partner Assignment Date'
  • partner_assigned_id Many2one → res.partner
    domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]" index='btree_not_null' tracking=True args: 'res.partner', 'Assigned Partner'
  • partner_declined_ids Many2many → res.partner
    string='Partner not interested' args: 'res.partner', 'crm_lead_declined_partner', 'lead_id', 'partner_id'
  • partner_latitude Float
    digits=(10, 7) args: 'Latitude'
  • partner_longitude Float
    digits=(10, 7) args: 'Longitude'
Public methods (12)
  • 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_id Many2one → crm.lead.forward.to.partner
    args: 'crm.lead.forward.to.partner', 'Partner Assignment'
  • lead_id Many2one → crm.lead
    args: 'crm.lead', 'Lead'
  • lead_link Char
    args: 'Link to Lead'
  • lead_location Char
    args: 'Lead Location'
  • partner_assigned_id Many2one → res.partner
    args: 'res.partner', 'Assigned Partner'
  • partner_location Char
    args: 'Partner Location'
Public methods (0)

No public methods.

New fields (4)
  • assignation_lines One2many → crm.lead.assignation
    args: 'crm.lead.assignation', 'forward_id', 'Partner Assignment'
  • body Html
    help='Automatically sanitized HTML contents' args: 'Contents'
  • forward_type Selection
    default=<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_id Many2one → res.partner
    args: 'res.partner', 'Forward Leads To'
Public methods (3)
  • action_forward(self)
  • default_get(self, fields)
    @api.model
  • get_lead_portal_url(self, lead)

New fields (10)
  • activation Many2one → res.partner.activation
    index=True args: 'res.partner.activation', 'Activation'
  • country_id Many2one → res.country
    readonly=True args: 'res.country', 'Country'
  • date Date
    readonly=True args: 'Invoice Account Date'
  • date_partnership Date
    args: 'Partnership Date'
  • date_review Date
    args: 'Latest Partner Review'
  • grade_id Many2one → res.partner.grade
    readonly=True args: 'res.partner.grade', 'Grade'
  • nbr_opportunities Integer
    readonly=True args: '# of Opportunity'
  • partner_id Many2one → res.partner
    readonly=True required=False args: 'res.partner', 'Partner'
  • turnover Float
    readonly=True args: 'Turnover'
  • user_id Many2one → res.users
    readonly=True args: 'res.users', 'User'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (9)
  • activation Many2one → res.partner.activation
    index='btree_not_null' tracking=True args: 'res.partner.activation', 'Activation'
  • assigned_partner_id Many2one → res.partner
    index='btree_not_null' args: 'res.partner', 'Implemented by'
  • date_partnership Date
    args: 'Partnership Date'
  • date_review Date
    args: 'Latest Review'
  • date_review_next Date
    args: 'Next Review'
  • grade_sequence Integer
    readonly=True related='grade_id.sequence' store=True
  • implemented_partner_count Integer
    compute='_compute_implemented_partner_count' store=True
  • implemented_partner_ids One2many → res.partner
    string='Implementation References' args: 'res.partner', 'assigned_partner_id'
  • partner_weight Integer
    compute='_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=False store=True tracking=True args: 'Level Weight'
Public methods (2)
  • default_get(self, fields)
    @api.model
  • write(self, vals)
    Recompute geolocation when a portal user updates their address. Portal users cannot manually refresh geolocation. Since geolocation is used for automatic lead assignment, recompute it when a portal user updates their address and the partner is eligible for assignment (graded and previously geolocated).

New fields (3)
  • active Boolean
    default=True
  • name Char
    required=True args: 'Name'
  • sequence Integer
    args: 'Sequence'
Public methods (0)

No public methods.

New fields (1)
  • partner_weight Integer
    default=1 help='Gives the probability to assign a lead to this partner. (0 means no assignment.)' args: 'Level Weight'
Public methods (0)

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…

Loading…