Send only the required fields when fetching a readonly view definition

issue11134
review380081002
This commit is contained in:
Nicolas Évrard committed 2022-04-08 19:07:12 +02:00
1 parent e22a56d555
commit f12999c0b9
2 files changed
+12 -30

No files matched your search

+9 -24
View File
@@ -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={
+3 -6
View File
@@ -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')