changeset 6e928c04e573 in modules/purchase_requisition:default
details:
https://hg.tryton.org/modules/purchase_requisition?cmd=changeset;node=6e928c04e573
description:
Set a category domain on requisition line unit
The unit is used to create a purchase request which has such
constraint. But as
they are created by the process method which is queued, the user does
not get
any error message.
issue8610
review267971003
diffstat:
purchase.py | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
diffs (38 lines):
diff -r 00f8bcb08425 -r 6e928c04e573 purchase.py
--- a/purchase.py Fri Sep 20 11:47:15 2019 +0200
+++ b/purchase.py Sat Sep 28 23:13:08 2019 +0200
@@ -433,6 +433,9 @@
('purchasable', '=', True),
],
states=_states, depends=_depends)
+ product_uom_category = fields.Function(
+ fields.Many2One('product.uom.category', "Product UOM Category"),
+ 'on_change_with_product_uom_category')
description = fields.Text("Description", states=_states, depends=_depends)
quantity = fields.Float(
'Quantity', digits=(16, Eval('unit_digits', 2)), required=True,
@@ -461,6 +464,24 @@
del _states
+ @classmethod
+ def __setup__(cls):
+ super().__setup__()
+ unit_categories = cls._unit_categories()
+ cls.unit.domain = [
+ ('category', 'in', [Eval(c) for c in unit_categories]),
+ ]
+ cls.unit.depends.extend(unit_categories)
+
+ @classmethod
+ def _unit_categories(cls):
+ return ['product_uom_category']
+
+ @fields.depends('product')
+ def on_change_with_product_uom_category(self, name=None):
+ if self.product:
+ return self.product.default_uom_category.id
+
@fields.depends('requisition', '_parent_requisition.state')
def on_change_with_purchase_requisition_state(self, name=None):
if self.requisition: