From bd953e7316fad0ee1266a9f09b0ddaf2fefa337a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 26 Jan 2014 14:29:18 +0100 Subject: [PATCH] Use fields.depends decorator issue3487 review2301002 --- product.py | 8 ++++---- uom.py | 6 ++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/product.py b/product.py index 61a0feaee8..6b085b3819 100644 --- a/product.py +++ b/product.py @@ -47,8 +47,7 @@ class Template(ModelSQL, ModelView): default_uom = fields.Many2One('product.uom', 'Default UOM', required=True, states=STATES, depends=DEPENDS) default_uom_category = fields.Function( - fields.Many2One('product.uom.category', 'Default UOM Category', - on_change_with=['default_uom']), + fields.Many2One('product.uom.category', 'Default UOM Category'), 'on_change_with_default_uom_category', searcher='search_default_uom_category') active = fields.Boolean('Active', select=True) @@ -104,6 +103,7 @@ class Template(ModelSQL, ModelView): 'write_uid', 'write_date')) return [Product.default_get(fields_names)] + @fields.depends('default_uom') def on_change_with_default_uom_category(self, name=None): if self.default_uom: return self.default_uom.category.id @@ -134,8 +134,7 @@ class Product(ModelSQL, ModelView): active = fields.Boolean('Active', select=True) default_uom = fields.Function(fields.Many2One('product.uom', 'Default UOM'), 'get_default_uom', searcher='search_default_uom') - type = fields.Function(fields.Selection(TYPES, 'Type', - on_change_with=['template']), + type = fields.Function(fields.Selection(TYPES, 'Type'), 'on_change_with_type', searcher='search_type') list_price_uom = fields.Function(fields.Numeric('List Price', digits=(16, 4)), 'get_price_uom') @@ -190,6 +189,7 @@ class Product(ModelSQL, ModelView): def search_default_uom(cls, name, clause): return [('template.default_uom',) + tuple(clause[1:])] + @fields.depends('template') def on_change_with_type(self, name=None): if self.template: return self.template.type diff --git a/uom.py b/uom.py index eb44fe252c..ce31bd60a0 100644 --- a/uom.py +++ b/uom.py @@ -37,11 +37,11 @@ class Uom(ModelSQL, ModelView): category = fields.Many2One('product.uom.category', 'UOM Category', required=True, ondelete='RESTRICT', states=STATES, depends=DEPENDS) rate = fields.Float('Rate', digits=(12, 12), required=True, - on_change=['rate'], states=STATES, depends=DEPENDS, + states=STATES, depends=DEPENDS, help=('The coefficient for the formula:\n' '1 (base unit) = coef (this unit)')) factor = fields.Float('Factor', digits=(12, 12), states=STATES, - on_change=['factor'], required=True, depends=DEPENDS, + required=True, depends=DEPENDS, help=('The coefficient for the formula:\n' 'coef (base unit) = 1 (this unit)')) rounding = fields.Float('Rounding Precision', digits=(12, 12), @@ -109,6 +109,7 @@ class Uom(ModelSQL, ModelView): def default_digits(): return 2 + @fields.depends('factor') def on_change_factor(self): if (self.factor or 0.0) == 0.0: return {'rate': 0.0} @@ -116,6 +117,7 @@ class Uom(ModelSQL, ModelView): 'rate': round(1.0 / self.factor, self.__class__.rate.digits[1]), } + @fields.depends('rate') def on_change_rate(self): if (self.rate or 0.0) == 0.0: return {'factor': 0.0}