From a2d93ea53f59121dea7bc50019926138f4c29f4c Mon Sep 17 00:00:00 2001 From: Veronika Kotovich Date: Thu, 27 Aug 2015 17:54:17 +0300 Subject: [PATCH] Updated Record ID depending on model --- __init__.py | 1 + __openerp__.py | 2 +- controllers/__init__.py | 1 + controllers/main.py | 30 ++++++++++++++++++++++++++++++ mail_move_message_models.py | 4 +++- mail_move_message_views.xml | 5 +++-- 6 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 controllers/__init__.py create mode 100644 controllers/main.py diff --git a/__init__.py b/__init__.py index 6cd8310..f247113 100644 --- a/__init__.py +++ b/__init__.py @@ -1 +1,2 @@ +import controllers import mail_move_message_models diff --git a/__openerp__.py b/__openerp__.py index 4a30962..e8ea079 100644 --- a/__openerp__.py +++ b/__openerp__.py @@ -6,7 +6,7 @@ 'website' : 'https://yelizariev.github.io', 'price': 9.00, 'currency': 'EUR', - 'depends' : ['mail'], + 'depends' : ['mail', 'web_polymorphic_field'], 'images': ['images/inbox.png'], 'data':[ 'mail_move_message_views.xml', diff --git a/controllers/__init__.py b/controllers/__init__.py new file mode 100644 index 0000000..039d971 --- /dev/null +++ b/controllers/__init__.py @@ -0,0 +1 @@ +import main \ No newline at end of file diff --git a/controllers/main.py b/controllers/main.py new file mode 100644 index 0000000..ad01742 --- /dev/null +++ b/controllers/main.py @@ -0,0 +1,30 @@ +from openerp.addons.web.controllers.main import DataSet +from openerp.tools.translate import _ +from openerp.http import request + +class DataSetCustom(DataSet): + + def _call_kw(self, model, method, args, kwargs): + res = super(DataSetCustom, self)._call_kw(model, method, args, kwargs) + if 'context' in kwargs and kwargs['context'].get('extended_name_with_contact') and res: + model = request.session.model(model) + fields = model.fields_get(False, request.context) + contact_field = False + for n, f in fields.iteritems(): + if f['type'] == 'many2one' and f['relation'] == 'res.partner': + contact_field = n + break + partner_info = {} + if contact_field: + partner_info = model.read([r[0] for r in res], [contact_field]) + partner_info = dict([(p['id'], p[contact_field]) for p in partner_info]) + final_res = [] + for r in res: + if partner_info.get(r[0]): + final_res.append((r[0], _('%s [partner: %s] ID %s') % (r[1], partner_info.get(r[0])[1], r[0]))) + else: + final_res.append((r[0], _('%s ID %s') % (r[1], r[0]))) + res = final_res + return res + + diff --git a/mail_move_message_models.py b/mail_move_message_models.py index c58d446..e45c75c 100644 --- a/mail_move_message_models.py +++ b/mail_move_message_models.py @@ -11,10 +11,11 @@ class wizard(models.TransientModel): message_is_moved = fields.Boolean(string='Is Moved', related='message_id.is_moved', readonly=True) parent_id = fields.Many2one('mail.message', string='Search by name') model_id = fields.Many2one('ir.model', string='Model') - res_id = fields.Integer('Record ID') + res_id = fields.Many2one('ir.model', string='Record ID') record_url = fields.Char('Link to record', readonly=True) 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') @api.depends('message_id') @api.one @@ -51,6 +52,7 @@ class wizard(models.TransientModel): def on_change_res(self): if not ( self.model_id and self.res_id ): self.record_url = '' + return self.record_url = '/web#id=%s&model=%s' % (self.res_id, self.model_id.model) diff --git a/mail_move_message_views.xml b/mail_move_message_views.xml index 056cef6..c073d67 100644 --- a/mail_move_message_views.xml +++ b/mail_move_message_views.xml @@ -15,6 +15,7 @@
+

You cannot move this message. It was already moved with a message bellow. Open one and apply changes there.

@@ -25,8 +26,8 @@ - - + +