diff --git a/mail_move_message_models.py b/mail_move_message_models.py index 12e55fd..4669ae1 100644 --- a/mail_move_message_models.py +++ b/mail_move_message_models.py @@ -35,7 +35,8 @@ class wizard(models.TransientModel): res['res_id'] = res_id and res_id[0].id if 'message_id' in res: - email_from = self.env['mail.message'].browse(res['message_id']).email_from + message = self.env['mail.message'].browse(res['message_id']) + email_from = message.email_from parts = email_split(email_from.replace(' ',',')) if parts: email = parts[0] @@ -45,6 +46,9 @@ class wizard(models.TransientModel): res['message_name_from'] = name res['message_email_from'] = email + if message.author_id and self.env.uid not in [u.id for u in message.author_id.user_ids]: + res['filter_by_partner'] = True + res['uid'] = self.env.uid return res @@ -102,7 +106,6 @@ class wizard(models.TransientModel): def on_change_partner(self): domain = {'res_id': []} if self.model and self.filter_by_partner and self.partner_id: - self.res_id = None fields = self.env[self.model].fields_get(False) contact_field = False for n, f in fields.iteritems(): @@ -111,6 +114,11 @@ class wizard(models.TransientModel): break if contact_field: domain['res_id'] = [(contact_field, '=', self.partner_id.id)] + if self.model: + res_id = self.env[self.model].search(domain['res_id'], order='id desc', limit=1) + self.res_id = res_id and res_id[0].id + else: + self.res_id = None return {'domain': domain} @api.one