From c0dc6c81dcfcd4ab80416b25c4fd7beddadb915c Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Sat, 2 Nov 2013 18:16:56 +0100 Subject: [PATCH 1/2] [FIX] qweb exception hiding bzr revid: al@openerp.com-20131102171656-j4lqrx1gfosi8ofd --- addons/website/models/website.py | 23 +++++++--------------- addons/website/views/website_templates.xml | 4 ++-- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/addons/website/models/website.py b/addons/website/models/website.py index add8c921b92..51efec12979 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -198,23 +198,14 @@ class website(osv.osv): qweb_context['error'] = err[1] logger.warn("Website Rendering Error.\n\n%s" % traceback.format_exc()) return self.render(cr, uid, ids, 'website.401', qweb_context) - except (QWebException,), err: + except Exception, e: + qweb_context['template'] = getattr(e, 'qweb_template', '') + node = getattr(e, 'qweb_node', None) + qweb_context['node'] = node and node.toxml() + qweb_context['expr'] = getattr(e, 'qweb_eval', '') qweb_context['traceback'] = traceback.format_exc() - qweb_context['template'] = err.template - qweb_context['message'] = err.message - qweb_context['node'] = err.node and err.node.toxml() - logger.error("Website Rendering Error.\n%(message)s\n%(node)s\n\n%(traceback)s" % qweb_context) - return view.render( - cr, uid, - 'website.500' if qweb_context['editable'] else 'website.404', - qweb_context, context=context) - except Exception: - logger.exception("Website Rendering Error.") - qweb_context['traceback'] = traceback.format_exc() - return view.render( - cr, uid, - 'website.500' if qweb_context['editable'] else 'website.404', - qweb_context, context=context) + logger.error("Website Rendering Error.\n%(template)s\n%(expr)s\n%(node)s\n\n%(traceback)s" % qweb_context) + return view.render(cr, uid, 'website.500' if qweb_context['editable'] else 'website.404', qweb_context, context=context) def pager(self, cr, uid, ids, url, total, page=1, step=30, scope=5, url_args=None): # Compute Pager diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml index 43b85ee8b61..57e6fded011 100644 --- a/addons/website/views/website_templates.xml +++ b/addons/website/views/website_templates.xml @@ -364,8 +364,8 @@

500: Internal Server Error!

-

An exception appear in the template:

- +

Exception in template:

+

Expression:

                         
                     

From e51baab2f32f953242b28f3394667c2bf7b70964 Mon Sep 17 00:00:00 2001
From: Antony Lesuisse 
Date: Sat, 2 Nov 2013 18:31:40 +0100
Subject: [PATCH 2/2] [FIX] robots.txt mimetype

bzr revid: al@openerp.com-20131102173140-b43am0wxsfbetezf
---
 addons/website/controllers/main.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py
index 2548ad80824..0b7c421dbf8 100644
--- a/addons/website/controllers/main.py
+++ b/addons/website/controllers/main.py
@@ -269,7 +269,8 @@ class Website(openerp.addons.web.controllers.main.Home):
 
     @website.route(['/robots.txt'], type='http', auth="public")
     def robots(self):
-        return request.website.render('website.robots', {'url_root': request.httprequest.url_root})
+        body = request.website.render('website.robots', {'url_root': request.httprequest.url_root})
+        return request.make_response(body, headers=[('Content-Type', 'text/plain')])
 
     @website.route('/sitemap', type='http', auth='public', multilang=True)
     def sitemap(self, **kwargs):