changeset 3742bbb8982c in modules/account_payment_braintree:default
details: 
https://hg.tryton.org/modules/account_payment_braintree?cmd=changeset&node=3742bbb8982c
description:
        Add validate_fields to ModelStorage

        issue11303
        review386191002
diffstat:

 account.py |  25 ++++++++++++++-----------
 1 files changed, 14 insertions(+), 11 deletions(-)

diffs (36 lines):

diff -r 357459a2c283 -r 3742bbb8982c account.py
--- a/account.py        Mon Apr 11 20:41:56 2022 +0200
+++ b/account.py        Mon Apr 11 23:24:20 2022 +0200
@@ -263,18 +263,21 @@
             ]
 
     @classmethod
-    def validate(cls, payments):
-        super(Payment, cls).validate(payments)
-        for payment in payments:
-            payment.check_braintree_journal()
+    def validate_fields(cls, payments, field_names):
+        super().validate_fields(payments, field_names)
+        cls.check_braintree_journal(payments, field_names)
 
-    def check_braintree_journal(self):
-        if (self.kind != 'receivable'
-                and self.journal.process_method == 'braintree'):
-            raise PaymentValidationError(
-                gettext('account_payment_braintree.msg_braintree_receivable',
-                    journal=self.journal.rec_name,
-                    payment=self.rec_name))
+    @classmethod
+    def check_braintree_journal(cls, payments, field_names=None):
+        if field_names and not (field_names & {'kind', 'journal'}):
+            return
+        for payment in payments:
+            if (payment.kind != 'receivable'
+                    and payment.journal.process_method == 'braintree'):
+                raise PaymentValidationError(gettext(
+                        'account_payment_braintree.msg_braintree_receivable',
+                        journal=payment.journal.rec_name,
+                        payment=payment.rec_name))
 
     @classmethod
     def copy(cls, payments, default=None):

Reply via email to