changeset a947e71b9a4c in tryton:default
details: https://hg.tryton.org/tryton?cmd=changeset;node=a947e71b9a4c
description:
        Show exception type and add title to detail of error dialog

        issue8226
        review249151002
diffstat:

 tryton/client.py        |   2 +-
 tryton/common/common.py |  13 +++++++------
 tryton/gui/main.py      |   2 +-
 tryton/jsonrpc.py       |   7 ++-----
 4 files changed, 11 insertions(+), 13 deletions(-)

diffs (80 lines):

diff -r 7e60b661c09f -r a947e71b9a4c tryton/client.py
--- a/tryton/client.py  Wed Mar 27 00:41:18 2019 +0100
+++ b/tryton/client.py  Wed Mar 27 23:24:09 2019 +0100
@@ -57,7 +57,7 @@
             screen, provider, Gtk.STYLE_PROVIDER_PRIORITY_USER)
 
     def excepthook(type_, value, traceback_):
-        common.error(str(value), ''.join(traceback.format_tb(traceback_)))
+        common.error(value, ''.join(traceback.format_tb(traceback_)))
     sys.excepthook = excepthook
 
     CONFIG.parse()
diff -r 7e60b661c09f -r a947e71b9a4c tryton/common/common.py
--- a/tryton/common/common.py   Wed Mar 27 00:41:18 2019 +0100
+++ b/tryton/common/common.py   Wed Mar 27 23:24:09 2019 +0100
@@ -746,7 +746,7 @@
         dialog.set_markup(
             '<b>%s</b>' % GLib.markup_escape_text(_('Application Error')))
         dialog.format_secondary_markup(
-            '<b>%s</b>' % _('Error: %s') % GLib.markup_escape_text(title))
+            '<b>%s</b>' % GLib.markup_escape_text(title))
 
         scrolledwindow = Gtk.ScrolledWindow()
         scrolledwindow.set_policy(
@@ -777,10 +777,11 @@
         return dialog
 
     def __call__(self, title, details):
-        if title == details:
-            title = ''
+        if isinstance(title, Exception):
+            title = "%s: %s" % (title.__class__.__name__, title)
+        details += '\n' + title
         log = logging.getLogger(__name__)
-        log.error(details + '\n' + title)
+        log.error(details)
         return super(ErrorDialog, self).__call__(title, details)
 
 
@@ -885,9 +886,9 @@
                 if args:
                     return rpc_execute(*args)
         else:
-            error(exception.faultCode, exception.faultString)
+            error(exception, exception.faultString)
     else:
-        error(str(exception), traceback.format_exc())
+        error(exception, traceback.format_exc())
     raise RPCException(exception)
 
 
diff -r 7e60b661c09f -r a947e71b9a4c tryton/gui/main.py
--- a/tryton/gui/main.py        Wed Mar 27 00:41:18 2019 +0100
+++ b/tryton/gui/main.py        Wed Mar 27 23:24:09 2019 +0100
@@ -280,7 +280,7 @@
         except Exception as exception:
             if (not isinstance(exception, TrytonError)
                     or exception.faultCode != 'QueryCanceled'):
-                common.error(str(exception), traceback.format_exc())
+                common.error(exception, traceback.format_exc())
             return self.quit()
         self.get_preferences()
 
diff -r 7e60b661c09f -r a947e71b9a4c tryton/jsonrpc.py
--- a/tryton/jsonrpc.py Wed Mar 27 00:41:18 2019 +0100
+++ b/tryton/jsonrpc.py Wed Mar 27 23:24:09 2019 +0100
@@ -32,11 +32,8 @@
         super(Fault, self).__init__(faultCode, faultString, **extra)
         self.args = faultString
 
-    def __repr__(self):
-        return (
-            "<Fault %s: %s>" %
-            (repr(self.faultCode), repr(self.faultString))
-            )
+    def __str__(self):
+        return str(self.faultCode)
 
 
 class ProtocolError(xmlrpc.client.ProtocolError):

Reply via email to