From: Thibault Delavallée Date: Wed, 6 Aug 2014 12:29:48 +0000 (+0200) Subject: [FIX] mail: compose wizard: fixed default_get overrides not correctly managing the... X-Git-Tag: 8.0.0~434 X-Git-Url: http://git.inspyration.org/?a=commitdiff_plain;h=0c462a12b91cc596d640c3ebe34818830ce891ef;p=odoo%2Fodoo.git [FIX] mail: compose wizard: fixed default_get overrides not correctly managing the received field_list + improved custom call to default_get to correctly manage its in and out values. --- diff --git a/addons/email_template/wizard/mail_compose_message.py b/addons/email_template/wizard/mail_compose_message.py index ebe6675..f79aa77 100644 --- a/addons/email_template/wizard/mail_compose_message.py +++ b/addons/email_template/wizard/mail_compose_message.py @@ -19,7 +19,7 @@ # ############################################################################## -from openerp import tools, SUPERUSER_ID +from openerp import tools from openerp.osv import osv, fields @@ -54,6 +54,8 @@ class mail_compose_message(osv.TransientModel): res.get('model'), res.get('res_id'), context=context )['value'] ) + if fields is not None: + [res.pop(field, None) for field in res.keys() if field not in fields] return res _columns = { @@ -113,7 +115,9 @@ class mail_compose_message(osv.TransientModel): } values.setdefault('attachment_ids', list()).append(ir_attach_obj.create(cr, uid, data_attach, context=context)) else: - values = self.default_get(cr, uid, ['subject', 'body', 'email_from', 'reply_to', 'attachment_ids', 'mail_server_id'], context=context) + default_context = dict(context, default_composition_mode=composition_mode, default_model=model, default_res_id=res_id) + default_values = self.default_get(cr, uid, ['composition_mode', 'model', 'res_id', 'subject', 'body', 'email_from', 'reply_to', 'attachment_ids', 'mail_server_id'], context=default_context) + values = dict((key, default_values[key]) for key in ['subject', 'body', 'email_from', 'reply_to', 'attachment_ids', 'mail_server_id'] if key in default_values) if values.get('body_html'): values['body'] = values.pop('body_html') diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index 66f843c..a33982b 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -68,7 +68,7 @@ class mail_compose_message(osv.TransientModel): result = super(mail_compose_message, self).default_get(cr, uid, fields, context=context) # v6.1 compatibility mode - result['composition_mode'] = result.get('composition_mode', context.get('mail.compose.message.mode')) + result['composition_mode'] = result.get('composition_mode', context.get('mail.compose.message.mode', 'comment')) result['model'] = result.get('model', context.get('active_model')) result['res_id'] = result.get('res_id', context.get('active_id')) result['parent_id'] = result.get('parent_id', context.get('message_id')) @@ -97,6 +97,9 @@ class mail_compose_message(osv.TransientModel): if result['model'] == 'res.users' and result['res_id'] == uid: result['model'] = 'res.partner' result['res_id'] = self.pool.get('res.users').browse(cr, uid, uid).partner_id.id + + if fields is not None: + [result.pop(field, None) for field in result.keys() if field not in fields] return result def _get_composition_mode_selection(self, cr, uid, context=None):