changeset d191b8fe227b in modules/purchase:default
details: https://hg.tryton.org/modules/purchase?cmd=changeset;node=d191b8fe227b
description:
        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
diffstat:

 purchase.py |  62 ++++++++++++++++++++++++++++++------------------------------
 1 files changed, 31 insertions(+), 31 deletions(-)

diffs (135 lines):

diff -r 3994ba7bd7f8 -r d191b8fe227b purchase.py
--- a/purchase.py       Mon Jan 13 23:54:20 2020 +0100
+++ b/purchase.py       Sat Jan 25 20:18:49 2020 +0100
@@ -26,27 +26,6 @@
 
 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 @@
     '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 @@
         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 @@
             },
         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 @@
     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 @@
             ('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 @@
         '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 @@
             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 @@
             },
         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 @@
             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:

Reply via email to