From db31fa2b373da373d4935a887fb2e449bad6c8f3 Mon Sep 17 00:00:00 2001 From: Luciano Rossi Date: Tue, 17 Nov 2015 14:41:16 -0300 Subject: [PATCH] Remove required on Party name issue4436 review24611003 --- CHANGELOG | 2 ++ party.py | 11 +++++++++-- tests/test_party.py | 8 ++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index d09453c41a..59bec36148 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,5 @@ +* Remove required on Party name + Version 3.8.0 - 2015-11-02 * Bug fixes (see mercurial logs for details) * Change Party.lang into Property diff --git a/party.py b/party.py index b105324ae7..4e98fcfdb9 100644 --- a/party.py +++ b/party.py @@ -28,8 +28,7 @@ class Party(ModelSQL, ModelView): "Party" __name__ = 'party.party' - name = fields.Char('Name', required=True, select=True, - states=STATES, depends=DEPENDS) + name = fields.Char('Name', select=True, states=STATES, depends=DEPENDS) code = fields.Char('Code', required=True, select=True, states={ 'readonly': Eval('code_readonly', True), @@ -90,6 +89,9 @@ class Party(ModelSQL, ModelView): Property.set('lang', cls.__name__, ids, value) table_h.drop_column('lang') + # Migration from 3.8 + table_h.not_null_action('name', 'remove') + @staticmethod def order_code(tables): table, _ = tables[None] @@ -182,6 +184,11 @@ class Party(ModelSQL, ModelView): icon = icon or 'tryton-party' yield record, rec_name, icon + def get_rec_name(self, name): + if not self.name: + return '[' + self.code + ']' + return self.name + @classmethod def search_rec_name(cls, name, clause): if clause[1].startswith('!') or clause[1].startswith('not '): diff --git a/tests/test_party.py b/tests/test_party.py index ef88cfb195..eabfcb7c3d 100644 --- a/tests/test_party.py +++ b/tests/test_party.py @@ -92,6 +92,14 @@ class PartyTestCase(ModuleTestCase): self.assertEqual(oext, 'odt') self.assertTrue(content) + def test0070party_without_name(self): + 'Create party without name' + with Transaction().start(DB_NAME, USER, context=CONTEXT): + party2, = self.party.create([{}]) + self.assert_(party2.id) + code = party2.code + self.assertEqual(party2.rec_name, '[' + code + ']') + def suite(): suite = trytond.tests.test_tryton.suite()