summaryrefslogtreecommitdiff
path: root/addons/website/models/res_users.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/website/models/res_users.py')
-rw-r--r--addons/website/models/res_users.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/addons/website/models/res_users.py b/addons/website/models/res_users.py
index c652604cae6..617cc6e9ba4 100644
--- a/addons/website/models/res_users.py
+++ b/addons/website/models/res_users.py
@@ -63,9 +63,15 @@ class ResUsers(models.Model):
env = api.Environment(cr, uid, {})
visitor_sudo = env['website.visitor']._get_visitor_from_request()
if visitor_sudo:
- vals = {
- 'user_partner_id': env.user.partner_id.id,
- 'name': env.user.partner_id.name
- }
- visitor_sudo.write(vals)
+ partner = env.user.partner_id
+ partner_visitor = env['website.visitor'].sudo().search([('partner_id', '=', partner.id)])
+ if partner_visitor and partner_visitor.id != visitor_sudo.id:
+ visitor_sudo.website_track_ids.write({'visitor_id': partner_visitor.id})
+ visitor_sudo.unlink()
+ else:
+ vals = {
+ 'partner_id': partner.id,
+ 'name': partner.name
+ }
+ visitor_sudo.write(vals)
return uid