diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py index 182d05c3c51..c44ae20e117 100644 --- a/addons/website/controllers/main.py +++ b/addons/website/controllers/main.py @@ -180,8 +180,11 @@ class Website(openerp.addons.web.controllers.main.Home): # Edit #------------------------------------------------------ @http.route('/website/add/', type='http', auth="user", website=True) - def pagenew(self, path, noredirect=False, add_menu=None): - xml_id = request.registry['website'].new_page(request.cr, request.uid, path, context=request.context) + def pagenew(self, path, noredirect=False, add_menu=None, template=False): + if template: + xml_id = request.registry['website'].new_page(request.cr, request.uid, path, template=template, context=request.context) + else: + xml_id = request.registry['website'].new_page(request.cr, request.uid, path, context=request.context) if add_menu: request.registry['website.menu'].create( request.cr, request.uid, { diff --git a/addons/website/models/ir_ui_view.py b/addons/website/models/ir_ui_view.py index e1a861d3a9f..20200531a63 100644 --- a/addons/website/models/ir_ui_view.py +++ b/addons/website/models/ir_ui_view.py @@ -106,6 +106,7 @@ class view(osv.osv): domain = [('key', '=', xml_id), '|', ('website_id', '=', context['website_id']), ('website_id', '=', False)] [view_id] = self.search(cr, uid, domain, order='website_id', limit=1, context=context) or [None] if not view_id: + _logger.warning("Could not find view object with xml_id '%s'" % (xml_id)) raise ValueError('View %r in website %r not found' % (xml_id, context['website_id'])) else: view_id = super(view, self).get_view_id(cr, uid, xml_id, context=context) diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml index 61c62b0daa2..c5fdd214359 100644 --- a/addons/website/views/website_templates.xml +++ b/addons/website/views/website_templates.xml @@ -645,7 +645,7 @@

This page does not exists, but you can create it as you are administrator of this site.

- Create Page + Create Page
Edit the content below this line to adapt the default "page not found" page.
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/'], type='http', auth="public", website=True) diff --git a/addons/website_event/views/website_event.xml b/addons/website_event/views/website_event.xml index c4e4d41310c..0fb5117791a 100644 --- a/addons/website_event/views/website_event.xml +++ b/addons/website_event/views/website_event.xml @@ -257,6 +257,13 @@ + + +