diff --git a/tryton/modules/sale_supply/__init__.py b/tryton/trytond/trytond/modules/sale_supply/__init__.py index f39eafa..da71465 100644 --- a/tryton/modules/sale_supply/__init__.py +++ b/tryton/modules/sale_supply/__init__.py @@ -16,6 +16,7 @@ def register(): Purchase, ShipmentIn, Template, + TemplateSupplyOnSale, Product, module='sale_supply', type_='model') Pool.register( diff --git a/tryton/modules/sale_supply/product.py b/tryton/trytond/trytond/modules/sale_supply/product.py index 580ec29..92f046f 100644 --- a/tryton/modules/sale_supply/product.py +++ b/tryton/modules/sale_supply/product.py @@ -1,20 +1,35 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from trytond.model import fields -from trytond.pool import PoolMeta +from trytond.model import fields, ModelSQL +from trytond.modules.company.model import (CompanyMultiValueMixin, + CompanyValueMixin) +from trytond.pool import Pool, PoolMeta from trytond.pyson import Eval -__all__ = ['Template', 'Product'] +__all__ = ['Template', 'Product', 'TemplateSupplyOnSale'] +supply_on_sale = fields.Boolean('Supply On Sale') -class Template(metaclass=PoolMeta): +class Template(CompanyMultiValueMixin, metaclass=PoolMeta): __name__ = 'product.template' - supply_on_sale = fields.Boolean('Supply On Sale', - states={ - 'invisible': ~Eval('purchasable') | ~Eval('salable'), - }, - depends=['purchasable', 'salable']) + supply_on_sale = fields.MultiValue(supply_on_sale) + supply_on_sales = fields.One2Many( + 'product.template.supply_on_sale', 'template', "Supply on sales") + + @classmethod + def multivalue_model(cls, field): + pool = Pool() + if field == 'supply_on_sale': + return pool.get('product.template.supply_on_sale') + return super(Template, cls).multivalue_model(field) + + +class TemplateSupplyOnSale(ModelSQL, CompanyValueMixin): + "Template Supply On Sale" + __name__ = 'product.template.supply_on_sale' + template = fields.Many2One('product.template', 'Product Template') + supply_on_sale = supply_on_sale class Product(metaclass=PoolMeta):