From 69b441227a04b9efb688ffc8c50e393769282ded Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Houz=C3=A9fa=20Abbasbhay?= Date: Thu, 2 Jul 2015 18:07:44 +0200 Subject: [PATCH] Update "display name" fields when updating first / last names. --- partner_firstname/partner.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/partner_firstname/partner.py b/partner_firstname/partner.py index 52dccd201..a21a2cc51 100644 --- a/partner_firstname/partner.py +++ b/partner_firstname/partner.py @@ -122,10 +122,35 @@ class ResPartner(orm.Model): return super(ResPartner, self).create( cursor, uid, corr_vals, context=context) + def _compute_display_name(self, *args, **kwargs): + """Just proxy the original function.""" + return self._display_name(*args, **kwargs) + + # Override to also update the display name when the first or last names + # change (just watching the "name" field is not enough as we turn it into a + # computed field). + # Code ref: openerp/addons/base/res/res_partner.py. + _display_name_store_triggers = { + 'res.partner': ( + lambda self, cr, uid, ids, context=None: self.search( + cr, uid, + [('id', 'child_of', ids)], + context={'active_test': False} + ), + ['firstname', 'lastname', 'is_company', 'name', 'parent_id'], + 10 + ), + } + _columns = {'name': fields.function(_compute_name_custom, string="Name", type="char", store=True, select=True, readonly=True, fnct_inv=_write_name), + # Override to change the "store" argument. + 'display_name': fields.function( + _compute_display_name, type='char', string='Name', + store=_display_name_store_triggers, select=True), + 'firstname': fields.char("Firstname"), 'lastname': fields.char("Lastname", required=True)}