From baaf361baf018aa969692e9466683b83f778d2aa Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 4 Feb 2013 14:37:23 +0100 Subject: [PATCH] [ADD] partner_firstname module --- partner_firstname/__init__.py | 20 ++++++++++++ partner_firstname/__openerp__.py | 36 ++++++++++++++++++++++ partner_firstname/i18n/de.po | 31 +++++++++++++++++++ partner_firstname/i18n/en.po | 32 +++++++++++++++++++ partner_firstname/i18n/fr.po | 31 +++++++++++++++++++ partner_firstname/partner.py | 49 ++++++++++++++++++++++++++++++ partner_firstname/partner_view.xml | 37 ++++++++++++++++++++++ 7 files changed, 236 insertions(+) create mode 100644 partner_firstname/__init__.py create mode 100644 partner_firstname/__openerp__.py create mode 100644 partner_firstname/i18n/de.po create mode 100644 partner_firstname/i18n/en.po create mode 100644 partner_firstname/i18n/fr.po create mode 100644 partner_firstname/partner.py create mode 100644 partner_firstname/partner_view.xml diff --git a/partner_firstname/__init__.py b/partner_firstname/__init__.py new file mode 100644 index 000000000..716a72b0b --- /dev/null +++ b/partner_firstname/__init__.py @@ -0,0 +1,20 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Nicolas Bessi. Copyright 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 . import partner diff --git a/partner_firstname/__openerp__.py b/partner_firstname/__openerp__.py new file mode 100644 index 000000000..78fe5b245 --- /dev/null +++ b/partner_firstname/__openerp__.py @@ -0,0 +1,36 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Nicolas Bessi. Copyright 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': 'Partner first name, last name', + 'description': """Split first name last name on res.partner. +The field name become a stored function field concatenating lastname, firstname +""", + 'version': '1.0', + 'author': 'Camptocamp', + 'category': 'MISC', + 'website': 'http://www.camptocamp.com', + 'depends': ['base'], + 'data': ['partner_view.xml'], + 'demo': [], + 'test': [], + 'auto_install': False, + 'installable': True, + 'images': [] +} diff --git a/partner_firstname/i18n/de.po b/partner_firstname/i18n/de.po new file mode 100644 index 000000000..5565405d5 --- /dev/null +++ b/partner_firstname/i18n/de.po @@ -0,0 +1,31 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * partner_firstname +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-02-04 10:36+0000\n" +"PO-Revision-Date: 2013-02-04 10:36+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: partner_firstname +#: field:res.partner,lastname:0 +msgid "Lastname" +msgstr "Name" + +#. module: partner_firstname +#: field:res.partner,firstname:0 +msgid "Firstname" +msgstr "Vorname" + +#. module: partner_firstname +#: model:ir.model,name:partner_firstname.model_res_partner +msgid "Partner" +msgstr "Partner" diff --git a/partner_firstname/i18n/en.po b/partner_firstname/i18n/en.po new file mode 100644 index 000000000..26e710fec --- /dev/null +++ b/partner_firstname/i18n/en.po @@ -0,0 +1,32 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * partner_firstname +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-02-04 10:36+0000\n" +"PO-Revision-Date: 2013-02-04 10:36+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: partner_firstname +#: field:res.partner,lastname:0 +msgid "Lastname" +msgstr "Lastname" + +#. module: partner_firstname +#: field:res.partner,firstname:0 +msgid "Firstname" +msgstr "Firstname" + +#. module: partner_firstname +#: model:ir.model,name:partner_firstname.model_res_partner +msgid "Partner" +msgstr "Partner" + diff --git a/partner_firstname/i18n/fr.po b/partner_firstname/i18n/fr.po new file mode 100644 index 000000000..5155afb0c --- /dev/null +++ b/partner_firstname/i18n/fr.po @@ -0,0 +1,31 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * partner_firstname +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-02-04 10:36+0000\n" +"PO-Revision-Date: 2013-02-04 10:36+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: partner_firstname +#: field:res.partner,lastname:0 +msgid "Lastname" +msgstr "Nom" + +#. module: partner_firstname +#: field:res.partner,firstname:0 +msgid "Firstname" +msgstr "Prénom" + +#. module: partner_firstname +#: model:ir.model,name:partner_firstname.model_res_partner +msgid "Partner" +msgstr "Partenaire" diff --git a/partner_firstname/partner.py b/partner_firstname/partner.py new file mode 100644 index 000000000..31b54220a --- /dev/null +++ b/partner_firstname/partner.py @@ -0,0 +1,49 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Author: Nicolas Bessi. Copyright 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.orm import Model, fields + + +class ResPartner(Model): + """Adds lastname and firstname, name become a stored function field""" + + _inherit = 'res.partner' + + def init(self, cursor): + cursor.execute('SELECT id FROM res_partner WHERE lastname IS NOT NULL Limit 1') + if not cursor.fetchone(): + cursor.execute('UPDATE res_partner set lastname = name WHERE name IS NOT NULL') + + def _compute_name_custom(self, cursor, uid, ids, fname, arg, context=None): + res = {} + for rec in self.read(cursor, uid, ids, ['firstname', 'lastname']): + name = rec['lastname'] + (u" " + rec['firstname'] if rec['firstname'] else u"") + res[rec['id']] = name + return res + + def _write_name(self, cursor, uid, partner_id, field_name, field_value, arg, context=None): + return self.write(cursor, uid, partner_id, {'lastname': field_value}) + + _columns = {'name': fields.function(_compute_name_custom, string="Name", + type="char", store=True, + select=True, readonly=True, + fnct_inv=_write_name), + + 'firstname': fields.char("Firstname"), + 'lastname': fields.char("Lastname", required=True)} diff --git a/partner_firstname/partner_view.xml b/partner_firstname/partner_view.xml new file mode 100644 index 000000000..d58edf639 --- /dev/null +++ b/partner_firstname/partner_view.xml @@ -0,0 +1,37 @@ + + + + res.partner.simplified.form.firstname + res.partner + + + + + + + + + + + + + res.partner.form.firstname + res.partner + + + + + + + + + + + + + + + + + +