diff options
Diffstat (limited to 'addons/website/models/res_users.py')
| -rw-r--r-- | addons/website/models/res_users.py | 16 |
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 |
