From 34cc06440061c31210617eddd0bbf39f004058de Mon Sep 17 00:00:00 2001 From: Olivier Dony <odo@openerp.com> Date: Mon, 11 Aug 2014 16:02:08 +0200 Subject: [PATCH] [IMP] mail.mail: simplify: no default for `headers` field This avoids storing useless "{}" values in the database when there are no headers, and avoids having to update all existing entries when this column is added. Just requires simple tests before evaluating the headers contents. --- addons/mail/mail_group.py | 12 +++++++----- addons/mail/mail_mail.py | 1 - addons/website_mail_group/models/mail_group.py | 12 +++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/addons/mail/mail_group.py b/addons/mail/mail_group.py index a654a7b194b1..168bf64703c4 100644 --- a/addons/mail/mail_group.py +++ b/addons/mail/mail_group.py @@ -221,10 +221,12 @@ class mail_group(osv.Model): def message_get_email_values(self, cr, uid, id, notif_mail=None, context=None): res = super(mail_group, self).message_get_email_values(cr, uid, id, notif_mail=notif_mail, context=context) group = self.browse(cr, uid, id, context=context) - try: - headers = eval(res.get('headers', '{}')) - except Exception: - headers = {} + headers = {} + if res.get('headers'): + try: + headers.update(eval(res['headers'])) + except Exception: + pass headers['Precedence'] = 'list' # avoid out-of-office replies from MS Exchange # http://blogs.technet.com/b/exchange/archive/2006/10/06/3395024.aspx @@ -236,5 +238,5 @@ class mail_group(osv.Model): # X-Forge-To: will replace To: after SMTP envelope is determined by ir.mail.server list_to = '"%s" <%s@%s>' % (group.name, group.alias_name, group.alias_domain) headers['X-Forge-To'] = list_to - res['headers'] = '%s' % headers + res['headers'] = repr(headers) return res diff --git a/addons/mail/mail_mail.py b/addons/mail/mail_mail.py index 8d2c37c8baad..602810f7423f 100644 --- a/addons/mail/mail_mail.py +++ b/addons/mail/mail_mail.py @@ -67,7 +67,6 @@ class mail_mail(osv.Model): _defaults = { 'state': 'outgoing', - 'headers': '{}', } def default_get(self, cr, uid, fields, context=None): diff --git a/addons/website_mail_group/models/mail_group.py b/addons/website_mail_group/models/mail_group.py index 00bdcdf4258f..e45dff09af39 100644 --- a/addons/website_mail_group/models/mail_group.py +++ b/addons/website_mail_group/models/mail_group.py @@ -13,16 +13,18 @@ class MailGroup(osv.Model): res = super(MailGroup, self).message_get_email_values(cr, uid, id, notif_mail=notif_mail, context=context) group = self.browse(cr, uid, id, context=context) base_url = self.pool['ir.config_parameter'].get_param(cr, uid, 'web.base.url') - try: - headers = eval(res.get('headers', '{}')) - except Exception: - headers = {} + headers = {} + if res.get('headers'): + try: + headers = eval(res['headers']) + except Exception: + pass headers.update({ 'List-Archive': '<%s/groups/%s>' % (base_url, slug(group)), 'List-Subscribe': '<%s/groups>' % (base_url), 'List-Unsubscribe': '<%s/groups?unsubscribe>' % (base_url,), }) - res['headers'] = '%s' % headers + res['headers'] = repr(headers) return res -- GitLab