changeset ef88d61b9594 in trytond:default
details: https://hg.tryton.org/trytond?cmd=changeset;node=ef88d61b9594
description:
        Allow skipping user warnings globally

        issue7442
        review318871002
diffstat:

 CHANGELOG                           |  1 +
 doc/topics/user_errors_warnings.rst |  4 ++++
 trytond/res/user.py                 |  6 ++++--
 3 files changed, 9 insertions(+), 2 deletions(-)

diffs (35 lines):

diff -r 38abefa3d955 -r ef88d61b9594 CHANGELOG
--- a/CHANGELOG Wed Feb 03 23:26:07 2021 +0100
+++ b/CHANGELOG Fri Feb 05 00:21:10 2021 +0100
@@ -1,3 +1,4 @@
+* Allow skipping user warnings globally
 * Add validate option to trytond-admin
 * Refresh pool of other processes
 * Add clear_all method to Cache
diff -r 38abefa3d955 -r ef88d61b9594 doc/topics/user_errors_warnings.rst
--- a/doc/topics/user_errors_warnings.rst       Wed Feb 03 23:26:07 2021 +0100
+++ b/doc/topics/user_errors_warnings.rst       Fri Feb 05 00:21:10 2021 +0100
@@ -63,3 +63,7 @@
             warning_name = 'mywarning,%s' % self
             if Warning.check(warning_name):
                 raise UserWarning(warning_name, "Process cannot be canceled.")
+
+.. note::
+    If there is no user interaction the warnings can be skipped by setting the
+    ``_skip_warnings`` key of the context to ``True``.
diff -r 38abefa3d955 -r ef88d61b9594 trytond/res/user.py
--- a/trytond/res/user.py       Wed Feb 03 23:26:07 2021 +0100
+++ b/trytond/res/user.py       Fri Feb 05 00:21:10 2021 +0100
@@ -909,8 +909,10 @@
 
     @classmethod
     def check(cls, warning_name):
-        user = Transaction().user
-        if not user:
+        transaction = Transaction()
+        user = transaction.user
+        context = transaction.context
+        if not user or context.get('_skip_warnings'):
             return False
         warnings = cls.search([
             ('user', '=', user),

Reply via email to