changeset cfadb18689ec in modules/production:default
details:
https://hg.tryton.org/modules/production?cmd=changeset&node=cfadb18689ec
description:
Provide digits from unit of measure
issue10677
review365801002
diffstat:
bom.py | 33 ++++-----------------------------
production.py | 17 +++--------------
2 files changed, 7 insertions(+), 43 deletions(-)
diffs (157 lines):
diff -r 21ca5ae2a3a1 -r cfadb18689ec bom.py
--- a/bom.py Sun Jul 04 17:54:47 2021 +0200
+++ b/bom.py Mon Aug 30 00:27:13 2021 +0200
@@ -54,15 +54,11 @@
domain=[
('category', '=', Eval('uom_category')),
], depends=['uom_category'])
- unit_digits = fields.Function(fields.Integer('Unit Digits'),
- 'on_change_with_unit_digits')
- quantity = fields.Float('Quantity', required=True,
+ quantity = fields.Float('Quantity', digits='uom', required=True,
domain=['OR',
('quantity', '>=', 0),
('quantity', '=', None),
- ],
- digits=(16, Eval('unit_digits', 2)),
- depends=['unit_digits'])
+ ])
@classmethod
def __setup__(cls):
@@ -88,7 +84,6 @@
category = self.product.default_uom.category
if not self.uom or self.uom.category != category:
self.uom = self.product.default_uom
- self.unit_digits = self.product.default_uom.digits
else:
self.uom = None
@@ -97,12 +92,6 @@
if self.product:
return self.product.default_uom.category.id
- @fields.depends('uom')
- def on_change_with_unit_digits(self, name=None):
- if self.uom:
- return self.uom.digits
- return 2
-
def get_rec_name(self, name):
return self.product.rec_name
@@ -149,10 +138,8 @@
__name__ = 'production.bom.tree'
product = fields.Many2One('product.product', 'Product')
- quantity = fields.Float('Quantity', digits=(16, Eval('unit_digits', 2)),
- depends=['unit_digits'])
+ quantity = fields.Float('Quantity', digits='uom')
uom = fields.Many2One('product.uom', 'Uom')
- unit_digits = fields.Integer('Unit Digits')
childs = fields.One2Many('production.bom.tree', None, 'Childs')
@classmethod
@@ -175,7 +162,6 @@
'quantity': quantity,
'uom': input_.uom.id,
'uom.rec_name': input_.uom.rec_name,
- 'unit_digits': input_.uom.digits,
'childs': childs,
}
result.append(values)
@@ -186,13 +172,11 @@
'Open BOM Tree'
__name__ = 'production.bom.tree.open.start'
- quantity = fields.Float('Quantity', required=True,
- digits=(16, Eval('unit_digits', 2)), depends=['unit_digits'])
+ quantity = fields.Float('Quantity', digits='uom', required=True)
uom = fields.Many2One('product.uom', 'Unit', required=True,
domain=[
('category', '=', Eval('category')),
], depends=['category'])
- unit_digits = fields.Integer('Unit Digits', readonly=True)
category = fields.Many2One('product.uom.category', 'Category',
readonly=True)
bom = fields.Many2One('product.product-production.bom',
@@ -201,12 +185,6 @@
], depends=['product'])
product = fields.Many2One('product.product', 'Product', readonly=True)
- @fields.depends('uom')
- def on_change_with_unit_digits(self):
- if self.uom:
- return self.uom.digits
- return 2
-
class OpenBOMTreeTree(ModelView):
'Open BOM Tree'
@@ -227,7 +205,6 @@
'quantity': quantity,
'uom': uom.id,
'uom.rec_name': uom.rec_name,
- 'unit_digits': uom.digits,
'childs': childs,
}]
return {
@@ -256,10 +233,8 @@
defaults['category'] = product.default_uom.category.id
if getattr(self.start, 'uom', None):
defaults['uom'] = self.start.uom.id
- defaults['unit_digits'] = self.start.unit_digits
else:
defaults['uom'] = product.default_uom.id
- defaults['unit_digits'] = product.default_uom.digits
defaults['product'] = product.id
if getattr(self.start, 'bom', None):
defaults['bom'] = self.start.bom.id
diff -r 21ca5ae2a3a1 -r cfadb18689ec production.py
--- a/production.py Sun Jul 04 17:54:47 2021 +0200
+++ b/production.py Mon Aug 30 00:27:13 2021 +0200
@@ -110,16 +110,13 @@
'invisible': ~Eval('product'),
},
depends=['uom_category'])
- unit_digits = fields.Function(fields.Integer('Unit Digits'),
- 'on_change_with_unit_digits')
- quantity = fields.Float('Quantity',
- digits=(16, Eval('unit_digits', 2)),
+ quantity = fields.Float(
+ "Quantity", digits='uom',
states={
'readonly': ~Eval('state').in_(['request', 'draft']),
'required': Bool(Eval('bom')),
'invisible': ~Eval('product'),
- },
- depends=['unit_digits'])
+ })
cost = fields.Function(fields.Numeric('Cost', digits=price_digits,
readonly=True), 'get_cost')
inputs = fields.One2Many('stock.move', 'production_input', 'Inputs',
@@ -418,11 +415,9 @@
category = self.product.default_uom.category
if not self.uom or self.uom.category != category:
self.uom = self.product.default_uom
- self.unit_digits = self.product.default_uom.digits
else:
self.bom = None
self.uom = None
- self.unit_digits = 2
self.explode_bom()
@fields.depends('product')
@@ -430,12 +425,6 @@
if self.product:
return self.product.default_uom.category.id
- @fields.depends('uom')
- def on_change_with_unit_digits(self, name=None):
- if self.uom:
- return self.uom.digits
- return 2
-
@fields.depends(methods=['explode_bom'])
def on_change_bom(self):
self.explode_bom()