changeset 852f9ab8ad91 in modules/account_statement:default
details: 
https://hg.tryton.org/modules/account_statement?cmd=changeset;node=852f9ab8ad91
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:

 statement.py |  87 ++++++++++++++++++++++++++++-------------------------------
 1 files changed, 41 insertions(+), 46 deletions(-)

diffs (137 lines):

diff -r c11a59822c11 -r 852f9ab8ad91 statement.py
--- a/statement.py      Sat Dec 28 18:16:28 2019 +0100
+++ b/statement.py      Sat Jan 25 20:18:49 2020 +0100
@@ -23,43 +23,6 @@
 from .exceptions import (
     StatementValidateError, StatementValidateWarning, StatementPostError)
 
-__all__ = ['Statement', 'Line', 'LineGroup',
-    'Origin', 'OriginInformation',
-    'ImportStatementStart', 'ImportStatement',
-    'ReconcileStatement',
-    'StatementReport']
-
-_STATES = {'readonly': Eval('state') != 'draft'}
-_DEPENDS = ['state']
-
-_BALANCE_STATES = _STATES.copy()
-_BALANCE_STATES.update({
-        'invisible': ~Eval('validation', '').in_(['balance']),
-        'required': Eval('validation', '').in_(['balance']),
-        })
-_BALANCE_DEPENDS = _DEPENDS + ['validation']
-
-_AMOUNT_STATES = _STATES.copy()
-_AMOUNT_STATES.update({
-        'invisible': ~Eval('validation', '').in_(['amount']),
-        'required': Eval('validation', '').in_(['amount']),
-        })
-_AMOUNT_DEPENDS = _DEPENDS + ['validation']
-
-_NUMBER_STATES = _STATES.copy()
-_NUMBER_STATES.update({
-        'invisible': ~Eval('validation', '').in_(['number_of_lines']),
-        'required': Eval('validation', '').in_(['number_of_lines']),
-        })
-_NUMBER_DEPENDS = _DEPENDS + ['validation']
-
-STATES = [
-    ('draft', 'Draft'),
-    ('validated', 'Validated'),
-    ('cancel', 'Canceled'),
-    ('posted', 'Posted'),
-    ]
-
 if config.getboolean('account_statement', 'filestore', default=False):
     file_id = 'origin_file_id'
     store_prefix = config.get(
@@ -85,13 +48,35 @@
 class Statement(Workflow, ModelSQL, ModelView):
     'Account Statement'
     __name__ = 'account.statement'
+
+    _states = {'readonly': Eval('state') != 'draft'}
+    _depends = ['state']
+    _balance_states = _states.copy()
+    _balance_states.update({
+            'invisible': ~Eval('validation', '').in_(['balance']),
+            'required': Eval('validation', '').in_(['balance']),
+            })
+    _balance_depends = _depends + ['validation']
+    _amount_states = _states.copy()
+    _amount_states.update({
+            'invisible': ~Eval('validation', '').in_(['amount']),
+            'required': Eval('validation', '').in_(['amount']),
+            })
+    _amount_depends = _depends + ['validation']
+    _number_states = _states.copy()
+    _number_states.update({
+            'invisible': ~Eval('validation', '').in_(['number_of_lines']),
+            'required': Eval('validation', '').in_(['number_of_lines']),
+            })
+    _number_depends = _depends + ['validation']
+
     name = fields.Char('Name', required=True)
     company = fields.Many2One('company.company', 'Company', required=True,
-        select=True, states=_STATES, domain=[
+        select=True, states=_states, domain=[
             ('id', If(Eval('context', {}).contains('company'), '=', '!='),
                 Eval('context', {}).get('company', -1)),
             ],
-        depends=_DEPENDS)
+        depends=_depends)
     journal = fields.Many2One('account.statement.journal', 'Journal',
         required=True, select=True,
         domain=[
@@ -106,21 +91,21 @@
     date = fields.Date('Date', required=True, select=True)
     start_balance = fields.Numeric('Start Balance',
         digits=(16, Eval('currency_digits', 2)),
-        states=_BALANCE_STATES, depends=_BALANCE_DEPENDS + ['currency_digits'])
+        states=_balance_states, depends=_balance_depends + ['currency_digits'])
     end_balance = fields.Numeric('End Balance',
         digits=(16, Eval('currency_digits', 2)),
-        states=_BALANCE_STATES, depends=_BALANCE_DEPENDS + ['currency_digits'])
+        states=_balance_states, depends=_balance_depends + ['currency_digits'])
     balance = fields.Function(
         fields.Numeric('Balance',
             digits=(16, Eval('currency_digits', 2)),
-            states=_BALANCE_STATES,
-            depends=_BALANCE_DEPENDS + ['currency_digits']),
+            states=_balance_states,
+            depends=_balance_depends + ['currency_digits']),
         'on_change_with_balance')
     total_amount = fields.Numeric('Total Amount',
         digits=(16, Eval('currency_digits', 2)),
-        states=_AMOUNT_STATES, depends=_AMOUNT_DEPENDS + ['currency_digits'])
+        states=_amount_states, depends=_amount_depends + ['currency_digits'])
     number_of_lines = fields.Integer('Number of Lines',
-        states=_NUMBER_STATES, depends=_NUMBER_DEPENDS)
+        states=_number_states, depends=_number_depends)
     lines = fields.One2Many('account.statement.line', 'statement',
         'Lines', states={
             'readonly': (Eval('state') != 'draft') | ~Eval('journal'),
@@ -135,12 +120,22 @@
         "Origin File", readonly=True,
         file_id=file_id, store_prefix=store_prefix)
     origin_file_id = fields.Char("Origin File ID", readonly=True)
-    state = fields.Selection(STATES, 'State', readonly=True, select=True)
+    state = fields.Selection([
+            ('draft', "Draft"),
+            ('validated', "Validated"),
+            ('cancel', "Canceled"),
+            ('posted', "Posted"),
+            ], "State", readonly=True, select=True)
     validation = fields.Function(fields.Char('Validation'),
         'on_change_with_validation')
     to_reconcile = fields.Function(
         fields.Boolean("To Reconcile"), 'get_to_reconcile')
 
+    del _states, _depends
+    del _balance_states, _balance_depends
+    del _amount_states, _amount_depends
+    del _number_states, _number_depends
+
     @classmethod
     def __setup__(cls):
         super(Statement, cls).__setup__()

Reply via email to