From f669ebeaf5837ad4bd7014c8e7e7f30377a6bd06 Mon Sep 17 00:00:00 2001 From: Jeremy Kersten Date: Tue, 13 Sep 2016 15:20:05 +0200 Subject: [PATCH] [FIX] website_crm_partner_assign: fix portal lead/issue to use commercial_partner_id Before this commit, only partner really assigned to the lead AND with a grade was able to see their leads. Now we check that the top level partner (commercial_partner_id) has a grade, and show all the leads under this commercial_partner_id. Try to get the same behaviour that previous portal backend. opw-688359 --- .../controllers/main.py | 26 ++++++++++++------- .../website_crm_partner_assign_templates.xml | 12 ++++----- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/addons/website_crm_partner_assign/controllers/main.py b/addons/website_crm_partner_assign/controllers/main.py index 9b04efee0fe..c754feea201 100644 --- a/addons/website_crm_partner_assign/controllers/main.py +++ b/addons/website_crm_partner_assign/controllers/main.py @@ -16,17 +16,23 @@ from odoo.addons.website_portal.controllers.main import website_account class WebsiteAccount(website_account): + def get_domain_my_lead(self, user): + return [ + ('partner_assigned_id', 'child_of', user.commercial_partner_id.id), + ('type', '=', 'lead') + ] + + def get_domain_my_opp(self, user): + return [ + ('partner_assigned_id', 'child_of', user.commercial_partner_id.id), + ('type', '=', 'opportunity') + ] + @http.route() def account(self): response = super(WebsiteAccount, self).account() - lead_count = request.env['crm.lead'].search_count([ - ('partner_assigned_id', '=', request.env.user.partner_id.id), - ('type', '=', 'lead') - ]) - opp_count = request.env['crm.lead'].search_count([ - ('partner_assigned_id', '=', request.env.user.partner_id.id), - ('type', '=', 'opportunity') - ]) + lead_count = request.env['crm.lead'].search_count(self.get_domain_my_lead(request.env.user)) + opp_count = request.env['crm.lead'].search_count(self.get_domain_my_opp(request.env.user)) response.qcontext.update({'lead_count': lead_count, 'opp_count': opp_count}) return response @@ -34,7 +40,7 @@ class WebsiteAccount(website_account): def portal_my_leads(self, page=1, date_begin=None, date_end=None, lead=None, sortby=None, **kw): values = self._prepare_portal_layout_values() CrmLead = request.env['crm.lead'] - domain = [('partner_assigned_id', '=', request.env.user.partner_id.id), ('type', '=', 'lead')] + domain = self.get_domain_my_lead(request.env.user) sortings = { 'date': {'label': _('Newest'), 'order': 'create_date desc'}, @@ -77,7 +83,7 @@ class WebsiteAccount(website_account): def portal_my_opportunities(self, page=1, date_begin=None, date_end=None, opportunity=None, sortby=None, **kw): values = self._prepare_portal_layout_values() CrmLead = request.env['crm.lead'] - domain = [('partner_assigned_id', '=', request.env.user.partner_id.id), ('type', '=', 'opportunity')] + domain = self.get_domain_my_opp(request.env.user) today = fields.Date.today() this_week_end_date = fields.Date.to_string(fields.Date.from_string(today) + datetime.timedelta(days=7)) diff --git a/addons/website_crm_partner_assign/views/website_crm_partner_assign_templates.xml b/addons/website_crm_partner_assign/views/website_crm_partner_assign_templates.xml index 5fdb3dae5aa..3e9638fbf64 100644 --- a/addons/website_crm_partner_assign/views/website_crm_partner_assign_templates.xml +++ b/addons/website_crm_partner_assign/views/website_crm_partner_assign_templates.xml @@ -194,7 +194,7 @@