Adapt patch "sale_supply_supply_on_sale_multivalue.diff" to use selection field instead of boolean.

Since 72b2fb3ab3
Task #048598
This commit is contained in:
Juanjo Garcia 2023-03-22 09:43:09 +01:00
parent ac5dd58225
commit 539e88c6f5
1 changed files with 30 additions and 17 deletions

View File

@ -14,30 +14,33 @@ diff --git a/product.py b/product.py
index 08537ed..34ccc24 100644 index 08537ed..34ccc24 100644
--- a/tryton/modules/sale_supply/product.py --- a/tryton/modules/sale_supply/product.py
+++ b/tryton/modules/sale_supply/product.py +++ b/tryton/modules/sale_supply/product.py
@@ -1,17 +1,35 @@ @@ -4,23 +4,34 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of from sql import Literal
# this repository contains the full copyright notices and license terms.
from trytond.i18n import gettext
-from trytond.model import fields -from trytond.model import fields
-from trytond.pool import PoolMeta
+from trytond.model import fields, ModelSQL +from trytond.model import fields, ModelSQL
+from trytond.pool import Pool, PoolMeta from trytond.pool import Pool, PoolMeta
+from trytond.modules.company.model import (CompanyMultiValueMixin, +from trytond.modules.company.model import (CompanyMultiValueMixin,
+ CompanyValueMixin) + CompanyValueMixin)
from trytond.pyson import Eval from trytond.pyson import Eval
from trytond.transaction import Transaction
-class Template(metaclass=PoolMeta): -class Template(metaclass=PoolMeta):
+class Template(CompanyMultiValueMixin, metaclass=PoolMeta): +class Template(CompanyMultiValueMixin, metaclass=PoolMeta):
__name__ = 'product.template' __name__ = 'product.template'
- supply_on_sale = fields.Boolean('Supply On Sale', - supply_on_sale = fields.Selection([
- states={ + supply_on_sale = fields.MultiValue(fields.Selection([
- 'invisible': ~Eval('purchasable') | ~Eval('salable'), (None, "Never"),
('stock_first', "Stock First"),
('always', "Always"),
], "Supply On Sale",
states={
'invisible': ~Eval('purchasable') | ~Eval('salable'),
- }) - })
+ supply_on_sale = fields.MultiValue(fields.Boolean('Supply On Sale', + }))
+ states={
+ 'invisible': ~Eval('purchasable') | ~Eval('salable'),
+ }, depends=['purchasable', 'salable']))
+ supply_on_sales = fields.One2Many( + supply_on_sales = fields.One2Many(
+ 'product.template.supply_on_sale', 'template', "Supply on sales") + 'product.template.supply_on_sale', 'template', "Supply on sales")
+ +
@ -47,13 +50,23 @@ index 08537ed..34ccc24 100644
+ if field == 'supply_on_sale': + if field == 'supply_on_sale':
+ return pool.get('product.template.supply_on_sale') + return pool.get('product.template.supply_on_sale')
+ return super(Template, cls).multivalue_model(field) + return super(Template, cls).multivalue_model(field)
+
+ @classmethod
def __resgister__(cls, module):
@@ -71,5 +82,16 @@ class Template(metaclass=PoolMeta):
order_points=names))
+class TemplateSupplyOnSale(ModelSQL, CompanyValueMixin): +class TemplateSupplyOnSale(ModelSQL, CompanyValueMixin):
+ "Template Supply On Sale" + "Template Supply On Sale"
+ __name__ = 'product.template.supply_on_sale' + __name__ = 'product.template.supply_on_sale'
+ template = fields.Many2One('product.template', 'Product Template') + template = fields.Many2One('product.template', 'Product Template')
+ supply_on_sale = fields.Boolean('Supply On Sale') + supply_on_sale = fields.Selection([
+ (None, "Never"),
+ ('stock_first', "Stock First"),
+ ('always', "Always"),
+ ], "Supply On Sale")
+
+
class Product(metaclass=PoolMeta): class Product(metaclass=PoolMeta):
__name__ = 'product.product'