[FIX] website: rename user_partner_id -> partner_id

It is just a partner_id not a user related field

task-2072877

closes odoo/odoo#37102

Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
This commit is contained in:
fja-odoo
2019-10-01 19:50:00 +00:00
committed by Jeremy Kersten
parent 7d6479e175
commit 950f252ba6
8 changed files with 34 additions and 35 deletions
+3 -4
View File
@@ -64,14 +64,13 @@ class ResUsers(models.Model):
visitor_sudo = env['website.visitor']._get_visitor_from_request()
if visitor_sudo:
partner = env.user.partner_id
partner_visitor = env['website.visitor'].sudo().search([('user_partner_id', '=', partner.id)])
partner_visitor = env['website.visitor'].sudo().search([('partner_id', '=', partner.id)])
if partner_visitor and partner_visitor.id != visitor_sudo.id:
tracks = visitor_sudo.website_track_ids
tracks.write({'visitor_id': partner_visitor.id})
visitor_sudo.website_track_ids.write({'visitor_id': partner_visitor.id})
visitor_sudo.unlink()
else:
vals = {
'user_partner_id': partner.id,
'partner_id': partner.id,
'name': partner.name
}
visitor_sudo.write(vals)
+14 -14
View File
@@ -33,8 +33,8 @@ class WebsiteVisitor(models.Model):
access_token = fields.Char(required=True, default=lambda x: uuid.uuid4().hex, index=True, copy=False, groups='base.group_website_publisher')
active = fields.Boolean('Active', default=True)
website_id = fields.Many2one('website', "Website", readonly=True)
user_partner_id = fields.Many2one('res.partner', string="Linked Partner", help="Partner of the last logged in user.")
partner_image = fields.Binary(related='user_partner_id.image_1920')
partner_id = fields.Many2one('res.partner', string="Linked Partner", help="Partner of the last logged in user.")
partner_image = fields.Binary(related='partner_id.image_1920')
# localisation and info
country_id = fields.Many2one('res.country', 'Country', readonly=True)
@@ -60,7 +60,7 @@ class WebsiteVisitor(models.Model):
_sql_constraints = [
('access_token_unique', 'unique(access_token)', 'Access token should be unique.'),
('partner_uniq', 'unique(user_partner_id)', 'A partner is linked to only one visitor.'),
('partner_uniq', 'unique(partner_id)', 'A partner is linked to only one visitor.'),
]
@api.depends('name')
@@ -70,10 +70,10 @@ class WebsiteVisitor(models.Model):
(record.name or _('Website Visitor #%s') % record.id)
) for record in self]
@api.depends('user_partner_id.email_normalized', 'user_partner_id.mobile')
@api.depends('partner_id.email_normalized', 'partner_id.mobile')
def _compute_email_phone(self):
results = self.env['res.partner'].search_read(
[('id', 'in', self.user_partner_id.ids)],
[('id', 'in', self.partner_id.ids)],
['id', 'email_normalized', 'mobile'],
)
mapped_data = {
@@ -84,8 +84,8 @@ class WebsiteVisitor(models.Model):
}
for visitor in self:
visitor.email = mapped_data.get(visitor.user_partner_id.id, {}).get('email_normalized')
visitor.mobile = mapped_data.get(visitor.user_partner_id.id, {}).get('mobile')
visitor.email = mapped_data.get(visitor.partner_id.id, {}).get('email_normalized')
visitor.mobile = mapped_data.get(visitor.partner_id.id, {}).get('mobile')
@api.depends('website_track_ids')
def _compute_page_statistics(self):
@@ -126,11 +126,11 @@ class WebsiteVisitor(models.Model):
visitor.is_connected = (datetime.now() - last_connection_date) < timedelta(minutes=5)
def _prepare_visitor_send_mail_values(self):
if self.user_partner_id.email:
if self.partner_id.email:
return {
'res_model': 'res.partner',
'res_id': self.user_partner_id.id,
'partner_ids': [self.user_partner_id.id],
'res_id': self.partner_id.id,
'partner_ids': [self.partner_id.id],
}
return {}
@@ -174,10 +174,10 @@ class WebsiteVisitor(models.Model):
if not request.env.user._is_public():
partner_id = request.env.user.partner_id
if not visitor or visitor.user_partner_id != partner_id:
if not visitor or visitor.partner_id != partner_id:
# Partner and no cookie or wrong cookie
visitor = Visitor.with_context(active_test=False).search([('user_partner_id', '=', partner_id.id)])
elif visitor and visitor.user_partner_id:
visitor = Visitor.with_context(active_test=False).search([('partner_id', '=', partner_id.id)])
elif visitor and visitor.partner_id:
# Cookie associated to a Partner
visitor = Visitor
return visitor
@@ -236,7 +236,7 @@ class WebsiteVisitor(models.Model):
'website_id': request.website.id,
}
if not self.env.user._is_public():
vals['user_partner_id'] = self.env.user.partner_id.id
vals['partner_id'] = self.env.user.partner_id.id
vals['name'] = self.env.user.partner_id.name
if website_track_values:
vals['website_track_ids'] = [(0, 0, website_track_values)]
@@ -87,7 +87,7 @@
<field name="display_name"/>
<field name="last_visited_page_id"/>
<field name="page_ids"/>
<field name="user_partner_id"/>
<field name="partner_id"/>
<field name="partner_image"/>
<templates>
<t t-name="kanban-box">
@@ -96,7 +96,7 @@
<div class="o_kanban_detail_ungrouped row">
<div class="o_wvisitor_kanban_image">
<img t-if="record.partner_image.raw_value"
t-att-src="kanban_image('res.partner', 'image_128', record.user_partner_id.raw_value)"
t-att-src="kanban_image('res.partner', 'image_128', record.partner_id.raw_value)"
width="54px" height="54px" alt="Visitor"/>
<img t-else=""
t-attf-src="/base/static/img/avatar_grey.png"
@@ -203,7 +203,7 @@
<group id="general_info">
<group string="Visitor Informations">
<field name="is_connected" invisible="1"/>
<field name="user_partner_id" attrs="{'invisible': [('user_partner_id', '=', False)]}"/>
<field name="partner_id" attrs="{'invisible': [('partner_id', '=', False)]}"/>
<field name="email"/>
<field name="mobile"/>
<field name="country_id" attrs="{'invisible': [('country_id', '=', False)]}"/>
@@ -261,8 +261,8 @@
<field name="country_id"/>
<field name="visit_count"/>
<field name="page_ids"/>
<filter string="Visitors" name="type_visitor" domain="[('user_partner_id', '=', False)]"/>
<filter string="Customers" name="type_customer" domain="[('user_partner_id', '!=', False)]"/>
<filter string="Visitors" name="type_visitor" domain="[('partner_id', '=', False)]"/>
<filter string="Customers" name="type_customer" domain="[('partner_id', '!=', False)]"/>
<separator/>
<filter string="Archived" name="is_archived" domain="[('active', '=', False)]"/>
<separator/>
+1 -1
View File
@@ -61,7 +61,7 @@ class WebsiteForm(WebsiteForm):
lead_sudo = request.env['crm.lead'].browse(result).sudo()
if lead_sudo.exists():
vals = {'lead_ids': [(4, result)]}
if not visitor_sudo.lead_ids and not visitor_sudo.user_partner_id:
if not visitor_sudo.lead_ids and not visitor_sudo.partner_id:
vals['name'] = request.env['crm.lead'].browse(result).sudo().contact_name
visitor_sudo.write(vals)
return result
+5 -5
View File
@@ -15,7 +15,7 @@ class WebsiteVisitor(models.Model):
for visitor in self:
visitor.lead_count = len(visitor.lead_ids)
@api.depends('user_partner_id.email_normalized', 'user_partner_id.mobile', 'lead_ids.email_normalized', 'lead_ids.mobile')
@api.depends('partner_id.email_normalized', 'partner_id.mobile', 'lead_ids.email_normalized', 'lead_ids.mobile')
def _compute_email_phone(self):
super(WebsiteVisitor, self)._compute_email_phone()
self.flush()
@@ -25,7 +25,7 @@ class WebsiteVisitor(models.Model):
FROM website_visitor v
JOIN crm_lead_website_visitor_rel lv on lv.website_visitor_id = v.id
JOIN crm_lead l ON lv.crm_lead_id = l.id
LEFT JOIN res_partner p on p.id = v.user_partner_id
LEFT JOIN res_partner p on p.id = v.partner_id
WHERE v.id in %s
ORDER BY l.create_date ASC"""
self.env.cr.execute(sql, (tuple(self.ids),))
@@ -48,12 +48,12 @@ class WebsiteVisitor(models.Model):
visitor_mail_values = super(WebsiteVisitor, self)._prepare_visitor_send_mail_values()
if self.lead_ids:
lead = self.lead_ids._sort_by_confidence_level(reverse=True)[0]
partner_id = self.user_partner_id.id
if not self.user_partner_id:
partner_id = self.partner_id.id
if not self.partner_id:
partner_id = lead.handle_partner_assignation()[lead.id]
if not lead.partner_id:
lead.partner_id = partner_id
self.user_partner_id = partner_id
self.partner_id = partner_id
return {
'res_model': 'crm.lead',
'res_id': lead.id,
@@ -45,8 +45,8 @@
<field name="inherit_id" ref="website.website_visitor_view_search"/>
<field name="arch" type="xml">
<xpath expr="//filter[@name='type_visitor']" position="replace">
<filter string="Visitors" name="type_visitor" domain="[('user_partner_id', '=', False), ('lead_ids', '=', False)]"/>
<filter string="Leads" name="type_lead" domain="[('user_partner_id', '=', False), ('lead_ids', '!=', False)]"/>
<filter string="Visitors" name="type_visitor" domain="[('partner_id', '=', False), ('lead_ids', '=', False)]"/>
<filter string="Leads" name="type_lead" domain="[('partner_id', '=', False), ('lead_ids', '!=', False)]"/>
</xpath>
</field>
</record>
@@ -40,7 +40,7 @@ class MailChannel(models.Model):
'history': self._get_visitor_history(visitor),
'website': visitor.website_id.name,
'lang': visitor.lang_id.name,
'partner_id': visitor.user_partner_id.id,
'partner_id': visitor.partner_id.id,
}
return list(channel_infos_dict.values())
+3 -3
View File
@@ -9,11 +9,11 @@ class WebsiteVisitor(models.Model):
_inherit = 'website.visitor'
def _prepare_visitor_send_sms_values(self):
if self.user_partner_id.mobile:
if self.partner_id.mobile:
return {
'res_model': 'res.partner',
'res_id': self.user_partner_id.id,
'partner_ids': [self.user_partner_id.id],
'res_id': self.partner_id.id,
'partner_ids': [self.partner_id.id],
'number_field_name': 'mobile',
}
return {}