diff --git a/forecast.py b/forecast.py index 831c21d769..3be51a6b7f 100644 --- a/forecast.py +++ b/forecast.py @@ -180,7 +180,7 @@ class ForecastLine(ModelSQL, ModelView): domain=[ ('category', '=', (Eval('product'), 'product.default_uom.category')), - ]) + ], on_change=['uom']) unit_digits = fields.Function(fields.Integer('Unit Digits'), 'get_unit_digits') quantity = fields.Float('Quantity', digits=(16, Eval('unit_digits', 2)), @@ -223,6 +223,15 @@ class ForecastLine(ModelSQL, ModelView): res['unit_digits'] = product.default_uom.digits return res + def on_change_uom(self, cursor, user, ids, vals, context=None): + uom_obj = self.pool.get('product.uom') + res = {} + res['unit_digits'] = 2 + if vals.get('uom'): + uom = uom_obj.browse(cursor, user, vals['uom'], context=context) + res['unit_digits'] = uom.digits + return res + def get_unit_digits(self, cursor, user, ids, name, context=None): res = {} for line in self.browse(cursor, user, ids, context=context):