From 6f2681f616fb8d8ce11bd6caa9243c3be79c21a8 Mon Sep 17 00:00:00 2001 From: Veronika Kotovich Date: Fri, 28 Aug 2015 11:24:26 +0300 Subject: [PATCH] Added filter by Partner --- i18n/mail_move_message.pot | 5 +++++ mail_move_message_models.py | 16 ++++++++++++++++ mail_move_message_views.xml | 5 +++-- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/i18n/mail_move_message.pot b/i18n/mail_move_message.pot index f1ed98b..a8e8df2 100644 --- a/i18n/mail_move_message.pot +++ b/i18n/mail_move_message.pot @@ -160,4 +160,9 @@ msgstr "" #. module: mail_move_message #: help:mail_move_message.wizard,model_id:0 msgid "List available Models is configured at Settings\Technical\Emails\Mail Relocation. Empty for unassigned email" +msgstr "" + +#. module: mail_move_message +#: help:mail_move_message.wizard,filter_by_partner:0 +msgid "Show only records with the same partner as email author" msgstr "" \ No newline at end of file diff --git a/mail_move_message_models.py b/mail_move_message_models.py index e45c75c..2fbc55c 100644 --- a/mail_move_message_models.py +++ b/mail_move_message_models.py @@ -16,6 +16,8 @@ class wizard(models.TransientModel): can_move = fields.Boolean('Can move', compute='get_can_move') move_back = fields.Boolean('Move to origin', help='Move message and submessages to original place') model = fields.Char('Model', related='model_id.model') + partner_id = fields.Many2one('res.partner', string='Author') + filter_by_partner = fields.Boolean('Filter Records by partner') @api.depends('message_id') @api.one @@ -57,6 +59,20 @@ class wizard(models.TransientModel): self.record_url = '/web#id=%s&model=%s' % (self.res_id, self.model_id.model) + @api.onchange('filter_by_partner', 'partner_id') + def on_change_partner(self): + domain = {'res_id': []} + if self.filter_by_partner and self.partner_id: + fields = self.env[self.model].fields_get(False) + contact_field = False + for n, f in fields.iteritems(): + if f['type'] == 'many2one' and f['relation'] == 'res.partner': + contact_field = n + break + if contact_field: + domain['res_id'] = [(contact_field, '=', self.partner_id.id)] + return {'domain': domain} + @api.one def check_access(self): cr = self._cr diff --git a/mail_move_message_views.xml b/mail_move_message_views.xml index c073d67..8ca176b 100644 --- a/mail_move_message_views.xml +++ b/mail_move_message_views.xml @@ -25,8 +25,9 @@ - - + + +