summaryrefslogtreecommitdiff
path: root/addons/website_event/controllers/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/website_event/controllers/main.py')
-rw-r--r--addons/website_event/controllers/main.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/addons/website_event/controllers/main.py b/addons/website_event/controllers/main.py
index 66a94677953..0665dce85bb 100644
--- a/addons/website_event/controllers/main.py
+++ b/addons/website_event/controllers/main.py
@@ -5,6 +5,7 @@ import babel.dates
import re
import werkzeug
from werkzeug.datastructures import OrderedMultiDict
+from werkzeug.exceptions import NotFound
from ast import literal_eval
from collections import defaultdict
@@ -14,6 +15,7 @@ from dateutil.relativedelta import relativedelta
from odoo import fields, http, _
from odoo.addons.http_routing.models.ir_http import slug
from odoo.addons.website.controllers.main import QueryURL
+from odoo.addons.event.controllers.main import EventController
from odoo.http import request
from odoo.osv import expression
from odoo.tools.misc import get_lang, format_date
@@ -28,7 +30,7 @@ class WebsiteEventController(http.Controller):
@http.route(['/event', '/event/page/<int:page>', '/events', '/events/page/<int:page>'], type='http', auth="public", website=True, sitemap=sitemap_event)
def events(self, page=1, **searches):
Event = request.env['event.event']
- EventType = request.env['event.type']
+ SudoEventType = request.env['event.type'].sudo()
searches.setdefault('search', '')
searches.setdefault('date', 'all')
@@ -96,7 +98,7 @@ class WebsiteEventController(http.Controller):
current_date = date[1]
if searches["type"] != 'all':
- current_type = EventType.browse(int(searches['type']))
+ current_type = SudoEventType.browse(int(searches['type']))
domain_search["type"] = [("event_type_id", "=", int(searches["type"]))]
if searches["country"] != 'all' and searches["country"] != 'online':
@@ -297,6 +299,9 @@ class WebsiteEventController(http.Controller):
@http.route(['/event/<model("event.event"):event>/registration/new'], type='json', auth="public", methods=['POST'], website=True)
def registration_new(self, event, **post):
+ if not event.can_access_from_current_website():
+ raise werkzeug.exceptions.NotFound()
+
tickets = self._process_tickets_form(event, post)
availability_check = True
if event.seats_limited:
@@ -355,11 +360,11 @@ class WebsiteEventController(http.Controller):
raise werkzeug.exceptions.NotFound()
registrations = self._process_attendees_form(event, post)
- attendees = self._create_attendees_from_registration_post(event, registrations)
+ attendees_sudo = self._create_attendees_from_registration_post(event, registrations)
urls = event._get_event_resource_urls()
return request.render("website_event.registration_complete", {
- 'attendees': attendees,
+ 'attendees': attendees_sudo,
'event': event,
'google_url': urls.get('google_url'),
'iCal_url': urls.get('iCal_url')
@@ -373,6 +378,6 @@ class WebsiteEventController(http.Controller):
except:
pass
else:
- # perform a search to filter on existing / valid tags implicitely
+ # perform a search to filter on existing / valid tags implicitely + apply rules on color
tags = request.env['event.tag'].search([('id', 'in', tag_ids)])
return tags