From 99614b33da16e6ef3a58f635c5d01efad905b353 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Wed, 4 Nov 2015 17:43:41 +0100 Subject: [PATCH 01/19] [ADD] l10n_nl_partner_name, l10n_nl_partner_salutation --- l10n_nl_partner_name/README.rst | 31 +++++++ l10n_nl_partner_name/__init__.py | 21 +++++ l10n_nl_partner_name/__openerp__.py | 40 +++++++++ .../i18n/l10n_nl_partner_name.pot | 39 +++++++++ l10n_nl_partner_name/i18n/nl.po | 31 +++++++ l10n_nl_partner_name/model/__init__.py | 24 ++++++ l10n_nl_partner_name/model/res_partner.py | 61 ++++++++++++++ l10n_nl_partner_name/scripts/guess_names.py | 78 ++++++++++++++++++ l10n_nl_partner_name/static/src/img/icon.png | Bin 0 -> 552 bytes l10n_nl_partner_name/view/res_partner.xml | 42 ++++++++++ 10 files changed, 367 insertions(+) create mode 100644 l10n_nl_partner_name/README.rst create mode 100644 l10n_nl_partner_name/__init__.py create mode 100644 l10n_nl_partner_name/__openerp__.py create mode 100644 l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot create mode 100644 l10n_nl_partner_name/i18n/nl.po create mode 100644 l10n_nl_partner_name/model/__init__.py create mode 100644 l10n_nl_partner_name/model/res_partner.py create mode 100644 l10n_nl_partner_name/scripts/guess_names.py create mode 100644 l10n_nl_partner_name/static/src/img/icon.png create mode 100644 l10n_nl_partner_name/view/res_partner.xml diff --git a/l10n_nl_partner_name/README.rst b/l10n_nl_partner_name/README.rst new file mode 100644 index 000000000..63e1dd68c --- /dev/null +++ b/l10n_nl_partner_name/README.rst @@ -0,0 +1,31 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :alt: License: AGPL-3 + +Module Dutch Partner Name +========================= + + Use Dutch conventions for partner names: + - have infixes + - have initials + - split first and last name (provided by partner_firstname) + +Contributors +------------ + +* Holger Brunn +* Ronald Portier + +Maintainer +---------- + +.. image:: http://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: http://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit http://odoo-community.org. diff --git a/l10n_nl_partner_name/__init__.py b/l10n_nl_partner_name/__init__.py new file mode 100644 index 000000000..9da2ac3b6 --- /dev/null +++ b/l10n_nl_partner_name/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2013 Therp BV (). +# +# 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 model diff --git a/l10n_nl_partner_name/__openerp__.py b/l10n_nl_partner_name/__openerp__.py new file mode 100644 index 000000000..46ecc83fc --- /dev/null +++ b/l10n_nl_partner_name/__openerp__.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2013-2015 Therp BV . +# +# 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': 'Dutch partner names', + 'version': '1.0', + 'author': 'Therp BV, Odoo Community Association (OCA)', + 'category': 'Contact management', + 'depends': [ + 'partner_firstname', + ], + 'data': [ + 'view/res_partner.xml', + ], + 'js': [], + 'css': [], + 'qweb': [], + 'auto_install': False, + 'installable': True, + 'external_dependencies': { + 'python': ['mako'], + }, +} diff --git a/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot b/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot new file mode 100644 index 000000000..582a5db05 --- /dev/null +++ b/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot @@ -0,0 +1,39 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * l10n_nl_partner_name +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-01-02 12:30+0000\n" +"PO-Revision-Date: 2015-01-02 12:30+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: l10n_nl_partner_name +#: field:res.partner,infix:0 +msgid "Infix" +msgstr "" + +#. module: l10n_nl_partner_name +#: field:res.partner,initials:0 +msgid "Initials" +msgstr "" + +#. module: l10n_nl_partner_name +#: field:res.partner,parent_name:0 +msgid "Parent name" +msgstr "" + +#. module: l10n_nl_partner_name +#: code:_description:0 +#: model:ir.model,name:l10n_nl_partner_name.model_res_partner +#, python-format +msgid "Partner" +msgstr "" + diff --git a/l10n_nl_partner_name/i18n/nl.po b/l10n_nl_partner_name/i18n/nl.po new file mode 100644 index 000000000..3b6dd6488 --- /dev/null +++ b/l10n_nl_partner_name/i18n/nl.po @@ -0,0 +1,31 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * l10n_nl_partner_name +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-10-02 14:42+0000\n" +"PO-Revision-Date: 2013-10-02 14:42+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: l10n_nl_partner_name +#: model:ir.model,name:l10n_nl_partner_name.model_res_partner +msgid "Partner" +msgstr "Relatie" + +#. module: l10n_nl_partner_name +#: field:res.partner,infix:0 +msgid "Infix" +msgstr "Tussenvoegsel" + +#. module: l10n_nl_partner_name +#: field:res.partner,initials:0 +msgid "Initials" +msgstr "Voorletters" diff --git a/l10n_nl_partner_name/model/__init__.py b/l10n_nl_partner_name/model/__init__.py new file mode 100644 index 000000000..d6656d529 --- /dev/null +++ b/l10n_nl_partner_name/model/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +"""Extentions for models.""" +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2013 Therp BV (). +# +# 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 res_partner + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_nl_partner_name/model/res_partner.py b/l10n_nl_partner_name/model/res_partner.py new file mode 100644 index 000000000..b680832cf --- /dev/null +++ b/l10n_nl_partner_name/model/res_partner.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +"""Extend res.partner with extra fields for Dutch names.""" +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2013-2015 Therp BV . +# +# 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 mako.template import Template +from openerp import models, fields, api + + +class ResPartner(models.Model): + """Extend res.partner with extra fields for Dutch names.""" + _inherit = 'res.partner' + + initials = fields.Char(size=16) + infix = fields.Char(size=32) + + @api.one + @api.depends("firstname", "lastname", "initials", "infix") + def _compute_name(self): + self.name = self._get_computed_name( + self.lastname, self.firstname, self.initials, self.infix) + + @api.one + @api.onchange("firstname", "lastname", "initials", "infix") + def _onchange_subnames(self): + return super(ResPartner, self)._onchange_subnames() + + @api.model + def _get_computed_name(self, lastname, firstname, initials=None, + infix=None): + name_template = Template( + self.env.context.get( + 'name_format', + "${firstname or initials or ''}" + "${(firstname or initials) and ' ' or ''}" + "${infix or ''}${infix and ' ' or ''}${lastname}")) + name = name_template.render(**{ + 'firstname': firstname, + 'lastname': lastname, + 'initials': initials, + 'infix': infix, + }) + return name if name else '' + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_nl_partner_name/scripts/guess_names.py b/l10n_nl_partner_name/scripts/guess_names.py new file mode 100644 index 000000000..d0f0ce8fa --- /dev/null +++ b/l10n_nl_partner_name/scripts/guess_names.py @@ -0,0 +1,78 @@ +#!/usr/bin/python + +import argparse +import xmlrpclib +import re +parser = argparse.ArgumentParser() +parser.add_argument('openerp_host') +parser.add_argument('openerp_db') +parser.add_argument('openerp_user') +parser.add_argument('openerp_passwd') +parser.add_argument('additional_search', nargs='?') +args = parser.parse_args() + +openerp_socket = xmlrpclib.ServerProxy( + 'http://%s/xmlrpc/common' % args.openerp_host) +openerp_uid = openerp_socket.login( + args.openerp_db, args.openerp_user, args.openerp_passwd) +openerp_socket = xmlrpclib.ServerProxy( + 'http://%s/xmlrpc/object' % args.openerp_host, allow_none=True) + + +def openerp_execute(model, method, *pargs, **kwargs): + return openerp_socket.execute( + args.openerp_db, openerp_uid, + args.openerp_passwd, model, method, *pargs, **kwargs) + +infixes = ['van', 'der', 'ter', 'de', 'v/d'] +initial = re.compile(r'^([A-Z]{1,3}\.{0,1}){1,4}$') + +limit = 100000 +offset = 0 + + +def add_token(values, key, token, delimiter=' '): + values[key] = (values[key] + ' ' if values[key] else '') + token + +while True: + ids = openerp_execute( + 'res.partner', 'search', + [ + ('lastname', '!=', False), + ('lastname', '!=', ''), + ('firstname', '=', False), + ('initials', '=', False), + ('infix', '=', False), + ('is_company', '=', False), + ] + + eval(args.additional_search or '[]'), + offset, + limit) + if not ids: + break + + for partner in openerp_execute( + 'res.partner', 'read', ids, + ['lastname', 'firstname', 'initials', 'infix']): + print partner['lastname'] + + have_infix = False + tokens = partner['lastname'].split() + while len(tokens) > 1: + token = tokens.pop(0) + if initial.match(token): + add_token(partner, 'initials', token) + elif any(map(lambda infix: re.match(infix, token, re.I), infixes)): + add_token(partner, 'infix', token.lower()) + have_infix = True + else: + if have_infix: + tokens.insert(0, token) + break + add_token(partner, 'firstname', token) + partner['lastname'] = ' '.join(tokens) + + print partner + openerp_execute('res.partner', 'write', partner['id'], partner) + + offset += limit diff --git a/l10n_nl_partner_name/static/src/img/icon.png b/l10n_nl_partner_name/static/src/img/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..48485f76ec0b82b6ed216c92c618c2429ecdc001 GIT binary patch literal 552 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSY)RhkE>8(%y`dEVi!oTtiUlHNH>77!9&AY3=E7qo-U3d6}R5rcH}+eAmVz_FIe);jR!2n z8JQeR6B-#>0#bZtRrfV*-!b#dGktELPADkIOWuE{@22vM^trYTJ6QzO8!Q-)a4PsQ z6f$)PJIrBtM6A&E-caV$$Gi96VQcGsY{4S%>~B9w`cW;u^R1>nEk9vV;a+>7fw}hE z7iRt=*-1!7!n_L%waveoe^&{LmUQi{1B$AaxJHzuB$lLFB^RXvDF!10LnB=S6I}zN z5JM9yV`D2LQ*8qyD+7b|(>Q8TH00)|WTsW3X)v&`GPHzf`1Z_U0Z@Y^$cEtjw370~ nqEv?R@^Zb*yzJuS#DY}4{G#;P?`))iiWody{an^LB{Ts5!#|;+ literal 0 HcmV?d00001 diff --git a/l10n_nl_partner_name/view/res_partner.xml b/l10n_nl_partner_name/view/res_partner.xml new file mode 100644 index 000000000..537f51554 --- /dev/null +++ b/l10n_nl_partner_name/view/res_partner.xml @@ -0,0 +1,42 @@ + + + + res.partner.simplified.form.firstname + res.partner + + + + + + + + + + + + + res.partner.form.firstname + res.partner + + + + + + + + + + + + + + + + + From ba274cfe8af5f1fc081987787f3d911a7bb4fec2 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Mon, 4 Jan 2016 13:39:04 +0100 Subject: [PATCH 02/19] [FIX] show empty string if lastname is unset --- l10n_nl_partner_name/model/res_partner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_nl_partner_name/model/res_partner.py b/l10n_nl_partner_name/model/res_partner.py index b680832cf..3e1ee5198 100644 --- a/l10n_nl_partner_name/model/res_partner.py +++ b/l10n_nl_partner_name/model/res_partner.py @@ -49,7 +49,7 @@ def _get_computed_name(self, lastname, firstname, initials=None, 'name_format', "${firstname or initials or ''}" "${(firstname or initials) and ' ' or ''}" - "${infix or ''}${infix and ' ' or ''}${lastname}")) + "${infix or ''}${infix and ' ' or ''}${lastname or ''}")) name = name_template.render(**{ 'firstname': firstname, 'lastname': lastname, From b60124410727f9ae6223917d71e02c99f7ddbb02 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Mon, 18 Apr 2016 20:24:43 +0200 Subject: [PATCH 03/19] [UPD] make it work with latest partner-contact --- l10n_nl_partner_name/model/res_partner.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/l10n_nl_partner_name/model/res_partner.py b/l10n_nl_partner_name/model/res_partner.py index 3e1ee5198..149a56600 100644 --- a/l10n_nl_partner_name/model/res_partner.py +++ b/l10n_nl_partner_name/model/res_partner.py @@ -58,4 +58,12 @@ def _get_computed_name(self, lastname, firstname, initials=None, }) return name if name else '' + @api.model + def _get_inverse_name(self, name, is_company=False): + result = super(ResPartner, self)._get_inverse_name( + name, is_company=is_company) + # super assumes $lastname $firstname, we want it the other way araound + return dict( + result, lastname=result['firstname'], firstname=result['lastname']) + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 3381174b3fd52692b9cfd7c916b3e97983eb9bf6 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Mon, 18 Apr 2016 20:29:41 +0200 Subject: [PATCH 04/19] [FIX] flake8 --- l10n_nl_partner_name/model/res_partner.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/l10n_nl_partner_name/model/res_partner.py b/l10n_nl_partner_name/model/res_partner.py index 149a56600..1d0227aff 100644 --- a/l10n_nl_partner_name/model/res_partner.py +++ b/l10n_nl_partner_name/model/res_partner.py @@ -61,8 +61,8 @@ def _get_computed_name(self, lastname, firstname, initials=None, @api.model def _get_inverse_name(self, name, is_company=False): result = super(ResPartner, self)._get_inverse_name( - name, is_company=is_company) - # super assumes $lastname $firstname, we want it the other way araound + name, is_company=is_company) + # super assumes $lastname $firstname, we want it the other way around return dict( result, lastname=result['firstname'], firstname=result['lastname']) From 07a2827c06dc32c395969eed254c83049f826f81 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Tue, 19 Apr 2016 08:56:28 +0200 Subject: [PATCH 05/19] [ADD] tests --- l10n_nl_partner_name/tests/__init__.py | 4 ++++ .../tests/test_l10n_nl_partner_name.py | 24 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 l10n_nl_partner_name/tests/__init__.py create mode 100644 l10n_nl_partner_name/tests/test_l10n_nl_partner_name.py diff --git a/l10n_nl_partner_name/tests/__init__.py b/l10n_nl_partner_name/tests/__init__.py new file mode 100644 index 000000000..8e412f945 --- /dev/null +++ b/l10n_nl_partner_name/tests/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# © 2016 Therp BV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from . import test_l10n_nl_partner_name diff --git a/l10n_nl_partner_name/tests/test_l10n_nl_partner_name.py b/l10n_nl_partner_name/tests/test_l10n_nl_partner_name.py new file mode 100644 index 000000000..bc28b3b84 --- /dev/null +++ b/l10n_nl_partner_name/tests/test_l10n_nl_partner_name.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# © 2016 Therp BV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from openerp.tests.common import TransactionCase + + +class TestL10nNlPartnerName(TransactionCase): + def test_l10n_nl_partner_name(self): + partner = self.env['res.partner'].create({ + 'name': 'Mark Rutte', + }) + self.assertEqual(partner.firstname, 'Mark') + self.assertEqual(partner.lastname, 'Rutte') + partner.firstname = 'Willem-Alexander' + partner.lastname = 'van Oranje-Nassau' + self.assertEqual( + partner.name, + 'Willem-Alexander van Oranje-Nassau' + ) + partner.write({ + 'name': partner.name, + }) + self.assertEqual(partner.firstname, 'Willem-Alexander') + self.assertEqual(partner.lastname, 'van Oranje-Nassau') From bddf1bb1de02255bf8c715100350c157af553aae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul=20=28ACSONE=29?= Date: Sat, 8 Oct 2016 11:17:34 +0200 Subject: [PATCH 06/19] [UPD] prefix versions with 8.0 --- l10n_nl_partner_name/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_nl_partner_name/__openerp__.py b/l10n_nl_partner_name/__openerp__.py index 46ecc83fc..672258162 100644 --- a/l10n_nl_partner_name/__openerp__.py +++ b/l10n_nl_partner_name/__openerp__.py @@ -20,7 +20,7 @@ ############################################################################## { 'name': 'Dutch partner names', - 'version': '1.0', + 'version': '8.0.1.0.0', 'author': 'Therp BV, Odoo Community Association (OCA)', 'category': 'Contact management', 'depends': [ From 0d8abefe936bb7fca4b595b70f607b4a9ba98ebd Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Wed, 11 Jan 2017 16:37:46 +0100 Subject: [PATCH 07/19] [FIX] linting --- l10n_nl_partner_name/scripts/guess_names.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/l10n_nl_partner_name/scripts/guess_names.py b/l10n_nl_partner_name/scripts/guess_names.py index d0f0ce8fa..542a7dc42 100644 --- a/l10n_nl_partner_name/scripts/guess_names.py +++ b/l10n_nl_partner_name/scripts/guess_names.py @@ -24,6 +24,7 @@ def openerp_execute(model, method, *pargs, **kwargs): args.openerp_db, openerp_uid, args.openerp_passwd, model, method, *pargs, **kwargs) + infixes = ['van', 'der', 'ter', 'de', 'v/d'] initial = re.compile(r'^([A-Z]{1,3}\.{0,1}){1,4}$') @@ -34,6 +35,7 @@ def openerp_execute(model, method, *pargs, **kwargs): def add_token(values, key, token, delimiter=' '): values[key] = (values[key] + ' ' if values[key] else '') + token + while True: ids = openerp_execute( 'res.partner', 'search', From e348310adf25da36ffbe67b2692dd32672780a5c Mon Sep 17 00:00:00 2001 From: George Daramouskas Date: Thu, 17 Aug 2017 12:29:33 +0200 Subject: [PATCH 08/19] [MIG] Migrates l10n_nl_partner_name from 8.0 to 10.0 [MIG] Migrates l10n_nl_partner_salutation from 8.0 to 10.0 Adding a commiter, changing the format of the licence comment, removing deprecated Char init variable [FIX] Sort version of licencing, removing VIM comments, changing __openerp__ to __manifest__ [FIX] Adding tests to increase code coverage [FIX] Replaces api.one with api.multi and inserting api.model [FIX] Adds newlines on the xmls, adds licence on manifest, changes name of compute methods [FIX] Creates the res_partner_title_sir in the module instead on the base module --- l10n_nl_partner_name/README.rst | 1 + l10n_nl_partner_name/__init__.py | 21 +--------- l10n_nl_partner_name/__manifest__.py | 20 +++++++++ .../i18n/l10n_nl_partner_name.pot | 4 +- l10n_nl_partner_name/i18n/nl.po | 4 +- l10n_nl_partner_name/model/__init__.py | 24 +---------- l10n_nl_partner_name/model/res_partner.py | 39 +++++------------- l10n_nl_partner_name/scripts/guess_names.py | 36 ++++++++-------- .../static/description/icon.png | Bin 0 -> 552 bytes .../tests/test_l10n_nl_partner_name.py | 2 +- l10n_nl_partner_name/view/res_partner.xml | 9 ++-- 11 files changed, 62 insertions(+), 98 deletions(-) create mode 100644 l10n_nl_partner_name/__manifest__.py create mode 100644 l10n_nl_partner_name/static/description/icon.png diff --git a/l10n_nl_partner_name/README.rst b/l10n_nl_partner_name/README.rst index 63e1dd68c..b0dd28bcf 100644 --- a/l10n_nl_partner_name/README.rst +++ b/l10n_nl_partner_name/README.rst @@ -14,6 +14,7 @@ Contributors * Holger Brunn * Ronald Portier +* George Daramouskas Maintainer ---------- diff --git a/l10n_nl_partner_name/__init__.py b/l10n_nl_partner_name/__init__.py index 9da2ac3b6..479a49b96 100644 --- a/l10n_nl_partner_name/__init__.py +++ b/l10n_nl_partner_name/__init__.py @@ -1,21 +1,4 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# This module copyright (C) 2013 Therp BV (). -# -# 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 . -# -############################################################################## +# © 2017 Therp BV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from . import model diff --git a/l10n_nl_partner_name/__manifest__.py b/l10n_nl_partner_name/__manifest__.py new file mode 100644 index 000000000..a45b58b4b --- /dev/null +++ b/l10n_nl_partner_name/__manifest__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# © 2017 Therp BV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +{ + 'name': 'Dutch partner names', + 'version': '10.0.1.0.0', + 'author': 'Therp BV, Odoo Community Association (OCA)', + 'category': 'Contact management', + 'depends': [ + 'partner_firstname', + ], + 'data': [ + 'view/res_partner.xml', + ], + 'auto_install': False, + 'installable': True, + 'external_dependencies': { + 'python': ['mako'], + }, +} diff --git a/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot b/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot index 582a5db05..9bfe785f1 100644 --- a/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot +++ b/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot @@ -1,10 +1,10 @@ -# Translation of OpenERP Server. +# Translation of Odoo Server. # This file contains the translation of the following modules: # * l10n_nl_partner_name # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 7.0\n" +"Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-01-02 12:30+0000\n" "PO-Revision-Date: 2015-01-02 12:30+0000\n" diff --git a/l10n_nl_partner_name/i18n/nl.po b/l10n_nl_partner_name/i18n/nl.po index 3b6dd6488..35b685434 100644 --- a/l10n_nl_partner_name/i18n/nl.po +++ b/l10n_nl_partner_name/i18n/nl.po @@ -1,10 +1,10 @@ -# Translation of OpenERP Server. +# Translation of Odoo Server. # This file contains the translation of the following modules: # * l10n_nl_partner_name # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 7.0\n" +"Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-10-02 14:42+0000\n" "PO-Revision-Date: 2013-10-02 14:42+0000\n" diff --git a/l10n_nl_partner_name/model/__init__.py b/l10n_nl_partner_name/model/__init__.py index d6656d529..41d9e70d8 100644 --- a/l10n_nl_partner_name/model/__init__.py +++ b/l10n_nl_partner_name/model/__init__.py @@ -1,24 +1,4 @@ # -*- coding: utf-8 -*- -"""Extentions for models.""" -############################################################################## -# -# OpenERP, Open Source Management Solution -# This module copyright (C) 2013 Therp BV (). -# -# 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 . -# -############################################################################## +# © 2017 Therp BV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from . import res_partner - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_nl_partner_name/model/res_partner.py b/l10n_nl_partner_name/model/res_partner.py index 1d0227aff..2200e1f9a 100644 --- a/l10n_nl_partner_name/model/res_partner.py +++ b/l10n_nl_partner_name/model/res_partner.py @@ -1,42 +1,25 @@ # -*- coding: utf-8 -*- -"""Extend res.partner with extra fields for Dutch names.""" -############################################################################## -# -# OpenERP, Open Source Management Solution -# This module copyright (C) 2013-2015 Therp BV . -# -# 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 . -# -############################################################################## +# © 2017 Therp BV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from mako.template import Template -from openerp import models, fields, api +from odoo import models, fields, api class ResPartner(models.Model): """Extend res.partner with extra fields for Dutch names.""" _inherit = 'res.partner' - initials = fields.Char(size=16) - infix = fields.Char(size=32) + initials = fields.Char() + infix = fields.Char() - @api.one + @api.multi @api.depends("firstname", "lastname", "initials", "infix") def _compute_name(self): - self.name = self._get_computed_name( - self.lastname, self.firstname, self.initials, self.infix) + for record in self: + record.name = record._get_computed_name( + record.lastname, record.firstname, record.initials, + record.infix) - @api.one @api.onchange("firstname", "lastname", "initials", "infix") def _onchange_subnames(self): return super(ResPartner, self)._onchange_subnames() @@ -65,5 +48,3 @@ def _get_inverse_name(self, name, is_company=False): # super assumes $lastname $firstname, we want it the other way around return dict( result, lastname=result['firstname'], firstname=result['lastname']) - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/l10n_nl_partner_name/scripts/guess_names.py b/l10n_nl_partner_name/scripts/guess_names.py index 542a7dc42..eb94a9b6e 100644 --- a/l10n_nl_partner_name/scripts/guess_names.py +++ b/l10n_nl_partner_name/scripts/guess_names.py @@ -1,28 +1,30 @@ #!/usr/bin/python +# © 2017 Therp BV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). import argparse import xmlrpclib import re parser = argparse.ArgumentParser() -parser.add_argument('openerp_host') -parser.add_argument('openerp_db') -parser.add_argument('openerp_user') -parser.add_argument('openerp_passwd') +parser.add_argument('odoo_host') +parser.add_argument('odoo_db') +parser.add_argument('odoo_user') +parser.add_argument('odoo_passwd') parser.add_argument('additional_search', nargs='?') args = parser.parse_args() -openerp_socket = xmlrpclib.ServerProxy( - 'http://%s/xmlrpc/common' % args.openerp_host) -openerp_uid = openerp_socket.login( - args.openerp_db, args.openerp_user, args.openerp_passwd) -openerp_socket = xmlrpclib.ServerProxy( - 'http://%s/xmlrpc/object' % args.openerp_host, allow_none=True) +odoo_socket = xmlrpclib.ServerProxy( + 'http://%s/xmlrpc/common' % args.odoo_host) +odoo_uid = odoo_socket.login( + args.odoo_db, args.odoo_user, args.odoo_passwd) +odoo_socket = xmlrpclib.ServerProxy( + 'http://%s/xmlrpc/object' % args.odoo_host, allow_none=True) -def openerp_execute(model, method, *pargs, **kwargs): - return openerp_socket.execute( - args.openerp_db, openerp_uid, - args.openerp_passwd, model, method, *pargs, **kwargs) +def odoo_execute(model, method, *pargs, **kwargs): + return odoo_socket.execute( + args.odoo_db, odoo_uid, + args.odoo_passwd, model, method, *pargs, **kwargs) infixes = ['van', 'der', 'ter', 'de', 'v/d'] @@ -37,7 +39,7 @@ def add_token(values, key, token, delimiter=' '): while True: - ids = openerp_execute( + ids = odoo_execute( 'res.partner', 'search', [ ('lastname', '!=', False), @@ -53,7 +55,7 @@ def add_token(values, key, token, delimiter=' '): if not ids: break - for partner in openerp_execute( + for partner in odoo_execute( 'res.partner', 'read', ids, ['lastname', 'firstname', 'initials', 'infix']): print partner['lastname'] @@ -75,6 +77,6 @@ def add_token(values, key, token, delimiter=' '): partner['lastname'] = ' '.join(tokens) print partner - openerp_execute('res.partner', 'write', partner['id'], partner) + odoo_execute('res.partner', 'write', partner['id'], partner) offset += limit diff --git a/l10n_nl_partner_name/static/description/icon.png b/l10n_nl_partner_name/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..48485f76ec0b82b6ed216c92c618c2429ecdc001 GIT binary patch literal 552 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSY)RhkE>8(%y`dEVi!oTtiUlHNH>77!9&AY3=E7qo-U3d6}R5rcH}+eAmVz_FIe);jR!2n z8JQeR6B-#>0#bZtRrfV*-!b#dGktELPADkIOWuE{@22vM^trYTJ6QzO8!Q-)a4PsQ z6f$)PJIrBtM6A&E-caV$$Gi96VQcGsY{4S%>~B9w`cW;u^R1>nEk9vV;a+>7fw}hE z7iRt=*-1!7!n_L%waveoe^&{LmUQi{1B$AaxJHzuB$lLFB^RXvDF!10LnB=S6I}zN z5JM9yV`D2LQ*8qyD+7b|(>Q8TH00)|WTsW3X)v&`GPHzf`1Z_U0Z@Y^$cEtjw370~ nqEv?R@^Zb*yzJuS#DY}4{G#;P?`))iiWody{an^LB{Ts5!#|;+ literal 0 HcmV?d00001 diff --git a/l10n_nl_partner_name/tests/test_l10n_nl_partner_name.py b/l10n_nl_partner_name/tests/test_l10n_nl_partner_name.py index bc28b3b84..0a32924a9 100644 --- a/l10n_nl_partner_name/tests/test_l10n_nl_partner_name.py +++ b/l10n_nl_partner_name/tests/test_l10n_nl_partner_name.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # © 2016 Therp BV # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from openerp.tests.common import TransactionCase +from odoo.tests.common import TransactionCase class TestL10nNlPartnerName(TransactionCase): diff --git a/l10n_nl_partner_name/view/res_partner.xml b/l10n_nl_partner_name/view/res_partner.xml index 537f51554..aea7eea52 100644 --- a/l10n_nl_partner_name/view/res_partner.xml +++ b/l10n_nl_partner_name/view/res_partner.xml @@ -1,5 +1,4 @@ - - + res.partner.simplified.form.firstname res.partner @@ -28,7 +27,7 @@ @@ -37,6 +36,4 @@ - - - + From 4817bd5c3ec9cec3af8009efccf101e508c76d54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul=20=28ACSONE=29?= Date: Thu, 19 Apr 2018 10:57:48 +0200 Subject: [PATCH 09/19] [FIX] version number in l10n_nl_partner_name --- l10n_nl_partner_name/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_nl_partner_name/__openerp__.py b/l10n_nl_partner_name/__openerp__.py index 672258162..ab89757de 100644 --- a/l10n_nl_partner_name/__openerp__.py +++ b/l10n_nl_partner_name/__openerp__.py @@ -20,7 +20,7 @@ ############################################################################## { 'name': 'Dutch partner names', - 'version': '8.0.1.0.0', + 'version': '10.0.1.0.0', 'author': 'Therp BV, Odoo Community Association (OCA)', 'category': 'Contact management', 'depends': [ From 3435142afc7461bfa0ff627386f0d20b39338dc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul=20=28ACSONE=29?= Date: Fri, 15 Jun 2018 23:25:20 +0200 Subject: [PATCH 10/19] remove obsolete .pot files [ci skip] --- .../i18n/l10n_nl_partner_name.pot | 39 ------------------- 1 file changed, 39 deletions(-) delete mode 100644 l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot diff --git a/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot b/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot deleted file mode 100644 index 9bfe785f1..000000000 --- a/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot +++ /dev/null @@ -1,39 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * l10n_nl_partner_name -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 10.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-01-02 12:30+0000\n" -"PO-Revision-Date: 2015-01-02 12:30+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: l10n_nl_partner_name -#: field:res.partner,infix:0 -msgid "Infix" -msgstr "" - -#. module: l10n_nl_partner_name -#: field:res.partner,initials:0 -msgid "Initials" -msgstr "" - -#. module: l10n_nl_partner_name -#: field:res.partner,parent_name:0 -msgid "Parent name" -msgstr "" - -#. module: l10n_nl_partner_name -#: code:_description:0 -#: model:ir.model,name:l10n_nl_partner_name.model_res_partner -#, python-format -msgid "Partner" -msgstr "" - From 5fe06b48e9f3d710988fc39ae2e149a75c15cb19 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Sat, 23 Jun 2018 13:48:34 +0000 Subject: [PATCH 11/19] [UPD] Update l10n_nl_partner_name.pot --- .../i18n/l10n_nl_partner_name.pot | 32 +++++++++++++++++++ l10n_nl_partner_name/i18n/nl.po | 19 ++++++----- 2 files changed, 43 insertions(+), 8 deletions(-) create mode 100644 l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot diff --git a/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot b/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot new file mode 100644 index 000000000..6d20da191 --- /dev/null +++ b/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot @@ -0,0 +1,32 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_nl_partner_name +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \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: l10n_nl_partner_name +#: model:ir.model.fields,field_description:l10n_nl_partner_name.field_res_partner_infix +#: model:ir.model.fields,field_description:l10n_nl_partner_name.field_res_users_infix +msgid "Infix" +msgstr "" + +#. module: l10n_nl_partner_name +#: model:ir.model.fields,field_description:l10n_nl_partner_name.field_res_partner_initials +#: model:ir.model.fields,field_description:l10n_nl_partner_name.field_res_users_initials +msgid "Initials" +msgstr "" + +#. module: l10n_nl_partner_name +#: model:ir.model,name:l10n_nl_partner_name.model_res_partner +msgid "Partner" +msgstr "" + diff --git a/l10n_nl_partner_name/i18n/nl.po b/l10n_nl_partner_name/i18n/nl.po index 35b685434..2655fe191 100644 --- a/l10n_nl_partner_name/i18n/nl.po +++ b/l10n_nl_partner_name/i18n/nl.po @@ -1,6 +1,6 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * l10n_nl_partner_name +# * l10n_nl_partner_name # msgid "" msgstr "" @@ -10,22 +10,25 @@ msgstr "" "PO-Revision-Date: 2013-10-02 14:42+0000\n" "Last-Translator: <>\n" "Language-Team: \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" #. module: l10n_nl_partner_name -#: model:ir.model,name:l10n_nl_partner_name.model_res_partner -msgid "Partner" -msgstr "Relatie" - -#. module: l10n_nl_partner_name -#: field:res.partner,infix:0 +#: model:ir.model.fields,field_description:l10n_nl_partner_name.field_res_partner_infix +#: model:ir.model.fields,field_description:l10n_nl_partner_name.field_res_users_infix msgid "Infix" msgstr "Tussenvoegsel" #. module: l10n_nl_partner_name -#: field:res.partner,initials:0 +#: model:ir.model.fields,field_description:l10n_nl_partner_name.field_res_partner_initials +#: model:ir.model.fields,field_description:l10n_nl_partner_name.field_res_users_initials msgid "Initials" msgstr "Voorletters" + +#. module: l10n_nl_partner_name +#: model:ir.model,name:l10n_nl_partner_name.model_res_partner +msgid "Partner" +msgstr "Relatie" From 7f7772eb7a17bbe5fc6f9efa9a40c3e92d9da758 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Thu, 19 Jul 2018 11:42:07 +0200 Subject: [PATCH 12/19] [10.0] l10n_nl_partner_name improvements (#128) * [DEL] obsolete manifest * [IMP] allow to fill in names in a more natural way --- l10n_nl_partner_name/README.rst | 6 ++ l10n_nl_partner_name/__manifest__.py | 5 +- l10n_nl_partner_name/__openerp__.py | 40 ----------- .../data/ir.config_parameter.xml | 7 ++ l10n_nl_partner_name/model/res_partner.py | 8 --- .../tests/test_l10n_nl_partner_name.py | 11 +++ l10n_nl_partner_name/view/res_partner.xml | 71 +++++++++++++------ 7 files changed, 79 insertions(+), 69 deletions(-) delete mode 100644 l10n_nl_partner_name/__openerp__.py create mode 100644 l10n_nl_partner_name/data/ir.config_parameter.xml diff --git a/l10n_nl_partner_name/README.rst b/l10n_nl_partner_name/README.rst index b0dd28bcf..350b2aa50 100644 --- a/l10n_nl_partner_name/README.rst +++ b/l10n_nl_partner_name/README.rst @@ -9,6 +9,12 @@ Module Dutch Partner Name - have initials - split first and last name (provided by partner_firstname) +Roadmap +------- + +- allow to turn on/off initials and infix separately +- add nickname (roepnaam) field to also turn on and off separately + Contributors ------------ diff --git a/l10n_nl_partner_name/__manifest__.py b/l10n_nl_partner_name/__manifest__.py index a45b58b4b..292ed2f96 100644 --- a/l10n_nl_partner_name/__manifest__.py +++ b/l10n_nl_partner_name/__manifest__.py @@ -3,18 +3,21 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). { 'name': 'Dutch partner names', - 'version': '10.0.1.0.0', + 'version': '10.0.1.1.0', 'author': 'Therp BV, Odoo Community Association (OCA)', 'category': 'Contact management', 'depends': [ 'partner_firstname', + 'base_view_inheritance_extension', ], 'data': [ 'view/res_partner.xml', + "data/ir.config_parameter.xml", ], 'auto_install': False, 'installable': True, 'external_dependencies': { 'python': ['mako'], }, + 'license': 'AGPL-3', } diff --git a/l10n_nl_partner_name/__openerp__.py b/l10n_nl_partner_name/__openerp__.py deleted file mode 100644 index ab89757de..000000000 --- a/l10n_nl_partner_name/__openerp__.py +++ /dev/null @@ -1,40 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# This module copyright (C) 2013-2015 Therp BV . -# -# 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': 'Dutch partner names', - 'version': '10.0.1.0.0', - 'author': 'Therp BV, Odoo Community Association (OCA)', - 'category': 'Contact management', - 'depends': [ - 'partner_firstname', - ], - 'data': [ - 'view/res_partner.xml', - ], - 'js': [], - 'css': [], - 'qweb': [], - 'auto_install': False, - 'installable': True, - 'external_dependencies': { - 'python': ['mako'], - }, -} diff --git a/l10n_nl_partner_name/data/ir.config_parameter.xml b/l10n_nl_partner_name/data/ir.config_parameter.xml new file mode 100644 index 000000000..d93903bf1 --- /dev/null +++ b/l10n_nl_partner_name/data/ir.config_parameter.xml @@ -0,0 +1,7 @@ + + + + partner_names_order + first_last + + diff --git a/l10n_nl_partner_name/model/res_partner.py b/l10n_nl_partner_name/model/res_partner.py index 2200e1f9a..00e783b04 100644 --- a/l10n_nl_partner_name/model/res_partner.py +++ b/l10n_nl_partner_name/model/res_partner.py @@ -40,11 +40,3 @@ def _get_computed_name(self, lastname, firstname, initials=None, 'infix': infix, }) return name if name else '' - - @api.model - def _get_inverse_name(self, name, is_company=False): - result = super(ResPartner, self)._get_inverse_name( - name, is_company=is_company) - # super assumes $lastname $firstname, we want it the other way around - return dict( - result, lastname=result['firstname'], firstname=result['lastname']) diff --git a/l10n_nl_partner_name/tests/test_l10n_nl_partner_name.py b/l10n_nl_partner_name/tests/test_l10n_nl_partner_name.py index 0a32924a9..00d54e0e9 100644 --- a/l10n_nl_partner_name/tests/test_l10n_nl_partner_name.py +++ b/l10n_nl_partner_name/tests/test_l10n_nl_partner_name.py @@ -22,3 +22,14 @@ def test_l10n_nl_partner_name(self): }) self.assertEqual(partner.firstname, 'Willem-Alexander') self.assertEqual(partner.lastname, 'van Oranje-Nassau') + onchange_vals = { + 'lastname': 'Oranje-Nassau', + 'infix': 'van', + } + partner.onchange( + onchange_vals, ['lastname', 'infix'], partner._onchange_spec(), + ) + self.assertEqual( + partner.name, + 'Willem-Alexander van Oranje-Nassau' + ) diff --git a/l10n_nl_partner_name/view/res_partner.xml b/l10n_nl_partner_name/view/res_partner.xml index aea7eea52..a6789d095 100644 --- a/l10n_nl_partner_name/view/res_partner.xml +++ b/l10n_nl_partner_name/view/res_partner.xml @@ -7,33 +7,64 @@ ref="partner_firstname.view_partner_simple_form_firstname" /> - - - - - - + +
+
+
+ + + + Last name + max-width: calc(50% - 2.1em) + + + First name + max-width: calc(50% - 2.1em) + 1 + + + + + + +
- res.partner.form.firstname res.partner - - - - - - - - - - + + + + 1 + + + {'invisible': [('is_company', '=', True)]} + + + Last name + max-width: calc(50% - 2.1em) + + + First name + max-width: calc(50% - 2.1em) + 1 + + + + + + + + + + + From 7e8cd49db2a5f210d8f6bdedc6cd330c36e49561 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Tue, 18 Sep 2018 12:34:58 +0000 Subject: [PATCH 13/19] [UPD] Update l10n_nl_partner_name.pot --- .../i18n/l10n_nl_partner_name.pot | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot b/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot index 6d20da191..6b30e8320 100644 --- a/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot +++ b/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot @@ -13,18 +13,34 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: l10n_nl_partner_name +#: model:ir.ui.view,arch_db:l10n_nl_partner_name.view_partner_form_firstname +#: model:ir.ui.view,arch_db:l10n_nl_partner_name.view_partner_simple_form_firstname +msgid "First name" +msgstr "" + #. module: l10n_nl_partner_name #: model:ir.model.fields,field_description:l10n_nl_partner_name.field_res_partner_infix #: model:ir.model.fields,field_description:l10n_nl_partner_name.field_res_users_infix +#: model:ir.ui.view,arch_db:l10n_nl_partner_name.view_partner_form_firstname +#: model:ir.ui.view,arch_db:l10n_nl_partner_name.view_partner_simple_form_firstname msgid "Infix" msgstr "" #. module: l10n_nl_partner_name #: model:ir.model.fields,field_description:l10n_nl_partner_name.field_res_partner_initials #: model:ir.model.fields,field_description:l10n_nl_partner_name.field_res_users_initials +#: model:ir.ui.view,arch_db:l10n_nl_partner_name.view_partner_form_firstname +#: model:ir.ui.view,arch_db:l10n_nl_partner_name.view_partner_simple_form_firstname msgid "Initials" msgstr "" +#. module: l10n_nl_partner_name +#: model:ir.ui.view,arch_db:l10n_nl_partner_name.view_partner_form_firstname +#: model:ir.ui.view,arch_db:l10n_nl_partner_name.view_partner_simple_form_firstname +msgid "Last name" +msgstr "" + #. module: l10n_nl_partner_name #: model:ir.model,name:l10n_nl_partner_name.model_res_partner msgid "Partner" From 1ca78440c1a3f45897de7d602c4a6e3dd51d6ab7 Mon Sep 17 00:00:00 2001 From: George Daramouskas Date: Wed, 21 Nov 2018 17:32:31 +0100 Subject: [PATCH 14/19] [MIG] l10n_nl_partner_name: Migration to 11.0 --- l10n_nl_partner_name/__init__.py | 4 +--- l10n_nl_partner_name/__manifest__.py | 7 +++---- l10n_nl_partner_name/model/__init__.py | 4 +--- l10n_nl_partner_name/model/res_partner.py | 5 ++--- l10n_nl_partner_name/scripts/guess_names.py | 8 ++++---- l10n_nl_partner_name/tests/__init__.py | 3 --- .../tests/test_l10n_nl_partner_name.py | 14 ++++---------- 7 files changed, 15 insertions(+), 30 deletions(-) diff --git a/l10n_nl_partner_name/__init__.py b/l10n_nl_partner_name/__init__.py index 479a49b96..068613b2a 100644 --- a/l10n_nl_partner_name/__init__.py +++ b/l10n_nl_partner_name/__init__.py @@ -1,4 +1,2 @@ -# -*- coding: utf-8 -*- -# © 2017 Therp BV -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from . import model diff --git a/l10n_nl_partner_name/__manifest__.py b/l10n_nl_partner_name/__manifest__.py index 292ed2f96..2182af324 100644 --- a/l10n_nl_partner_name/__manifest__.py +++ b/l10n_nl_partner_name/__manifest__.py @@ -1,9 +1,8 @@ -# -*- coding: utf-8 -*- -# © 2017 Therp BV -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +# Copyright 2017 Therp BV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). { 'name': 'Dutch partner names', - 'version': '10.0.1.1.0', + 'version': '11.0.0.0.0', 'author': 'Therp BV, Odoo Community Association (OCA)', 'category': 'Contact management', 'depends': [ diff --git a/l10n_nl_partner_name/model/__init__.py b/l10n_nl_partner_name/model/__init__.py index 41d9e70d8..73a41f174 100644 --- a/l10n_nl_partner_name/model/__init__.py +++ b/l10n_nl_partner_name/model/__init__.py @@ -1,4 +1,2 @@ -# -*- coding: utf-8 -*- -# © 2017 Therp BV -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from . import res_partner diff --git a/l10n_nl_partner_name/model/res_partner.py b/l10n_nl_partner_name/model/res_partner.py index 00e783b04..d992efa59 100644 --- a/l10n_nl_partner_name/model/res_partner.py +++ b/l10n_nl_partner_name/model/res_partner.py @@ -1,6 +1,5 @@ -# -*- coding: utf-8 -*- -# © 2017 Therp BV -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +# Copyright 2017 Therp BV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from mako.template import Template from odoo import models, fields, api diff --git a/l10n_nl_partner_name/scripts/guess_names.py b/l10n_nl_partner_name/scripts/guess_names.py index eb94a9b6e..d921fdd6d 100644 --- a/l10n_nl_partner_name/scripts/guess_names.py +++ b/l10n_nl_partner_name/scripts/guess_names.py @@ -1,6 +1,6 @@ #!/usr/bin/python -# © 2017 Therp BV -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +# Copyright 2017 Therp BV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). import argparse import xmlrpclib @@ -58,7 +58,7 @@ def add_token(values, key, token, delimiter=' '): for partner in odoo_execute( 'res.partner', 'read', ids, ['lastname', 'firstname', 'initials', 'infix']): - print partner['lastname'] + print(partner['lastname']) have_infix = False tokens = partner['lastname'].split() @@ -76,7 +76,7 @@ def add_token(values, key, token, delimiter=' '): add_token(partner, 'firstname', token) partner['lastname'] = ' '.join(tokens) - print partner + print(partner) odoo_execute('res.partner', 'write', partner['id'], partner) offset += limit diff --git a/l10n_nl_partner_name/tests/__init__.py b/l10n_nl_partner_name/tests/__init__.py index 8e412f945..ddf925ff7 100644 --- a/l10n_nl_partner_name/tests/__init__.py +++ b/l10n_nl_partner_name/tests/__init__.py @@ -1,4 +1 @@ -# -*- coding: utf-8 -*- -# © 2016 Therp BV -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from . import test_l10n_nl_partner_name diff --git a/l10n_nl_partner_name/tests/test_l10n_nl_partner_name.py b/l10n_nl_partner_name/tests/test_l10n_nl_partner_name.py index 00d54e0e9..fe1809751 100644 --- a/l10n_nl_partner_name/tests/test_l10n_nl_partner_name.py +++ b/l10n_nl_partner_name/tests/test_l10n_nl_partner_name.py @@ -1,10 +1,10 @@ -# -*- coding: utf-8 -*- -# © 2016 Therp BV -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +# Copyright 2016 Therp BV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from odoo.tests.common import TransactionCase class TestL10nNlPartnerName(TransactionCase): + def test_l10n_nl_partner_name(self): partner = self.env['res.partner'].create({ 'name': 'Mark Rutte', @@ -22,13 +22,7 @@ def test_l10n_nl_partner_name(self): }) self.assertEqual(partner.firstname, 'Willem-Alexander') self.assertEqual(partner.lastname, 'van Oranje-Nassau') - onchange_vals = { - 'lastname': 'Oranje-Nassau', - 'infix': 'van', - } - partner.onchange( - onchange_vals, ['lastname', 'infix'], partner._onchange_spec(), - ) + partner._onchange_subnames() self.assertEqual( partner.name, 'Willem-Alexander van Oranje-Nassau' From 1115cdb17b78af4a4f2648758ce608b5fbb47d85 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Mon, 28 Jan 2019 13:25:42 +0000 Subject: [PATCH 15/19] [UPD] Update l10n_nl_partner_name.pot --- l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot b/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot index 6b30e8320..2e5884ef4 100644 --- a/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot +++ b/l10n_nl_partner_name/i18n/l10n_nl_partner_name.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 10.0\n" +"Project-Id-Version: Odoo Server 11.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: <>\n" "Language-Team: \n" @@ -13,6 +13,11 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: l10n_nl_partner_name +#: model:ir.model,name:l10n_nl_partner_name.model_res_partner +msgid "Contact" +msgstr "" + #. module: l10n_nl_partner_name #: model:ir.ui.view,arch_db:l10n_nl_partner_name.view_partner_form_firstname #: model:ir.ui.view,arch_db:l10n_nl_partner_name.view_partner_simple_form_firstname @@ -41,8 +46,3 @@ msgstr "" msgid "Last name" msgstr "" -#. module: l10n_nl_partner_name -#: model:ir.model,name:l10n_nl_partner_name.model_res_partner -msgid "Partner" -msgstr "" - From a577862f22301653b2fba02ca47368577221f9db Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Sun, 3 Mar 2019 15:41:20 +0000 Subject: [PATCH 16/19] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: l10n-netherlands-11.0/l10n-netherlands-11.0-l10n_nl_partner_name Translate-URL: https://translation.odoo-community.org/projects/l10n-netherlands-11-0/l10n-netherlands-11-0-l10n_nl_partner_name/ --- l10n_nl_partner_name/i18n/nl.po | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/l10n_nl_partner_name/i18n/nl.po b/l10n_nl_partner_name/i18n/nl.po index 2655fe191..846cd69dd 100644 --- a/l10n_nl_partner_name/i18n/nl.po +++ b/l10n_nl_partner_name/i18n/nl.po @@ -16,19 +16,38 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: l10n_nl_partner_name +#: model:ir.model,name:l10n_nl_partner_name.model_res_partner +msgid "Contact" +msgstr "" + +#. module: l10n_nl_partner_name +#: model:ir.ui.view,arch_db:l10n_nl_partner_name.view_partner_form_firstname +#: model:ir.ui.view,arch_db:l10n_nl_partner_name.view_partner_simple_form_firstname +msgid "First name" +msgstr "" + #. module: l10n_nl_partner_name #: model:ir.model.fields,field_description:l10n_nl_partner_name.field_res_partner_infix #: model:ir.model.fields,field_description:l10n_nl_partner_name.field_res_users_infix +#: model:ir.ui.view,arch_db:l10n_nl_partner_name.view_partner_form_firstname +#: model:ir.ui.view,arch_db:l10n_nl_partner_name.view_partner_simple_form_firstname msgid "Infix" msgstr "Tussenvoegsel" #. module: l10n_nl_partner_name #: model:ir.model.fields,field_description:l10n_nl_partner_name.field_res_partner_initials #: model:ir.model.fields,field_description:l10n_nl_partner_name.field_res_users_initials +#: model:ir.ui.view,arch_db:l10n_nl_partner_name.view_partner_form_firstname +#: model:ir.ui.view,arch_db:l10n_nl_partner_name.view_partner_simple_form_firstname msgid "Initials" msgstr "Voorletters" #. module: l10n_nl_partner_name -#: model:ir.model,name:l10n_nl_partner_name.model_res_partner -msgid "Partner" -msgstr "Relatie" +#: model:ir.ui.view,arch_db:l10n_nl_partner_name.view_partner_form_firstname +#: model:ir.ui.view,arch_db:l10n_nl_partner_name.view_partner_simple_form_firstname +msgid "Last name" +msgstr "" + +#~ msgid "Partner" +#~ msgstr "Relatie" From 44540fdbe52e30a930639324e996a333312b6066 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Sun, 12 Jan 2020 10:52:57 +0100 Subject: [PATCH 17/19] [MIG] [12.0] l10n_nl_partner_name --- l10n_nl_partner_name/__manifest__.py | 9 ++---- l10n_nl_partner_name/model/res_partner.py | 6 ++-- .../{view => views}/res_partner.xml | 30 +++++++++++-------- 3 files changed, 23 insertions(+), 22 deletions(-) rename l10n_nl_partner_name/{view => views}/res_partner.xml (67%) diff --git a/l10n_nl_partner_name/__manifest__.py b/l10n_nl_partner_name/__manifest__.py index 2182af324..0e2a4e81b 100644 --- a/l10n_nl_partner_name/__manifest__.py +++ b/l10n_nl_partner_name/__manifest__.py @@ -2,21 +2,16 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). { 'name': 'Dutch partner names', - 'version': '11.0.0.0.0', + 'version': '12.0.1.0.0', 'author': 'Therp BV, Odoo Community Association (OCA)', 'category': 'Contact management', 'depends': [ 'partner_firstname', - 'base_view_inheritance_extension', ], 'data': [ - 'view/res_partner.xml', + "views/res_partner.xml", "data/ir.config_parameter.xml", ], - 'auto_install': False, 'installable': True, - 'external_dependencies': { - 'python': ['mako'], - }, 'license': 'AGPL-3', } diff --git a/l10n_nl_partner_name/model/res_partner.py b/l10n_nl_partner_name/model/res_partner.py index d992efa59..f781ac43f 100644 --- a/l10n_nl_partner_name/model/res_partner.py +++ b/l10n_nl_partner_name/model/res_partner.py @@ -1,7 +1,7 @@ # Copyright 2017 Therp BV # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). -from mako.template import Template from odoo import models, fields, api +from odoo.addons.mail.models.mail_template import mako_safe_template_env class ResPartner(models.Model): @@ -26,13 +26,13 @@ def _onchange_subnames(self): @api.model def _get_computed_name(self, lastname, firstname, initials=None, infix=None): - name_template = Template( + name_template = mako_safe_template_env.from_string( self.env.context.get( 'name_format', "${firstname or initials or ''}" "${(firstname or initials) and ' ' or ''}" "${infix or ''}${infix and ' ' or ''}${lastname or ''}")) - name = name_template.render(**{ + name = name_template.render({ 'firstname': firstname, 'lastname': lastname, 'initials': initials, diff --git a/l10n_nl_partner_name/view/res_partner.xml b/l10n_nl_partner_name/views/res_partner.xml similarity index 67% rename from l10n_nl_partner_name/view/res_partner.xml rename to l10n_nl_partner_name/views/res_partner.xml index a6789d095..b26ea581b 100644 --- a/l10n_nl_partner_name/view/res_partner.xml +++ b/l10n_nl_partner_name/views/res_partner.xml @@ -7,12 +7,14 @@ ref="partner_firstname.view_partner_simple_form_firstname" /> - -
+ +
- - + + + + Last name max-width: calc(50% - 2.1em) @@ -35,28 +37,32 @@ res.partner - - - - 1 + +
+
- - {'invisible': [('is_company', '=', True)]} + + + Last name max-width: calc(50% - 2.1em) + oe_inline + 1 First name max-width: calc(50% - 2.1em) 1 + oe_inline + 1 - + - + Date: Sun, 12 Jan 2020 11:13:27 +0100 Subject: [PATCH 18/19] [ADD] partner_contact to oca_dependencies.txt --- oca_dependencies.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/oca_dependencies.txt b/oca_dependencies.txt index f07b5e1bd..a2bd123a2 100644 --- a/oca_dependencies.txt +++ b/oca_dependencies.txt @@ -1,2 +1,3 @@ account-financial-reporting +partner-contact server-ux From 0466c53fd542fdef775a8a4de3194eb28c21167b Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Wed, 22 Jan 2020 16:08:49 +0100 Subject: [PATCH 19/19] fixup! [MIG] [12.0] l10n_nl_partner_name --- l10n_nl_partner_name/views/res_partner.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/l10n_nl_partner_name/views/res_partner.xml b/l10n_nl_partner_name/views/res_partner.xml index b26ea581b..4f3256a0c 100644 --- a/l10n_nl_partner_name/views/res_partner.xml +++ b/l10n_nl_partner_name/views/res_partner.xml @@ -7,7 +7,7 @@ ref="partner_firstname.view_partner_simple_form_firstname" /> - +