[FIX] website_event_track: fixed method not allowed

Currently, while reloading following success page
it return "Method not Allowed".

   * submit track proposal and reload
   * register for an event and reload

this commit fix this error and successfully
reload the page.

closes odoo/odoo#70087

Task-id: 2500573
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit is contained in:
Munaf Khan
2021-06-10 05:21:28 +00:00
parent 41366b8483
commit 1c2598b84c
2 changed files with 26 additions and 1 deletions
+13
View File
@@ -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/<model("event.event"):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))
@@ -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/<model("event.event"):event>/track_proposal/success/<int:track_id>'], 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)