From 557d887496553980647450179ba6dffaca59e4bf Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 12 Nov 2013 15:44:42 +0100 Subject: [PATCH] [IMP] preprocess static @href|src|action, static url doesn't need t-href anymore you need to pull server branch bzr revid: fme@openerp.com-20131112144442-y9bw5q6kkoym8o1i --- addons/website/models/ir_qweb.py | 26 +++++++++++++++++++ addons/website/models/ir_ui_view.py | 23 ---------------- addons/website/views/website_templates.xml | 16 ++++++------ .../views/website_blog_templates.xml | 2 +- addons/website_crm/views/website_crm.xml | 2 +- .../views/website_crm_partner_assign.xml | 4 +-- .../views/website_customer.xml | 2 +- addons/website_event/views/website_event.xml | 4 +-- .../views/website_hr_recruitment.xml | 12 ++++----- .../views/website_membership.xml | 6 ++--- addons/website_sale/views/website_sale.xml | 22 ++++++++-------- 11 files changed, 61 insertions(+), 58 deletions(-) diff --git a/addons/website/models/ir_qweb.py b/addons/website/models/ir_qweb.py index d7bd704b895..6e33742803d 100644 --- a/addons/website/models/ir_qweb.py +++ b/addons/website/models/ir_qweb.py @@ -21,6 +21,7 @@ from PIL import Image as I from openerp.osv import orm, fields from openerp.tools import ustr, DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT +from openerp.addons.web.http import request REMOTE_CONNECTION_TIMEOUT = 2.5 @@ -32,6 +33,31 @@ class QWeb(orm.AbstractModel): _name = 'website.qweb' _inherit = 'ir.qweb' + URL_ATTRS = { + 'form': 'action', + 'a': 'href', + 'link': 'href', + 'frame': 'src', + 'iframe': 'src', + 'script': 'src', + } + + def add_template(self, into, name, node, context): + # preprocessing for multilang static urls + if request and 'url_for' in context: + router = request.httprequest.app.get_db_router(request.db).bind('') + for tag, attr in self.URL_ATTRS.items(): + for e in node.getElementsByTagName(tag): + url = e.getAttribute(attr) + if url: + try: + func = router.match(url)[0] + if func.multilang: + e.setAttribute(attr, context['url_for'](url)) + except Exception, e: + pass + super(QWeb, self).add_template(into, name, node, context) + def get_converter_for(self, field_type): return self.pool.get( 'website.qweb.field.' + field_type, diff --git a/addons/website/models/ir_ui_view.py b/addons/website/models/ir_ui_view.py index 123557a625e..d502ef774fa 100644 --- a/addons/website/models/ir_ui_view.py +++ b/addons/website/models/ir_ui_view.py @@ -100,25 +100,6 @@ class view(osv.osv): return arch - URL_ATTRS = { - 'form': 'action', - 'a': 'href', - 'link': 'href', - 'frame': 'src', - 'iframe': 'src', - 'script': 'src', - } - def _normalize_urls(self, root): - for element in root.iter(): - attr = self.URL_ATTRS.get(element.tag) - if attr is None or attr not in element.attrib: - continue - - value = element.get(attr) - if not urlparse(value).scheme: - element.attrib.pop(attr) - element.set('t-' + attr, value) - def save(self, cr, uid, res_id, value, xpath=None, context=None): """ Update a view section. The view section may embed fields to write @@ -131,10 +112,6 @@ class view(osv.osv): arch_section = html.fromstring( value, parser=html.HTMLParser(encoding='utf-8')) - # TODO fme: Temporary desactivated because this breaks most of the snippets - # Need to find another way to normalize multilang urls (postprocessing) ? - # self._normalize_urls(arch_section) - if xpath is None: # value is an embedded field on its own, not a view section self.save_embedded_field(cr, uid, arch_section, context=context) diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml index fbd7a9294a9..d4ac07c77c0 100644 --- a/addons/website/views/website_templates.xml +++ b/addons/website/views/website_templates.xml @@ -147,13 +147,13 @@

Our products & Services

Connect with us

- Copyright © Company name - Sitemap + Copyright © Company name - Sitemap
@@ -366,7 +366,7 @@

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

Create Page - or Search a Page + or Search a Page
Edit the content bellow this line to adapt the default "page not found" page.
@@ -381,8 +381,8 @@

Maybe you were looking for one of these popular pages ?

@@ -420,8 +420,8 @@

                     
                 
               
diff --git a/addons/website_blog/views/website_blog_templates.xml b/addons/website_blog/views/website_blog_templates.xml
index 4e605907ed8..4c5f0243f40 100644
--- a/addons/website_blog/views/website_blog_templates.xml
+++ b/addons/website_blog/views/website_blog_templates.xml
@@ -263,7 +263,7 @@
                 through your blog entries, referenced in Google.
             

- +
diff --git a/addons/website_crm/views/website_crm.xml b/addons/website_crm/views/website_crm.xml index 0a4702e49c7..f97a3c20ea4 100644 --- a/addons/website_crm/views/website_crm.xml +++ b/addons/website_crm/views/website_crm.xml @@ -4,7 +4,7 @@