From f12999c0b9bea44b9ef171cf534ca64ea478aead Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20=C3=89vrard?= Date: Fri, 8 Apr 2022 19:07:12 +0200 Subject: [PATCH] Send only the required fields when fetching a readonly view definition issue11134 review380081002 --- account.py | 33 +++++++++------------------------ common.py | 9 +++------ 2 files changed, 12 insertions(+), 30 deletions(-) diff --git a/account.py b/account.py index 5ceb4fc485..60d404ae13 100644 --- a/account.py +++ b/account.py @@ -57,8 +57,7 @@ class PaymentJournal(metaclass=PoolMeta): states={ 'required': Eval('process_method') == 'braintree', 'invisible': Eval('process_method') != 'braintree', - }, - depends=['currency', 'process_method']) + }) @classmethod def __setup__(cls): @@ -160,15 +159,13 @@ class Payment(CheckoutMixin, BraintreeCustomerMethodMixin, metaclass=PoolMeta): states={ 'invisible': ((Eval('process_method') != 'braintree') | ~Eval('braintree_transaction_id')), - }, - depends=['process_method']) + }) braintree_settle_payment = fields.Boolean( "Braintree Settle Payment", states={ 'invisible': Eval('process_method') != 'braintree', 'readonly': Eval('state') != 'draft', - }, - depends=['process_method', 'state']) + }) braintree_payment_settled = fields.Boolean( "Braintree Payment Settled", readonly=True) braintree_settlement_needed = fields.Function( @@ -180,8 +177,7 @@ class Payment(CheckoutMixin, BraintreeCustomerMethodMixin, metaclass=PoolMeta): states={ 'invisible': ((Eval('process_method') != 'braintree') | ~Eval('braintree_transaction_id')), - }, - depends=['process_method', 'braintree_transaction_id']) + }) braintree_dispute_reason = fields.Char( "Braintree Dispute Reason", readonly=True, @@ -204,26 +200,20 @@ class Payment(CheckoutMixin, BraintreeCustomerMethodMixin, metaclass=PoolMeta): def __setup__(cls): super().__setup__() cls.amount.states['readonly'] &= ~Eval('braintree_settlement_needed') - cls.amount.depends.append('braintree_settlement_needed') cls.braintree_customer.states['readonly'] = ( ~Eval('state').in_(['draft', 'approved']) | Eval('braintree_nonce')) - cls.braintree_customer.depends.extend(['state', 'braintree_nonce']) cls.braintree_customer_method.states['invisible'] |= ( Eval('braintree_nonce')) cls.braintree_customer_method.states['readonly'] = ( ~Eval('state').in_(['draft', 'approved'])) - cls.braintree_customer_method.depends.extend( - ['braintree_nonce', 'state']) cls.braintree_customer_method_selection.states['invisible'] |= ( Eval('braintree_nonce')) cls.braintree_customer_method_selection.states['readonly'] = ( ~Eval('state').in_(['draft', 'approved'])) - cls.braintree_customer_method_selection.depends.extend( - ['braintree_nonce', 'state']) cls._buttons.update({ 'braintree_checkout': { @@ -533,14 +523,12 @@ class PaymentBraintreeRefund(Workflow, ModelSQL, ModelView): ], states={ 'readonly': Eval('state') != 'draft', - }, - depends=['state']) + }) amount = Monetary( "Amount", currency='currency', digits='currency', required=True, states={ 'readonly': Eval('state') != 'draft', - }, - depends=['state']) + }) approved_by = employee_field( "Approved by", states=['approved', 'processing', 'succeeded', 'failed']) @@ -768,8 +756,7 @@ class PaymentBraintreeAccount(ModelSQL, ModelView): "Automatic Settlement", states={ 'invisible': Eval('environment') != 'sandbox', - }, - depends=['environment']) + }) @classmethod def __setup__(cls): @@ -891,15 +878,13 @@ class PaymentBraintreeCustomer( states={ 'readonly': ( Eval('braintree_customer_id') | Eval('braintree_nonce')), - }, - depends=['braintree_customer_id', 'braintree_nonce']) + }) braintree_account = fields.Many2One( 'account.payment.braintree.account', "Account", required=True, states={ 'readonly': ( Eval('braintree_customer_id') | Eval('braintree_nonce')), - }, - depends=['braintree_customer_id', 'braintree_nonce']) + }) braintree_customer_id = fields.Char( "Braintree Customer ID", states={ diff --git a/common.py b/common.py index 0e995d8268..8b3c0ae3cf 100644 --- a/common.py +++ b/common.py @@ -23,16 +23,14 @@ class BraintreeCustomerMethodMixin: ~Eval('party') | (Eval('party', -1) < 0) | ~Eval('braintree_account') | (Eval('braintree_account', -1) < 0)), - }, - depends=['party', 'process_method', 'braintree_account']) + }) braintree_customer_method = fields.Char( "Braintree Customer Method", states={ 'invisible': ( (Eval('process_method') != 'braintree') | ~Eval('braintree_customer')), - }, - depends=['process_method', 'braintree_customer']) + }) # Use Function field with selection # to avoid querying Braintree on validation braintree_customer_method_selection = fields.Function(fields.Selection( @@ -41,8 +39,7 @@ class BraintreeCustomerMethodMixin: 'invisible': ( (Eval('process_method') != 'braintree') | ~Eval('braintree_customer')), - }, - depends=['process_method', 'braintree_customer']), + }), 'get_braintree_customer_method', setter='set_braintree_customer_method')