[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.
This commit is contained in:
@@ -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')
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user