summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/website_crm_partner_assign/models/crm_lead.py23
-rw-r--r--addons/website_crm_partner_assign/models/res_partner.py12
-rw-r--r--addons/website_crm_partner_assign/views/crm_lead_views.xml2
3 files changed, 21 insertions, 16 deletions
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 @@
<field name="arch" type="xml">
<field name="user_id" position="before">
<field name="partner_assigned_id" optional="show"/>
- <field name="date_assign" invisible="1"/>
+ <field name="date_partner_assign" invisible="1"/>
</field>
</field>
</record>