diff options
| author | Christophe Simonis <chs@odoo.com> | 2015-12-10 13:05:58 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2015-12-10 13:05:58 +0100 |
| commit | 82a495eed52a9f42e5b88caa52c20a85f8d81ce3 (patch) | |
| tree | 6c5e8cc0247d5fe08d24e9abae38fe353fbebc56 /openerp/tools | |
| parent | 0bc2ddae784bf80c4c809d8b7f6d642d576f92a1 (diff) | |
| parent | 4022493c0b85f966e499b6c03ac7cce5556f15e6 (diff) | |
[MERGE] forward port of branch saas-7 up to 4022493
Diffstat (limited to 'openerp/tools')
| -rw-r--r-- | openerp/tools/mail.py | 2 | ||||
| -rw-r--r-- | openerp/tools/misc.py | 17 |
2 files changed, 10 insertions, 9 deletions
diff --git a/openerp/tools/mail.py b/openerp/tools/mail.py index 9b02076627e..5f82df93af9 100644 --- a/openerp/tools/mail.py +++ b/openerp/tools/mail.py @@ -316,7 +316,7 @@ def html_email_clean(html, remove=False, shorten=False, max_length=300, expand_o root = lxml.html.fromstring(inner_html) quote_tags = re.compile(r'(\n(>)+[^\n\r]*)') - signature = re.compile(r'([-]{2,}[\s]?[\r\n]{1,2}[\s\S]+)') + signature = re.compile(r'(^[-]{2,}[\s]?[\r\n]{1,2}[\s\S]+)', re.M) for node in root.iter(): # remove all tails and replace them by a span element, because managing text and tails can be a pain in the ass if node.tail: diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py index b924ccf17c7..15a47c7ba74 100644 --- a/openerp/tools/misc.py +++ b/openerp/tools/misc.py @@ -991,14 +991,15 @@ def dumpstacks(sig=None, frame=None): _logger.info("\n".join(code)) def freehash(arg): - if isinstance(arg, Mapping): - return hash(frozendict(arg)) - elif isinstance(arg, Iterable): - return hash(frozenset(arg)) - elif isinstance(arg, Hashable): + try: return hash(arg) - else: - return id(arg) + except Exception: + if isinstance(arg, Mapping): + return hash(frozendict(arg)) + elif isinstance(arg, Iterable): + return hash(frozenset(map(freehash, arg))) + else: + return id(arg) class frozendict(dict): """ An implementation of an immutable dictionary. """ @@ -1088,7 +1089,7 @@ def formatLang(env, value, digits=None, grouping=True, monetary=False, dp=False, lang = env.user.company_id.partner_id.lang or 'en_US' lang_objs = env['res.lang'].search([('code', '=', lang)]) if not lang_objs: - lang_objs = env['res.lang'].search([('code', '=', 'en_US')]) + lang_objs = env['res.lang'].search([], limit=1) lang_obj = lang_objs[0] res = lang_obj.format('%.' + str(digits) + 'f', value, grouping=grouping, monetary=monetary) |
