changeset d44fa6c38b54 in modules/account_statement:default
details: 
https://hg.tryton.org/modules/account_statement?cmd=changeset&node=d44fa6c38b54
description:
        Send only the required fields when fetching a readonly view definition

        issue11134
        review380081002
diffstat:

 journal.py   |  10 +++-----
 statement.py |  71 ++++++++++++++++++++++-------------------------------------
 2 files changed, 31 insertions(+), 50 deletions(-)

diffs (267 lines):

diff -r 80be76e2cdbc -r d44fa6c38b54 journal.py
--- a/journal.py        Fri Apr 08 13:39:34 2022 +0200
+++ b/journal.py        Fri Apr 08 19:07:12 2022 +0200
@@ -19,7 +19,7 @@
         context={
             'company': Eval('company', -1),
             },
-        depends=['company'])
+        depends={'company'})
     currency = fields.Many2One('currency.currency', 'Currency', required=True)
     company = fields.Many2One('company.company', 'Company', required=True,
             select=True)
@@ -29,7 +29,7 @@
             context={
                 'company': Eval('company', -1),
                 },
-            depends=['company']),
+            depends={'company'}),
         'on_change_with_company_party')
     validation = fields.Selection([
             ('balance', 'Balance'),
@@ -41,16 +41,14 @@
         domain=[
             ('owners.id', '=', Eval('company_party', -1)),
             ('currency', '=', Eval('currency', -1)),
-            ],
-        depends=['company_party', 'currency'])
+            ])
     account = fields.Many2One('account.account', "Account", required=True,
         domain=[
             ('type', '!=', None),
             ('closed', '!=', True),
             ('company', '=', Eval('company')),
             ('party_required', '=', False),
-            ],
-        depends=['company'])
+            ])
 
     @classmethod
     def __setup__(cls):
diff -r 80be76e2cdbc -r d44fa6c38b54 statement.py
--- a/statement.py      Fri Apr 08 13:39:34 2022 +0200
+++ b/statement.py      Fri Apr 08 19:07:12 2022 +0200
@@ -53,30 +53,26 @@
     __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, depends=_depends)
+        states=_states)
     journal = fields.Many2One('account.statement.journal', 'Journal',
         required=True, select=True,
         domain=[
@@ -84,36 +80,33 @@
             ],
         states={
             'readonly': (Eval('state') != 'draft') | Eval('lines', [0]),
-            },
-        depends=['state', 'company'])
+            })
     currency = fields.Function(fields.Many2One(
             'currency.currency', "Currency"), 'on_change_with_currency')
     date = fields.Date('Date', required=True, select=True)
     start_balance = Monetary(
         "Start Balance", currency='currency', digits='currency',
-        states=_balance_states, depends=_balance_depends)
+        states=_balance_states)
     end_balance = Monetary(
         "End Balance", currency='currency', digits='currency',
-        states=_balance_states, depends=_balance_depends)
+        states=_balance_states)
     balance = fields.Function(Monetary(
             "Balance", currency='currency', digits='currency',
-            states=_balance_states, depends=_balance_depends),
+            states=_balance_states),
         'on_change_with_balance')
     total_amount = Monetary(
         "Total Amount", currency='currency', digits='currency',
-        states=_amount_states, depends=_amount_depends)
+        states=_amount_states)
     number_of_lines = fields.Integer('Number of Lines',
-        states=_number_states, depends=_number_depends)
+        states=_number_states)
     lines = fields.One2Many('account.statement.line', 'statement',
         'Lines', states={
             'readonly': (Eval('state') != 'draft') | ~Eval('journal'),
-            },
-        depends=['state', 'journal'])
+            })
     origins = fields.One2Many('account.statement.origin', 'statement',
         "Origins", states={
             'readonly': Eval('state') != 'draft',
-            },
-        depends=['state'])
+            })
     origin_file = fields.Binary(
         "Origin File", readonly=True,
         file_id=file_id, store_prefix=store_prefix)
@@ -129,10 +122,10 @@
     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
+    del _states
+    del _balance_states
+    del _amount_states
+    del _number_states
 
     @classmethod
     def __setup__(cls):
@@ -663,13 +656,12 @@
         return new_statements
 
 
-def origin_mixin(_states, _depends):
+def origin_mixin(_states):
     class Mixin:
         __slots__ = ()
         statement = fields.Many2One(
             'account.statement', "Statement",
-            required=True, ondelete='CASCADE', states=_states,
-            depends=_depends)
+            required=True, ondelete='CASCADE', states=_states)
         statement_state = fields.Function(
             fields.Selection('get_statement_states', "Statement State"),
             'on_change_with_statement_state')
@@ -678,10 +670,10 @@
             'on_change_with_company', searcher='search_company')
         number = fields.Char("Number")
         date = fields.Date(
-            "Date", required=True, states=_states, depends=_depends)
+            "Date", required=True, states=_states)
         amount = Monetary(
             "Amount", currency='currency', digits='currency', required=True,
-            states=_states, depends=_depends)
+            states=_states)
         currency = fields.Function(fields.Many2One(
                 'currency.currency', "Currency"), 'on_change_with_currency')
         party = fields.Many2One(
@@ -689,7 +681,7 @@
             context={
                 'company': Eval('company', -1),
                 },
-            depends=_depends + ['company'])
+            depends={'company'})
         account = fields.Many2One(
             'account.account', "Account",
             domain=[
@@ -700,9 +692,8 @@
             context={
                 'date': Eval('date'),
                 },
-            states=_states, depends=_depends + ['company', 'date'])
-        description = fields.Char(
-            "Description", states=_states, depends=_depends)
+            states=_states, depends={'date'})
+        description = fields.Char("Description", states=_states)
 
         @classmethod
         def __setup__(cls):
@@ -740,12 +731,9 @@
 _states = {
     'readonly': Eval('statement_state') != 'draft',
     }
-_depends = ['statement_state']
 
 
-class Line(
-        origin_mixin(_states, _depends), sequence_ordered(),
-        ModelSQL, ModelView):
+class Line(origin_mixin(_states), sequence_ordered(), ModelSQL, ModelView):
     'Account Statement Line'
     __name__ = 'account.statement.line'
 
@@ -771,8 +759,7 @@
                 ],
             },
         states=_states,
-        context={'with_payment': False},
-        depends=['company', 'party', 'account'] + _depends)
+        context={'with_payment': False})
     origin = fields.Many2One('account.statement.origin', 'Origin',
         readonly=True,
         states={
@@ -781,8 +768,7 @@
         domain=[
             ('statement', '=', Eval('statement', -1)),
             ('date', '=', Eval('date', None)),
-            ],
-        depends=['statement', 'date'])
+            ])
 
     @classmethod
     def __setup__(cls):
@@ -792,7 +778,6 @@
                     'readonly': (cls.date.states['readonly']
                         | Bool(Eval('origin', 0))),
                     })
-            cls.date.depends.append('origin')
         cls.account.required = True
         t = cls.__table__()
         cls._sql_constraints += [
@@ -1046,7 +1031,7 @@
             )
 
 
-del _states, _depends
+del _states
 
 
 class LineGroup(ModelSQL, ModelView):
@@ -1120,10 +1105,9 @@
 _states = {
     'readonly': (Eval('statement_state') != 'draft') | Eval('lines', []),
     }
-_depends = ['statement_state']
 
 
-class Origin(origin_mixin(_states, _depends), ModelSQL, ModelView):
+class Origin(origin_mixin(_states), ModelSQL, ModelView):
     "Account Statement Origin"
     __name__ = 'account.statement.origin'
     _rec_name = 'number'
@@ -1137,8 +1121,7 @@
         domain=[
             ('statement', '=', Eval('statement', -1)),
             ('date', '=', Eval('date', None)),
-            ],
-        depends=['statement', 'date', 'statement_id'])
+            ])
     statement_id = fields.Function(
         fields.Integer("Statement ID"), 'on_change_with_statement_id')
     pending_amount = fields.Function(Monetary(
@@ -1192,7 +1175,7 @@
         return super().copy(origins, default=default)
 
 
-del _states, _depends
+del _states
 
 
 class OriginInformation(DictSchemaMixin, ModelSQL, ModelView):

Reply via email to