diff --git a/modules/account_payment_braintree/account.py b/modules/account_payment_braintree/account.py index 1728f9bffe..41ff4f9c28 100644 --- a/modules/account_payment_braintree/account.py +++ b/modules/account_payment_braintree/account.py @@ -203,7 +203,9 @@ class Payment(CheckoutMixin, BraintreeCustomerMethodMixin, metaclass=PoolMeta): braintree_error_message = fields.Text( "Braintree Error Message", readonly=True, states={ - 'invisible': ~Eval('braintree_error_message'), + 'invisible': ( + ~Eval('braintree_error_message') + | (Eval('state') == 'succeeded')), }) @classmethod @@ -568,7 +570,9 @@ class PaymentBraintreeRefund(Workflow, ModelSQL, ModelView): braintree_error_message = fields.Text( "Braintree Error Message", readonly=True, states={ - 'invisible': ~Eval('braintree_error_message'), + 'invisible': ( + ~Eval('braintree_error_message') + | (Eval('state') == 'succeeded')), }) currency = fields.Function(fields.Many2One( diff --git a/modules/account_payment_stripe/payment.py b/modules/account_payment_stripe/payment.py index b900681237..d5346c90d0 100644 --- a/modules/account_payment_stripe/payment.py +++ b/modules/account_payment_stripe/payment.py @@ -176,15 +176,21 @@ class Payment(StripeCustomerMethodMixin, CheckoutMixin, metaclass=PoolMeta): "Stripe Idempotency Key", readonly=True, strip=False) stripe_error_message = fields.Char("Stripe Error Message", readonly=True, states={ - 'invisible': ~Eval('stripe_error_message'), + 'invisible': ( + ~Eval('stripe_error_message') + | (Eval('state') == 'succeeded')), }) stripe_error_code = fields.Char("Stripe Error Code", readonly=True, states={ - 'invisible': ~Eval('stripe_error_code'), + 'invisible': ( + ~Eval('stripe_error_code') + | (Eval('state') == 'succeeded')), }) stripe_error_param = fields.Char("Stripe Error Param", readonly=True, states={ - 'invisible': ~Eval('stripe_error_param'), + 'invisible': ( + ~Eval('stripe_error_param') + | (Eval('state') == 'succeeded')), }) stripe_dispute_reason = fields.Char("Stripe Dispute Reason", readonly=True, states={ @@ -748,15 +754,21 @@ class Refund(Workflow, ModelSQL, ModelView): "Stripe Refund ID", readonly=True, strip=False) stripe_error_message = fields.Char("Stripe Error Message", readonly=True, states={ - 'invisible': ~Eval('stripe_error_message'), + 'invisible': ( + ~Eval('stripe_error_message') + | (Eval('state') == 'succeeded')), }) stripe_error_code = fields.Char("Stripe Error Code", readonly=True, states={ - 'invisible': ~Eval('stripe_error_code'), + 'invisible': ( + ~Eval('stripe_error_code') + | (Eval('state') == 'succeeded')), }) stripe_error_param = fields.Char("Stripe Error Param", readonly=True, states={ - 'invisible': ~Eval('stripe_error_param'), + 'invisible': ( + ~Eval('stripe_error_param') + | (Eval('state') == 'succeeded')), }) currency = fields.Function( @@ -1419,15 +1431,21 @@ class Customer(CheckoutMixin, DeactivableMixin, ModelSQL, ModelView): "Stripe SetupIntent ID", readonly=True, strip=False) stripe_error_message = fields.Char("Stripe Error Message", readonly=True, states={ - 'invisible': ~Eval('stripe_error_message'), + 'invisible': ( + ~Eval('stripe_error_message') + | Eval('stripe_customer_id')), }) stripe_error_code = fields.Char("Stripe Error Code", readonly=True, states={ - 'invisible': ~Eval('stripe_error_code'), + 'invisible': ( + ~Eval('stripe_error_code') + | Eval('stripe_customer_id')), }) stripe_error_param = fields.Char("Stripe Error Param", readonly=True, states={ - 'invisible': ~Eval('stripe_error_param'), + 'invisible': ( + ~Eval('stripe_error_param') + | Eval('stripe_customer_id')), }) identical_customers = fields.Many2Many(