Use fields.depends decorator
issue3487 review2301002
This commit is contained in:
+4
-4
@@ -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
|
||||
|
||||
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user