diff --git a/partner_firstname/__openerp__.py b/partner_firstname/__openerp__.py index 463b01c97..61c0ac2b4 100644 --- a/partner_firstname/__openerp__.py +++ b/partner_firstname/__openerp__.py @@ -21,8 +21,8 @@ { 'name': 'Partner first name and last name', 'summary': "Split first name and last name for non company partners", - 'version': '8.0.2.0.1', - 'author': "Camptocamp, Grupo ESOC, Odoo Community Association (OCA)", + 'version': '8.0.2.1.0', + 'author': "Camptocamp,Odoo Community Association (OCA)", "license": "AGPL-3", 'maintainer': 'Camptocamp, Acsone', 'category': 'Extra Tools', diff --git a/partner_firstname/models.py b/partner_firstname/models.py index 4500e478d..eab2b1352 100644 --- a/partner_firstname/models.py +++ b/partner_firstname/models.py @@ -99,7 +99,8 @@ class ResPartner(models.Model): @api.depends("firstname", "lastname") def _compute_name(self): """Write the 'name' field according to splitted data.""" - self.name = self._get_computed_name(self.lastname, self.firstname) + if self.exists(): + self.name = self._get_computed_name(self.lastname, self.firstname) @api.one def _inverse_name_after_cleaning_whitespace(self): diff --git a/partner_firstname/tests/__init__.py b/partner_firstname/tests/__init__.py index 2bdf39b05..69104a4e4 100644 --- a/partner_firstname/tests/__init__.py +++ b/partner_firstname/tests/__init__.py @@ -29,4 +29,11 @@ # ############################################################################## -from . import test_create, test_defaults, test_empty, test_name, test_onchange +from . import ( + test_create, + test_defaults, + test_delete, + test_empty, + test_name, + test_onchange +) diff --git a/partner_firstname/tests/test_delete.py b/partner_firstname/tests/test_delete.py new file mode 100644 index 000000000..e31a3f44f --- /dev/null +++ b/partner_firstname/tests/test_delete.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# © 2015 Grupo ESOC +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openerp.tests.common import TransactionCase +from .base import MailInstalled +from .. import exceptions as ex + + +class CompanyCase(TransactionCase): + model = "res.partner" + context = {"default_is_company": True} + + def test_computing_after_unlink(self): + """Test what happens if recomputed after unlinking. + + This test might seem useless, but really this happens when module + ``partner_relations`` is installed. + + See https://github.com/OCA/partner-contact/issues/154. + """ + data = {"name": u"Söme name"} + record = self.env[self.model].with_context(**self.context).create(data) + record.unlink() + record.recompute() + + +class PersonCase(CompanyCase): + context = {"default_is_company": False} + + +class UserCase(CompanyCase, MailInstalled): + model = "res.users" + context = {"default_login": "user@example.com"} + + def test_computing_after_unlink(self): + # Cannot create users if ``mail`` is installed + if not self.mail_installed(): + super(UserCase, self).test_computing_after_unlink()