Use fields.depends decorator

issue3487
review2301002
This commit is contained in:
Cédric Krier
2014-01-26 14:29:18 +01:00
parent 7eabe2205b
commit bd953e7316
2 changed files with 8 additions and 6 deletions
+4 -4
View File
@@ -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
+4 -2
View File
@@ -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}