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 @@
- Copyright ©
Company name -
Sitemap
+ Copyright ©
Company name -
Sitemap
@@ -366,7 +366,7 @@
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 @@
-