diff --git a/configuration.py b/configuration.py index 7a6bb46a45..115dc401b1 100644 --- a/configuration.py +++ b/configuration.py @@ -1,6 +1,7 @@ # 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 ModelView, ModelSQL, ModelSingleton, fields +from trytond.pool import Pool from trytond.pyson import Eval, Bool __all__ = ['Configuration'] @@ -15,17 +16,27 @@ class Configuration(ModelSingleton, ModelSQL, ModelView): [Eval('context', {}).get('company', -1), None]), ('code', '=', 'sale.sale'), ], required=True)) - sale_invoice_method = fields.Property(fields.Selection([ - ('manual', 'Manual'), - ('order', 'On Order Processed'), - ('shipment', 'On Shipment Sent') - ], 'Sale Invoice Method', states={ + sale_invoice_method = fields.Property(fields.Selection( + 'get_sale_invoice_methods', 'Sale Invoice Method', + states={ 'required': Bool(Eval('context', {}).get('company')), })) - sale_shipment_method = fields.Property(fields.Selection([ - ('manual', 'Manual'), - ('order', 'On Order Processed'), - ('invoice', 'On Invoice Paid'), - ], 'Sale Shipment Method', states={ + sale_shipment_method = fields.Property(fields.Selection( + 'get_sale_shipment_methods', 'Sale Shipment Method', + states={ 'required': Bool(Eval('context', {}).get('company')), })) + + @classmethod + def get_sale_invoice_methods(cls): + pool = Pool() + Sale = pool.get('sale.sale') + field_name = 'invoice_method' + return Sale.fields_get([field_name])[field_name]['selection'] + + @classmethod + def get_sale_shipment_methods(cls): + pool = Pool() + Sale = pool.get('sale.sale') + field_name = 'shipment_method' + return Sale.fields_get([field_name])[field_name]['selection']