From c16d27cb60696b77914e7e7523800df4afb3d058 Mon Sep 17 00:00:00 2001 From: Nikul-Chaudhary Date: Mon, 21 Jan 2019 23:43:45 +0530 Subject: [PATCH] [MIG] partner_second_lastname v11 to v12 --- partner_second_lastname/README.rst | 1 + partner_second_lastname/__init__.py | 3 +- partner_second_lastname/__manifest__.py | 5 +- partner_second_lastname/models/__init__.py | 2 - .../models/res_config_settings.py | 3 +- partner_second_lastname/models/res_partner.py | 10 +-- partner_second_lastname/readme/CONFIGURE.rst | 15 +++++ .../readme/CONTRIBUTORS.rst | 4 ++ .../readme/DESCRIPTION.rst | 7 +++ partner_second_lastname/readme/USAGE.rst | 13 ++++ partner_second_lastname/tests/__init__.py | 1 - partner_second_lastname/tests/test_config.py | 1 - partner_second_lastname/tests/test_name.py | 5 +- .../tests/test_onchange.py | 5 +- partner_second_lastname/views/res_partner.xml | 62 +++++++++---------- partner_second_lastname/views/res_user.xml | 24 +++---- 16 files changed, 92 insertions(+), 69 deletions(-) create mode 100644 partner_second_lastname/readme/CONFIGURE.rst create mode 100644 partner_second_lastname/readme/CONTRIBUTORS.rst create mode 100644 partner_second_lastname/readme/DESCRIPTION.rst create mode 100644 partner_second_lastname/readme/USAGE.rst diff --git a/partner_second_lastname/README.rst b/partner_second_lastname/README.rst index a99c2734c..b743fcbd1 100644 --- a/partner_second_lastname/README.rst +++ b/partner_second_lastname/README.rst @@ -83,6 +83,7 @@ Contributors * Jairo Llopis . * Antonio Espinosa. * Pedro M. Baeza . +* Nikul Chaudhary Maintainer ---------- diff --git a/partner_second_lastname/__init__.py b/partner_second_lastname/__init__.py index 27c5e587c..080645149 100644 --- a/partner_second_lastname/__init__.py +++ b/partner_second_lastname/__init__.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- +# Copyright 2015 Grupo ESOC Ingeniería de Servicios, S.L.U. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -# © 2015 Grupo ESOC Ingeniería de Servicios, S.L.U. from . import models diff --git a/partner_second_lastname/__manifest__.py b/partner_second_lastname/__manifest__.py index 202da535c..3549ae627 100644 --- a/partner_second_lastname/__manifest__.py +++ b/partner_second_lastname/__manifest__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2015 Grupo ESOC Ingeniería de Servicios, S.L.U. - Jairo Llopis # Copyright 2015 Antiun Ingenieria S.L. - Antonio Espinosa # Copyright 2017 Tecnativa - Pedro M. Baeza @@ -7,9 +6,9 @@ { "name": "Partner second last name", "summary": "Have split first and second lastnames", - "version": "11.0.1.0.0", + "version": "12.0.1.0.0", "license": "AGPL-3", - "website": "https://www.tecnativa.com", + "website": "https://github.com/OCA/partner-contact", "author": "Tecnativa, " "Odoo Community Association (OCA)", "category": "Partner Management", diff --git a/partner_second_lastname/models/__init__.py b/partner_second_lastname/models/__init__.py index b2d1f3c3b..17b884cb3 100644 --- a/partner_second_lastname/models/__init__.py +++ b/partner_second_lastname/models/__init__.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- -# © 2015 Antiun Ingenieria S.L. - Antonio Espinosa # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from . import res_config_settings diff --git a/partner_second_lastname/models/res_config_settings.py b/partner_second_lastname/models/res_config_settings.py index 09955ab1d..4fbf58000 100644 --- a/partner_second_lastname/models/res_config_settings.py +++ b/partner_second_lastname/models/res_config_settings.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# © 2015 Antiun Ingenieria S.L. - Antonio Espinosa +# Copyright 2015 Antiun Ingenieria S.L. - Antonio Espinosa # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from odoo import models, api diff --git a/partner_second_lastname/models/res_partner.py b/partner_second_lastname/models/res_partner.py index 39136e77f..1f70d9e40 100644 --- a/partner_second_lastname/models/res_partner.py +++ b/partner_second_lastname/models/res_partner.py @@ -1,8 +1,7 @@ -# -*- coding: utf-8 -*- -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # Copyright 2015 Grupo ESOC Ingeniería de Servicios, S.L.U. - Jairo Llopis # Copyright 2015 Antiun Ingenieria S.L. - Antonio Espinosa # Copyright 2017 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from odoo import api, fields, models from odoo.addons.partner_firstname import exceptions @@ -12,7 +11,9 @@ class ResPartner(models.Model): """Adds a second last name.""" _inherit = "res.partner" - lastname2 = fields.Char("Second last name", oldname="lastname_second") + lastname2 = fields.Char( + "Second last name", + ) @api.model def _get_computed_name(self, lastname, firstname, lastname2=None): @@ -49,9 +50,10 @@ class ResPartner(models.Model): partner.lastname, partner.firstname, partner.lastname2, ) - @api.one + @api.multi def _inverse_name(self): """Try to revert the effect of :meth:`._compute_name`.""" + self.ensure_one() parts = self._get_inverse_name(self.name, self.is_company) # Avoid to hit :meth:`~._check_name` with all 3 fields being ``False`` before, after = {}, {} diff --git a/partner_second_lastname/readme/CONFIGURE.rst b/partner_second_lastname/readme/CONFIGURE.rst new file mode 100644 index 000000000..8cc029d73 --- /dev/null +++ b/partner_second_lastname/readme/CONFIGURE.rst @@ -0,0 +1,15 @@ +You can configure some common name patterns for the inverse function +in Settings > Configuration > General settings: + +* Lastname SecondLastname Firstname: For example 'Anderson Lavarge Robert' +* Lastname SecondLastname, Firstname: For example 'Anderson Lavarge, Robert' +* Firstname Lastname SecondLastname: For example 'Robert Anderson Lavarge' + +After applying the changes, you can recalculate all partners name clicking +"Recalculate names" button. Note: This process could take so much time depending +how many partners there are in database. + +You can use *_get_inverse_name* method to get firstname, lastname and +second lastname from a simple string and also *_get_computed_name* to get a +name form the firstname, lastname and second lastname. +These methods can be overridden to change the format specified above. diff --git a/partner_second_lastname/readme/CONTRIBUTORS.rst b/partner_second_lastname/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..97514092d --- /dev/null +++ b/partner_second_lastname/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* Jairo Llopis . +* Antonio Espinosa. +* Pedro M. Baeza . +* Nikul Chaudhary diff --git a/partner_second_lastname/readme/DESCRIPTION.rst b/partner_second_lastname/readme/DESCRIPTION.rst new file mode 100644 index 000000000..4c9bfd578 --- /dev/null +++ b/partner_second_lastname/readme/DESCRIPTION.rst @@ -0,0 +1,7 @@ +This module was written to extend the functionality of ``partner_firstname`` to +support having a second lastname for contact partners. + +In some countries, it's important to have a second last name for contacts. + +Contact partners will need to fill at least one of the name fields +(*First name*, *First last name* or *Second last name*). diff --git a/partner_second_lastname/readme/USAGE.rst b/partner_second_lastname/readme/USAGE.rst new file mode 100644 index 000000000..a5b5118f3 --- /dev/null +++ b/partner_second_lastname/readme/USAGE.rst @@ -0,0 +1,13 @@ +To use this module, you need to: + +* Edit any partner's form. +* Make sure the partner is not a company. +* Enter firstname and lastnames. + +If you directly enter the full name instead of entering the other fields +separately (maybe from other form), this module will try to guess the best +match for your input and split it between firstname, lastname and second +lastname using an inverse function. + +If you can, always enter it manually please. Automatic guessing could fail for +you easily in some corner cases. diff --git a/partner_second_lastname/tests/__init__.py b/partner_second_lastname/tests/__init__.py index 9a38fb683..fb8c3b764 100644 --- a/partner_second_lastname/tests/__init__.py +++ b/partner_second_lastname/tests/__init__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from . import test_name diff --git a/partner_second_lastname/tests/test_config.py b/partner_second_lastname/tests/test_config.py index fe61385f3..3b8e00ae1 100644 --- a/partner_second_lastname/tests/test_config.py +++ b/partner_second_lastname/tests/test_config.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2017 Tecnativa - Pedro M. Baeza # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). diff --git a/partner_second_lastname/tests/test_name.py b/partner_second_lastname/tests/test_name.py index c8cbe0957..06e0de4e3 100644 --- a/partner_second_lastname/tests/test_name.py +++ b/partner_second_lastname/tests/test_name.py @@ -1,7 +1,6 @@ -# -*- coding: utf-8 -*- # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -# © 2015 Grupo ESOC Ingeniería de Servicios, S.L.U. -# © 2015 Antiun Ingenieria S.L. - Antonio Espinosa +# Copyright 2015 Grupo ESOC Ingeniería de Servicios, S.L.U. +# Copyright 2015 Antiun Ingenieria S.L. - Antonio Espinosa from odoo.tests.common import TransactionCase from odoo.addons.partner_firstname.tests.base import MailInstalled diff --git a/partner_second_lastname/tests/test_onchange.py b/partner_second_lastname/tests/test_onchange.py index 797aec7f3..1e290231c 100644 --- a/partner_second_lastname/tests/test_onchange.py +++ b/partner_second_lastname/tests/test_onchange.py @@ -1,7 +1,6 @@ -# -*- coding: utf-8 -*- # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -# © 2015 Grupo ESOC Ingeniería de Servicios, S.L.U. -# © 2015 Antiun Ingenieria S.L. - Antonio Espinosa +# Copyright 2015 Grupo ESOC Ingeniería de Servicios, S.L.U. +# Copyright 2015 Antiun Ingenieria S.L. - Antonio Espinosa """These tests try to mimic the behavior of the UI form. diff --git a/partner_second_lastname/views/res_partner.xml b/partner_second_lastname/views/res_partner.xml index 1ee6fe9f4..a47838afd 100644 --- a/partner_second_lastname/views/res_partner.xml +++ b/partner_second_lastname/views/res_partner.xml @@ -7,17 +7,15 @@ res.partner - - - {'required': [('lastname', '=', False), ('lastname2', '=', False), ('is_company', '=', False), ('type', '=', 'contact')]} - - - {'required': [('firstname', '=', False), ('lastname2', '=', False), ('is_company', '=', False), ('type', '=', 'contact')]} - - - - - + + {'required': [('lastname', '=', False), ('lastname2', '=', False), ('is_company', '=', False), ('type', '=', 'contact')]} + + + {'required': [('firstname', '=', False), ('lastname2', '=', False), ('is_company', '=', False), ('type', '=', 'contact')]} + + + + @@ -25,29 +23,27 @@ res.partner - - - - {'required': [('lastname', '=', False), ('lastname2', '=', False), ('is_company', '=', False), ('type', '=', 'contact')]} - + + + {'required': [('lastname', '=', False), ('lastname2', '=', False), ('is_company', '=', False), ('type', '=', 'contact')]} + - - {'required': [('firstname', '=', False), ('lastname2', '=', False), ('is_company', '=', False), ('type', '=', 'contact')]} - - - - - - - {'required': [('lastname', '=', False), ('lastname2', '=', False), ('is_company', '=', False), ('type', '=', 'contact')]} - - - {'required': [('firstname', '=', False), ('lastname2', '=', False), ('is_company', '=', False), ('type', '=', 'contact')]} - - - - - + + {'required': [('firstname', '=', False), ('lastname2', '=', False), ('is_company', '=', False), ('type', '=', 'contact')]} + + + + + + + {'required': [('lastname', '=', False), ('lastname2', '=', False), ('is_company', '=', False), ('type', '=', 'contact')]} + + + {'required': [('firstname', '=', False), ('lastname2', '=', False), ('is_company', '=', False), ('type', '=', 'contact')]} + + + + diff --git a/partner_second_lastname/views/res_user.xml b/partner_second_lastname/views/res_user.xml index f477bf334..fb2b1c5d9 100644 --- a/partner_second_lastname/views/res_user.xml +++ b/partner_second_lastname/views/res_user.xml @@ -9,21 +9,15 @@ res.users - - - {'required': [('lastname', '=', False), ('lastname2', '=', False)]} - - - - {'required': [('firstname', '=', False), ('lastname2', '=', False)]} - - - - - - + + {'required': [('lastname', '=', False), ('lastname2', '=', False)]} + + + {'required': [('firstname', '=', False), ('lastname2', '=', False)]} + + + +