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 12991542b5
commit c7d35b6a91
2 files changed
+17 -57

No files matched your search

+5 -17
View File
@@ -22,8 +22,7 @@ class StripeCustomerMethodMixin:
'readonly': (
~Eval('party') | (Eval('party', -1) < 0)
| ~Eval('stripe_account') | (Eval('stripe_account', -1) < 0)),
},
depends=['party', 'stripe_account', 'process_method'])
})
stripe_customer_source = fields.Char(
"Stripe Customer Source",
@@ -32,10 +31,7 @@ class StripeCustomerMethodMixin:
(Eval('process_method') != 'stripe')
| ~Eval('stripe_customer')
| Eval('stripe_customer_payment_method')),
},
depends=[
'process_method', 'stripe_customer',
'stripe_customer_payment_method'])
})
# Use Function field with selection to avoid to query Stripe
# to validate the value
stripe_customer_source_selection = fields.Function(fields.Selection(
@@ -45,10 +41,7 @@ class StripeCustomerMethodMixin:
(Eval('process_method') != 'stripe')
| ~Eval('stripe_customer')
| Eval('stripe_customer_payment_method')),
},
depends=[
'process_method', 'stripe_customer',
'stripe_customer_payment_method']),
}),
'get_stripe_customer_source', setter='set_stripe_customer_source')
stripe_customer_payment_method = fields.Char(
@@ -58,9 +51,7 @@ class StripeCustomerMethodMixin:
(Eval('process_method') != 'stripe')
| ~Eval('stripe_customer')
| Eval('stripe_customer_source')),
},
depends=[
'process_method', 'stripe_customer', 'stripe_customer_source'])
})
# Use Function field with selection to avoid to query Stripe
# to validate the value
stripe_customer_payment_method_selection = fields.Function(
@@ -72,10 +63,7 @@ class StripeCustomerMethodMixin:
(Eval('process_method') != 'stripe')
| ~Eval('stripe_customer')
| Eval('stripe_customer_source')),
},
depends=[
'process_method', 'stripe_customer',
'stripe_customer_source']),
}),
'get_stripe_customer_payment_method',
setter='set_stripe_customer_payment_method')
+12 -40
View File
@@ -49,8 +49,7 @@ class Journal(metaclass=PoolMeta):
states={
'required': Eval('process_method') == 'stripe',
'invisible': Eval('process_method') != 'stripe',
},
depends=['process_method'])
})
@classmethod
def __setup__(cls):
@@ -133,15 +132,13 @@ class Payment(StripeCustomerMethodMixin, CheckoutMixin, metaclass=PoolMeta):
states={
'invisible': ((Eval('process_method') != 'stripe')
| ~Eval('stripe_charge_id')),
},
depends=['process_method'])
})
stripe_capture = fields.Boolean(
"Stripe Capture",
states={
'invisible': Eval('process_method') != 'stripe',
'readonly': Eval('state') != 'draft',
},
depends=['process_method', 'state'])
})
stripe_captured = fields.Boolean(
"Stripe Captured", readonly=True)
stripe_capture_needed = fields.Function(
@@ -162,18 +159,14 @@ class Payment(StripeCustomerMethodMixin, CheckoutMixin, metaclass=PoolMeta):
states={
'invisible': ((Eval('process_method') != 'stripe')
| ~Eval('stripe_token')),
},
depends=['process_method', 'stripe_token'])
})
stripe_capturable = fields.Boolean(
"Stripe Capturable",
states={
'invisible': ((Eval('process_method') != 'stripe')
| ~Eval('stripe_payment_intent_id')
| ~Eval('stripe_capture_needed')),
},
depends=[
'process_method', 'stripe_payment_intent_id',
'stripe_capture_needed'])
})
stripe_idempotency_key = fields.Char(
"Stripe Idempotency Key", readonly=True)
stripe_error_message = fields.Char("Stripe Error Message", readonly=True,
@@ -205,9 +198,7 @@ class Payment(StripeCustomerMethodMixin, CheckoutMixin, metaclass=PoolMeta):
'invisible': ((Eval('process_method') != 'stripe')
| (~Eval('stripe_charge_id')
& ~Eval('stripe_payment_intent_id'))),
},
depends=[
'process_method', 'stripe_charge_id', 'stripe_payment_intent_id'])
})
@classmethod
def __setup__(cls):
@@ -217,43 +208,31 @@ class Payment(StripeCustomerMethodMixin, CheckoutMixin, metaclass=PoolMeta):
~Eval('state').in_(['draft', 'approved'])
| Eval('stripe_token')
| Eval('stripe_payment_intent_id'))
cls.stripe_customer.depends.extend(
['state', 'stripe_token', 'stripe_payment_intent_id'])
cls.stripe_customer_source.states['invisible'] |= (
Eval('stripe_token') | Eval('stripe_payment_intent_id'))
cls.stripe_customer_source.states['readonly'] = (
~Eval('state').in_(['draft', 'approved']))
cls.stripe_customer_source.depends.extend(
['stripe_token', 'stripe_payment_intent_id', 'state'])
cls.stripe_customer_source_selection.states['invisible'] |= (
Eval('stripe_token') | Eval('stripe_payment_intent_id'))
cls.stripe_customer_source_selection.states['readonly'] = (
~Eval('state').in_(['draft', 'approved']))
cls.stripe_customer_source_selection.depends.extend(
['stripe_token', 'stripe_payment_intent_id', 'state'])
cls.stripe_customer_payment_method.states['invisible'] |= (
Eval('stripe_token'))
cls.stripe_customer_payment_method.states['readonly'] = (
~Eval('state').in_(['draft', 'approved'])
| Eval('stripe_payment_intent_id'))
cls.stripe_customer_payment_method.depends.extend(
['stripe_token', 'state', 'stripe_payment_intent_id'])
cls.stripe_customer_payment_method_selection.states['invisible'] |= (
Eval('stripe_token'))
cls.stripe_customer_payment_method_selection.states['readonly'] = (
~Eval('state').in_(['draft', 'approved'])
| Eval('stripe_payment_intent_id'))
cls.stripe_customer_payment_method_selection.depends.extend(
['stripe_token', 'state', 'stripe_payment_intent_id'])
cls.amount.states['readonly'] &= ~Eval('stripe_capture_needed')
cls.amount.depends.append('stripe_capture_needed')
cls.stripe_amount.states.update(cls.amount.states)
cls.stripe_amount.depends.extend(cls.amount.depends)
cls._buttons.update({
'stripe_checkout': {
'invisible': (~Eval('state', 'draft').in_(
@@ -670,14 +649,12 @@ class Refund(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'])
})
stripe_amount = fields.Function(
fields.Integer("Stripe Amount"), 'get_stripe_amount')
reason = fields.Selection([
@@ -688,8 +665,7 @@ class Refund(Workflow, ModelSQL, ModelView):
], "Reason",
states={
'readonly': Eval('state') != 'draft',
},
depends=['state'])
})
approved_by = employee_field(
"Approved by",
states=['approved', 'processing', 'succeeded', 'failed'])
@@ -904,7 +880,6 @@ class Account(ModelSQL, ModelView):
states={
'invisible': ~Eval('webhook_identifier'),
},
depends=['webhook_identifier'],
help="The Stripe's signing secret of the webhook.")
last_event = fields.Char("Last Event", readonly=True)
setup_intent_delay = fields.TimeDelta(
@@ -1307,14 +1282,12 @@ class Customer(CheckoutMixin, DeactivableMixin, ModelSQL, ModelView):
party = fields.Many2One('party.party', "Party", required=True, select=True,
states={
'readonly': Eval('stripe_customer_id') | Eval('stripe_token'),
},
depends=['stripe_customer_id', 'stripe_token'])
})
stripe_account = fields.Many2One(
'account.payment.stripe.account', "Account", required=True,
states={
'readonly': Eval('stripe_customer_id') | Eval('stripe_token'),
},
depends=['stripe_customer_id', 'stripe_token'])
})
stripe_checkout_needed = fields.Function(
fields.Boolean("Stripe Checkout Needed"), 'get_stripe_checkout_needed')
stripe_customer_id = fields.Char(
@@ -1322,8 +1295,7 @@ class Customer(CheckoutMixin, DeactivableMixin, ModelSQL, ModelView):
states={
'readonly': ((Eval('stripe_customer_id') | Eval('stripe_token'))
& (Eval('id', -1) >= 0)),
},
depends=['stripe_token'])
})
stripe_token = fields.Char("Stripe Token", readonly=True)
stripe_setup_intent_id = fields.Char(
"Stripe SetupIntent ID", readonly=True)