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):