From 5ca2cf4e5dcb48a9af8de98739851f9324b4291c Mon Sep 17 00:00:00 2001 From: Yannick Vaucher Date: Thu, 23 May 2013 14:13:51 +0200 Subject: [PATCH] [ADD] module firstname_display_name_trigger --- firstname_display_name_trigger/__init__.py | 24 +++++++++++ firstname_display_name_trigger/__openerp__.py | 41 +++++++++++++++++++ firstname_display_name_trigger/res_partner.py | 41 +++++++++++++++++++ 3 files changed, 106 insertions(+) create mode 100644 firstname_display_name_trigger/__init__.py create mode 100644 firstname_display_name_trigger/__openerp__.py create mode 100644 firstname_display_name_trigger/res_partner.py diff --git a/firstname_display_name_trigger/__init__.py b/firstname_display_name_trigger/__init__.py new file mode 100644 index 000000000..179a1e127 --- /dev/null +++ b/firstname_display_name_trigger/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Author: Yannick Vaucher +# Copyright 2013 Camptocamp SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +import res_partner + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/firstname_display_name_trigger/__openerp__.py b/firstname_display_name_trigger/__openerp__.py new file mode 100644 index 000000000..c4af15560 --- /dev/null +++ b/firstname_display_name_trigger/__openerp__.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Author: Yannick Vaucher +# Copyright 2013 Camptocamp SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +{'name': 'Link module if partner_lastname and account_report_company are installed', + 'version': '1.0', + 'author': 'Camptocamp', + 'maintainer': 'Camptocamp', + 'category': 'CRM', + 'complexity': 'normal', # easy, normal, expert + 'depends': [ + 'account_report_company', + 'partner_firstname', + ], + 'description': """ +Adapt computation of display name so it make it visible in tree and kanban view. + """, + 'website': 'http://www.camptocamp.com', + 'data': [], + 'installable': True, + 'images': [], + 'auto_install': True, + 'license': 'AGPL-3', + 'application': False} + diff --git a/firstname_display_name_trigger/res_partner.py b/firstname_display_name_trigger/res_partner.py new file mode 100644 index 000000000..6ec559e25 --- /dev/null +++ b/firstname_display_name_trigger/res_partner.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Author: Yannick Vaucher +# Copyright 2013 Camptocamp SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +from openerp.osv import orm, fields + + +class ResPartner(orm.Model): + _inherit = 'res.partner' + + def _display_name_compute(self, cr, uid, ids, name, args, context=None): + return dict(self.name_get(cr, uid, ids, context=context)) + + _display_name_store_triggers = { + 'res.partner': (lambda self,cr,uid,ids,context=None: self.search(cr, uid, [('id','child_of',ids)]), + ['parent_id', 'is_company', 'name', 'firstname', 'lastname'], 10) + } + + # indirection to avoid passing a copy of the overridable method when declaring the function field + _display_name = lambda self, *args, **kwargs: self._display_name_compute(*args, **kwargs) + + _columns = { + # extra field to allow ORDER BY to match visible names + 'display_name': fields.function(_display_name, type='char', string='Name', store=_display_name_store_triggers), + }