From 69faa6dde01c03dffe2b74f8a4a0511e09512bbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 29 Nov 2011 11:33:59 +0100 Subject: [PATCH] Allow to have no Party Sequence issue1608 review189001 --- CHANGELOG | 2 ++ configuration.py | 2 +- party.py | 18 ++++++++++++++++-- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 40813dc3a0..fbc52e89c1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,5 @@ +* Allow to have no Party Sequence + Version 2.2.0 - 2011-10-24 * Bug fixes (see mercurial logs for details) diff --git a/configuration.py b/configuration.py index 349842e09c..4266280fcc 100644 --- a/configuration.py +++ b/configuration.py @@ -11,7 +11,7 @@ class Configuration(ModelSingleton, ModelSQL, ModelView): party_sequence = fields.Property(fields.Many2One('ir.sequence', 'Party Sequence', domain=[ ('code', '=', 'party.party'), - ], required=True)) + ])) party_lang = fields.Property(fields.Many2One("ir.lang", 'Party Language', help=('The value set on this field will preset the language on new ' 'parties'))) diff --git a/party.py b/party.py index d5a3395992..9d54bad641 100644 --- a/party.py +++ b/party.py @@ -32,9 +32,15 @@ class Party(ModelSQL, ModelView): name = fields.Char('Name', required=True, select=1, states=STATES, depends=DEPENDS) code = fields.Char('Code', required=True, select=1, - readonly=True, order_field="%(table)s.code_length %(order)s, " \ - "%(table)s.code %(order)s") + order_field="%(table)s.code_length %(order)s, " \ + "%(table)s.code %(order)s", + states={ + 'readonly': Eval('code_readonly', True), + }, + depends=['code_readonly']) code_length = fields.Integer('Code Length', select=1, readonly=True) + code_readonly = fields.Function(fields.Boolean('Code Readonly'), + 'get_code_readonly') lang = fields.Many2One("ir.lang", 'Language', states=STATES, depends=DEPENDS) vat_number = fields.Char('VAT Number', help="Value Added Tax number", @@ -97,6 +103,14 @@ class Party(ModelSQL, ModelView): config = config_obj.browse(1) return config.party_lang.id + def default_code_readonly(self): + config_obj = Pool().get('party.configuration') + config = config_obj.browse(1) + return bool(config.party_sequence) + + def get_code_readonly(self, ids, name): + return dict((x, True) for x in ids) + def on_change_with_vat_code(self, vals): return (vals.get('vat_country') or '') + (vals.get('vat_number') or '')