summaryrefslogtreecommitdiff
path: root/addons/website_event/controllers/main.py
diff options
context:
space:
mode:
authorThibault Delavallée <tde@odoo.com>2020-08-19 09:55:26 +0000
committerThibault Delavallée <tde@odoo.com>2020-08-21 17:30:13 +0000
commitb0845c0f2b48d6c7029a34ae50fc95876630e7ed (patch)
treecab4c50786ae087fdf6dec70b0c12ddc0c39c62d /addons/website_event/controllers/main.py
parentd697966585e9686f4bfce8049c1d0a21abe8a279 (diff)
[REM] website_event_online: merge into website_event
PURPOSE Clean organization and models linked to Event Online feature introduced in semi stable saas-13.3 at odoo/odoo@981f95bbf46658eda9f2d33751b9310cc67d86aa and odoo/enterprise@14722028ae0773c3710ea48ce48ff44703e83b5a Also clean website event menu not being available in website event but only in website event track, which implies some extra-code to manage it. In short: merge website_event_online in website_event, website_event_track _(online/session) in website_event_track. RATIONALE _online modules have been added to extend content of website_event and website_event_track without having any impact on those module. First step of cleaning is to move this content directly in base module. track_session module is mainly a rewrite of track module. Second step of cleaning is to move its content directly in website_event_track. SPECIFICATIONS Move remaining content of website event online to website event. Update dependencies accordingly. LINKS Task ID-2319779 COM odoo/odoo#56067 ENT odoo/enterprise#12520 UPG odoo/upgrade#1654
Diffstat (limited to 'addons/website_event/controllers/main.py')
-rw-r--r--addons/website_event/controllers/main.py23
1 files changed, 22 insertions, 1 deletions
diff --git a/addons/website_event/controllers/main.py b/addons/website_event/controllers/main.py
index 0665dce85bb..c003279c12b 100644
--- a/addons/website_event/controllers/main.py
+++ b/addons/website_event/controllers/main.py
@@ -345,13 +345,34 @@ class WebsiteEventController(http.Controller):
return list(registrations.values())
def _create_attendees_from_registration_post(self, event, registration_data):
+ """ Also try to set a visitor (from request) and
+ a partner (if visitor linked to a user for example). Purpose is to gather
+ as much informations as possible, notably to ease future communications.
+ Also try to update visitor informations based on registration info. """
+ visitor_sudo = request.env['website.visitor']._get_visitor_from_request(force_create=True)
+ visitor_sudo._update_visitor_last_visit()
+ visitor_values = {}
+
registrations_to_create = []
for registration_values in registration_data:
registration_values['event_id'] = event.id
- if not registration_values.get('partner_id'):
+ if not registration_values.get('partner_id') and visitor_sudo.partner_id:
+ registration_values['partner_id'] = visitor_sudo.partner_id.id
+ elif not registration_values.get('partner_id'):
registration_values['partner_id'] = request.env.user.partner_id.id
+
+ if visitor_sudo:
+ # registration may give a name to the visitor, yay
+ if registration_values.get('name') and not visitor_sudo.name and not visitor_values.get('name'):
+ visitor_values['name'] = registration_values['name']
+ # update registration based on visitor
+ registration_values['visitor_id'] = visitor_sudo.id
+
registrations_to_create.append(registration_values)
+ if visitor_values:
+ visitor_sudo.write(visitor_values)
+
return request.env['event.registration'].sudo().create(registrations_to_create)
@http.route(['''/event/<model("event.event"):event>/registration/confirm'''], type='http', auth="public", methods=['POST'], website=True)