diff options
| author | Jeremy Kersten <jke@odoo.com> | 2016-01-08 23:16:25 +0100 |
|---|---|---|
| committer | Jeremy Kersten <jke@odoo.com> | 2016-01-08 23:19:29 +0100 |
| commit | ce3f7970686c5658c3fd72a67d5ee06ce61849d1 (patch) | |
| tree | 489725d52bed27e8acc21f1693c5ff8543d4e8c5 /addons/website_event/controllers/main.py | |
| parent | 2afadfe444ec52acec5d7890cda5ae6817604999 (diff) | |
[FIX] website_event: avoid traceback when page doesn't exists
The controller /event/<event_id>/page/<page> raise exception if page is not existing.
Allow to pass the template reference when user are creating a new page.
Without it, it is impossible for the end user to create a website_event page without
change manually the xml id because the xml id is based on the module from the template.
This fix is retro compatible, because from_template will be ignored until next update
of website. And during update from website, website_event will be updated because it's a
dependance and so the default_page template created.
Diffstat (limited to 'addons/website_event/controllers/main.py')
| -rw-r--r-- | addons/website_event/controllers/main.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/addons/website_event/controllers/main.py b/addons/website_event/controllers/main.py index a97acb0fb4c..6bf3801a961 100644 --- a/addons/website_event/controllers/main.py +++ b/addons/website_event/controllers/main.py @@ -2,6 +2,7 @@ import babel.dates import time +import re import werkzeug.urls from datetime import datetime, timedelta from dateutil.relativedelta import relativedelta @@ -162,6 +163,14 @@ class website_event(http.Controller): if '.' not in page: page = 'website_event.%s' % page + try: + request.website.get_template(page) + except ValueError: + # page not found + values['path'] = re.sub(r"^website_event\.", '', page) + values['from_template'] = 'website_event.default_page' # .strip('website_event.') + page = 'website.page_404' + return request.website.render(page, values) @http.route(['/event/<model("event.event"):event>'], type='http', auth="public", website=True) |
