diff --git a/addons/website_crm_partner_assign/models/crm_lead.py b/addons/website_crm_partner_assign/models/crm_lead.py index 5e640e0beed..51428c46730 100644 --- a/addons/website_crm_partner_assign/models/crm_lead.py +++ b/addons/website_crm_partner_assign/models/crm_lead.py @@ -9,6 +9,7 @@ from odoo.exceptions import AccessDenied, AccessError class CrmLead(models.Model): _inherit = "crm.lead" + partner_latitude = fields.Float('Geo Latitude', digits=(16, 5)) partner_longitude = fields.Float('Geo Longitude', digits=(16, 5)) partner_assigned_id = fields.Many2one('res.partner', 'Assigned Partner', tracking=True, domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]", help="Partner this case has been forwarded/assigned to.", index=True) @@ -18,22 +19,25 @@ class CrmLead(models.Model): 'lead_id', 'partner_id', string='Partner not interested') - date_assign = fields.Date('Partner Assignment Date', help="Last date this case was forwarded/assigned to a partner") + date_partner_assign = fields.Date( + 'Partner Assignment Date', compute='_compute_date_partner_assign', + copy=True, readonly=False, store=True, + help="Last date this case was forwarded/assigned to a partner") def _merge_data(self, fields): fields += ['partner_latitude', 'partner_longitude', 'partner_assigned_id', 'date_assign'] return super(CrmLead, self)._merge_data(fields) @api.onchange("partner_assigned_id") - def onchange_assign_id(self): + def _compute_date_partner_assign(self): """This function updates the "assignation date" automatically, when manually assign a partner in the geo assign tab """ - partner_assigned = self.partner_assigned_id - if not partner_assigned: - self.date_assign = False - else: - self.date_assign = fields.Date.context_today(self) - self.user_id = partner_assigned.user_id + for lead in self: + if not lead.partner_assigned_id: + lead.date_partner_assign = False + else: + lead.date_assign = fields.Date.context_today(lead) + # self.user_id = partner_assigned.user_id def assign_salesman_of_assigned_partner(self): salesmans_leads = {} @@ -65,8 +69,7 @@ class CrmLead(models.Model): partner = self.env['res.partner'].browse(partner_id) if partner.user_id: lead.handle_salesmen_assignment(partner.user_id.ids, team_id=partner.team_id.id) - values = {'date_assign': fields.Date.context_today(lead), 'partner_assigned_id': partner_id} - lead.write(values) + lead.write({'partner_assigned_id': partner_id}) return res def assign_geo_localize(self, latitude=False, longitude=False): diff --git a/addons/website_crm_partner_assign/models/res_partner.py b/addons/website_crm_partner_assign/models/res_partner.py index 93c45db11b4..bc4a0202d95 100644 --- a/addons/website_crm_partner_assign/models/res_partner.py +++ b/addons/website_crm_partner_assign/models/res_partner.py @@ -37,7 +37,9 @@ class ResPartnerActivation(models.Model): class ResPartner(models.Model): _inherit = "res.partner" - partner_weight = fields.Integer('Level Weight', default=0, tracking=True, + partner_weight = fields.Integer( + 'Level Weight', compute='_compute_partner_weight', + copy=True, readonly=False, store=True, tracking=True, help="This should be a numerical value greater than 0 which will decide the contention for this partner to take this lead/opportunity.") grade_id = fields.Many2one('res.partner.grade', 'Partner Level', tracking=True) grade_sequence = fields.Integer(related='grade_id.sequence', readonly=True, store=True) @@ -60,7 +62,7 @@ class ResPartner(models.Model): for partner in self: partner.implemented_count = len(partner.implemented_partner_ids.filtered('website_published')) - @api.onchange('grade_id') - def _onchange_grade_id(self): - grade = self.grade_id - self.partner_weight = grade.partner_weight if grade else 0 + @api.depends('grade_id.partner_weight') + def _compute_partner_weight(self): + for partner in self: + partner.partner_weight = partner.grade_id.partner_weight if partner.grade_id else 0 diff --git a/addons/website_crm_partner_assign/views/crm_lead_views.xml b/addons/website_crm_partner_assign/views/crm_lead_views.xml index 229290f92e7..161519522f2 100644 --- a/addons/website_crm_partner_assign/views/crm_lead_views.xml +++ b/addons/website_crm_partner_assign/views/crm_lead_views.xml @@ -39,7 +39,7 @@ - +