[MERGE] forward port of branch 7.0 up to revid 4067 chs@openerp.com-20131114142639...
[odoo/odoo.git] / openerp / exceptions.py
index 5057130..7789345 100644 (file)
@@ -25,16 +25,26 @@ This module defines a few exception types. Those types are understood by the
 RPC layer. Any other exception type bubbling until the RPC layer will be
 treated as a 'Server error'.
 
+If you consider introducing new exceptions, check out the test_exceptions addon.
 """
 
 class Warning(Exception):
     pass
 
+class RedirectWarning(Exception):
+    """ Warning with a possibility to redirect the user instead of simply
+    diplaying the warning message.
+
+    Should receive as parameters:
+      :param int action_id: id of the action where to perform the redirection
+      :param string button_text: text to put on the button that will trigger
+          the redirection.
+    """
+
 class AccessDenied(Exception):
     """ Login/password error. No message, no traceback. """
     def __init__(self):
-        import random
-        super(AccessDenied, self).__init__('Try again. %s out of %s characters are correct.' % (random.randint(0, 30), 30))
+        super(AccessDenied, self).__init__('Access denied.')
         self.traceback = ('', '', '')
 
 class AccessError(Exception):
@@ -53,6 +63,5 @@ class DeferredException(Exception):
     def __init__(self, msg, tb):
         self.message = msg
         self.traceback = tb
-        self.args = (msg, tb)
 
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: