diff options
| author | Thibault Delavallée <tde@odoo.com> | 2020-08-19 09:55:26 +0000 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2020-08-21 17:30:13 +0000 |
| commit | b0845c0f2b48d6c7029a34ae50fc95876630e7ed (patch) | |
| tree | cab4c50786ae087fdf6dec70b0c12ddc0c39c62d /addons/website_event/controllers/main.py | |
| parent | d697966585e9686f4bfce8049c1d0a21abe8a279 (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.py | 23 |
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) |
