Remove global variables used for field definitions

They give the false idea that they can be extended or reused which is not the
case.

issue8967
review252851012
This commit is contained in:
Cédric Krier committed 2020-01-25 20:18:49 +01:00
1 parent fecfe235f5
commit 091e3f5f7c
1 file changed
+31 -31
+31 -31
View File
@@ -26,27 +26,6 @@ from trytond.modules.product import price_digits
from .exceptions import PurchaseQuotationError, PartyLocationError
__all__ = ['Purchase', 'PurchaseIgnoredInvoice',
'PurchaseRecreatedInvoice', 'PurchaseLine', 'PurchaseLineTax',
'PurchaseLineIgnoredMove', 'PurchaseLineRecreatedMove', 'PurchaseReport',
'OpenSupplier', 'HandleShipmentExceptionAsk', 'HandleShipmentException',
'HandleInvoiceExceptionAsk', 'HandleInvoiceException', 'ModifyHeader',
'get_shipments_returns', 'search_shipments_returns']
_STATES = {
'readonly': Eval('state') != 'draft',
}
_DEPENDS = ['state']
_ZERO = Decimal(0)
STATES = [
('draft', 'Draft'),
('quotation', 'Quotation'),
('confirmed', 'Confirmed'),
('processing', 'Processing'),
('done', 'Done'),
('cancel', 'Canceled'),
]
def get_shipments_returns(model_name):
"Computes the returns or shipments"
@@ -82,6 +61,12 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
'Purchase'
__name__ = 'purchase.purchase'
_rec_name = 'number'
_states = {
'readonly': Eval('state') != 'draft',
}
_depends = ['state']
company = fields.Many2One('company.company', 'Company', required=True,
states={
'readonly': (Eval('state') != 'draft') | Eval('lines', [0]),
@@ -93,9 +78,16 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
depends=['state'], select=True)
number = fields.Char('Number', size=None, readonly=True, select=True)
reference = fields.Char('Reference', select=True)
description = fields.Char('Description', size=None, states=_STATES,
depends=_DEPENDS)
state = fields.Selection(STATES, 'State', readonly=True, required=True)
description = fields.Char('Description', size=None, states=_states,
depends=_depends)
state = fields.Selection([
('draft', "Draft"),
('quotation', "Quotation"),
('confirmed', "Confirmed"),
('processing', "Processing"),
('done', "Done"),
('cancel', "Canceled"),
], "State", readonly=True, required=True)
purchase_date = fields.Date('Purchase Date',
states={
'readonly': ~Eval('state').in_(['draft', 'quotation']),
@@ -123,8 +115,8 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
},
depends=['state', 'party'])
warehouse = fields.Many2One('stock.location', 'Warehouse',
domain=[('type', '=', 'warehouse')], states=_STATES,
depends=_DEPENDS)
domain=[('type', '=', 'warehouse')], states=_states,
depends=_depends)
currency = fields.Many2One('currency.currency', 'Currency', required=True,
states={
'readonly': ((Eval('state') != 'draft')
@@ -134,7 +126,7 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
currency_digits = fields.Function(fields.Integer('Currency Digits'),
'on_change_with_currency_digits')
lines = fields.One2Many('purchase.line', 'purchase', 'Lines',
states=_STATES, depends=_DEPENDS)
states=_states, depends=_depends)
comment = fields.Text('Comment')
untaxed_amount = fields.Function(fields.Numeric('Untaxed',
digits=(16, Eval('currency_digits', 2)),
@@ -158,8 +150,8 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
('manual', 'Manual'),
('order', 'Based On Order'),
('shipment', 'Based On Shipment'),
], 'Invoice Method', required=True, states=_STATES,
depends=_DEPENDS)
], 'Invoice Method', required=True, states=_states,
depends=_depends)
invoice_state = fields.Selection([
('none', 'None'),
('waiting', 'Waiting'),
@@ -197,6 +189,8 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
'get_shipment_returns', searcher='search_shipment_returns')
moves = fields.One2Many('stock.move', 'purchase', 'Moves', readonly=True)
del _states, _depends
@classmethod
def __setup__(cls):
super(Purchase, cls).__setup__()
@@ -490,7 +484,7 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
else:
untaxed_amount[purchase.id] = sum(
(line.amount for line in purchase.lines
if line.type == 'line'), _ZERO)
if line.type == 'line'), Decimal(0))
if compute_taxes:
tax_amount[purchase.id] = purchase.get_tax_amount()
total_amount[purchase.id] = (
@@ -1078,7 +1072,7 @@ class PurchaseLine(sequence_ordered(), ModelSQL, ModelView):
},
depends=['type', 'delivery_date_edit', 'purchase_state'])
purchase_state = fields.Function(
fields.Selection(STATES, 'Purchase State'),
fields.Selection('get_purchase_states', 'Purchase State'),
'on_change_with_purchase_state')
@classmethod
@@ -1350,6 +1344,12 @@ class PurchaseLine(sequence_ordered(), ModelSQL, ModelView):
delivery_date = None
return delivery_date
@classmethod
def get_purchase_states(cls):
pool = Pool()
Purchase = pool.get('purchase.purchase')
return Purchase.fields_get(['state'])['state']['selection']
@fields.depends('purchase', '_parent_purchase.state')
def on_change_with_purchase_state(self, name=None):
if self.purchase: