diff --git a/addons/website_event/controllers/main.py b/addons/website_event/controllers/main.py index ceac98e7116..c35ba3a44c3 100644 --- a/addons/website_event/controllers/main.py +++ b/addons/website_event/controllers/main.py @@ -389,6 +389,19 @@ class WebsiteEventController(http.Controller): registrations = self._process_attendees_form(event, post) attendees_sudo = self._create_attendees_from_registration_post(event, registrations) + return request.redirect(('/event/%s/registration/success?' % event.id) + werkzeug.urls.url_encode({'registration_ids': ",".join([str(id) for id in attendees_sudo.ids])})) + + @http.route(['/event//registration/success'], type='http', auth="public", methods=['GET'], website=True, sitemap=False) + def event_registration_success(self, event, registration_ids): + # fetch the related registrations, make sure they belong to the correct visitor / event pair + visitor = request.env['website.visitor']._get_visitor_from_request() + if not visitor: + raise NotFound() + attendees_sudo = request.env['event.registration'].sudo().search([ + ('id', 'in', [str(registration_id) for registration_id in registration_ids.split(',')]), + ('event_id', '=', event.id), + ('visitor_id', '=', visitor.id), + ]) return request.render("website_event.registration_complete", self._get_registration_confirm_values(event, attendees_sudo)) diff --git a/addons/website_event_track/controllers/event_track.py b/addons/website_event_track/controllers/event_track.py index 9a3d296ae36..b7f91141834 100644 --- a/addons/website_event_track/controllers/event_track.py +++ b/addons/website_event_track/controllers/event_track.py @@ -455,7 +455,19 @@ class EventTrackController(http.Controller): if request.env.user != request.website.user_id: track.sudo().message_subscribe(partner_ids=request.env.user.partner_id.ids) - return request.render("website_event_track.event_track_proposal", {'track': track, 'event': event, 'main_object': event}) + return request.redirect('/event/%s/track_proposal/success/%s' % (event.id, track.id)) + + @http.route(['/event//track_proposal/success/'], type='http', auth="public", methods=['GET'], website=True, sitemap=False) + def event_track_proposal_success(self, event, track_id): + track = request.env['event.track'].sudo().search([ + ('id', '=', track_id), + ('partner_id', '=', request.env['website.visitor']._get_visitor_from_request().partner_id.id), + ('event_id', '=', event.id), + ]) + if not event.can_access_from_current_website() or not track: + raise NotFound() + + return request.render("website_event_track.event_track_proposal", {'track': track, 'event': event}) # ACL : This route is necessary since rpc search_read method in js is not accessible to all users (e.g. public user). @http.route(['''/event/track_tag/search_read'''], type='json', auth="public", website=True)