diff --git a/openerp/addons/base/ir/ir_ui_view.py b/openerp/addons/base/ir/ir_ui_view.py index 3845d916843..84e466d0a4d 100644 --- a/openerp/addons/base/ir/ir_ui_view.py +++ b/openerp/addons/base/ir/ir_ui_view.py @@ -254,7 +254,7 @@ class view(osv.osv): return None def inherit_branding(self, specs_tree, view_id): - for node in specs_tree: + for node in specs_tree.iterchildren(tag=etree.Element): xpath = node.getroottree().getpath(node) if node.tag == 'data' or node.tag == 'xpath': self.inherit_branding(node, view_id) diff --git a/openerp/tools/mail.py b/openerp/tools/mail.py index 7895f2c7192..9efcb851cbf 100644 --- a/openerp/tools/mail.py +++ b/openerp/tools/mail.py @@ -99,7 +99,7 @@ def html_sanitize(src, silent=True): # HTML Cleaner #---------------------------------------------------------- -def html_email_clean(html, remove=False, shorten=False, max_length=300): +def html_email_clean(html, remove=False, shorten=False, max_length=300, expand_options=None): """ html_email_clean: clean the html by doing the following steps: - try to strip email quotes, by removing blockquotes or having some client- @@ -170,6 +170,9 @@ def html_email_clean(html, remove=False, shorten=False, max_length=300): iteration += 1 new_node = _insert_new_node(node, -1, new_node_tag, text[idx:] + (cur_node.tail or ''), None, {}) + if expand_options is None: + expand_options = {} + if not html or not isinstance(html, basestring): return html html = ustr(html) @@ -252,14 +255,26 @@ def html_email_clean(html, remove=False, shorten=False, max_length=300): stop_idx = len(outertext) node.text = innertext + outertext[0:stop_idx] # create ... read more node - read_more_node = _create_node('span', ' ... ', None, {'class': 'oe_mail_expand'}) - read_more_link_node = _create_node('a', 'read more', None, {'href': '#', 'class': 'oe_mail_expand'}) + read_more_node = _create_node( + 'span', + ' ... ', + None, + {'class': expand_options.get('oe_expand_span_class', 'oe_mail_expand')} + ) + read_more_link_node = _create_node( + 'a', + 'read more', + None, + { + 'href': expand_options.get('oe_expand_href', '#'), + 'class': expand_options.get('oe_expand_a_class', 'oe_mail_expand'), + } + ) read_more_node.append(read_more_link_node) # create outertext node new_node = _create_node('span', outertext[stop_idx:]) # add newly created nodes in dom - node.addnext(new_node) - node.addnext(read_more_node) + node.append(read_more_node) # tag node new_node.set('in_overlength', '1') diff --git a/openerp/tools/qweb.py b/openerp/tools/qweb.py index 86a69e2b52b..e68ea3b8a28 100644 --- a/openerp/tools/qweb.py +++ b/openerp/tools/qweb.py @@ -358,7 +358,14 @@ DEFAULT_TAG_BY_TYPE = { 'integer': 'span', 'float': 'span', 'char': 'span', + 'date': 'span', + 'datetime': 'span', + 'time': 'span', 'many2one': 'span', + + 'text': 'p', + + 'html': 'div', } # leave this, al.