[FIX] Handled exception when dropping a database.
bzr revid: noz@tinyerp.com-20110704131838-lf4x944os5ynuy0u
This commit is contained in:
@@ -12,6 +12,7 @@ import openerpweb.ast
|
||||
import openerpweb.nonliterals
|
||||
|
||||
import cherrypy
|
||||
import xmlrpclib
|
||||
|
||||
# Should move to openerpweb.Xml2Json
|
||||
class Xml2Json:
|
||||
@@ -126,12 +127,7 @@ class Session(openerpweb.Controller):
|
||||
if flag == 'drop':
|
||||
db = kw.get('db')
|
||||
password = kw.get('password')
|
||||
try:
|
||||
res = req.session.proxy("db").drop(password, db)
|
||||
if res:
|
||||
return res
|
||||
except TypeError:
|
||||
return {'error': e}
|
||||
return req.session.proxy("db").drop(password, db)
|
||||
|
||||
@openerpweb.jsonrequest
|
||||
def modules(self, req):
|
||||
|
||||
@@ -880,8 +880,8 @@ openerp.base.CrashManager = openerp.base.Dialog.extend({
|
||||
this.dialog_title = "OpenERP Error";
|
||||
this.template = 'DialogTraceback';
|
||||
this.open({
|
||||
width: '80%',
|
||||
height: '80%'
|
||||
width: 'auto',
|
||||
height: 'auto'
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -946,8 +946,10 @@ openerp.base.Database = openerp.base.Controller.extend({
|
||||
if (confirm("Do you really want to delete the database: " + db + " ?")) {
|
||||
self.rpc("/base/session/db_operation", {'flag': 'drop', 'db': db, 'password': password},
|
||||
function(result) {
|
||||
self.$option_id.find("select[name=drop_db] :selected").remove();
|
||||
self.notification.notify("Dropping database", "The database '" + db + "' has been dropped");
|
||||
if (!result.error) {
|
||||
self.$option_id.find("select[name=drop_db] :selected").remove();
|
||||
self.notification.notify("Dropping database", "The database '" + db + "' has been dropped");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -317,16 +317,27 @@ class JsonRequest(object):
|
||||
}
|
||||
}
|
||||
except xmlrpclib.Fault, e:
|
||||
error = {
|
||||
'code': 200,
|
||||
'message': "OpenERP Server Error",
|
||||
'data': {
|
||||
'type': 'server_exception',
|
||||
'fault_code': e.faultCode,
|
||||
'debug': "Client %s\nServer %s" % (
|
||||
"".join(traceback.format_exception("", None, sys.exc_traceback)), e.faultString)
|
||||
if e.faultCode and e.faultCode.split(':')[0] == 'AccessDenied':
|
||||
message, string = e.faultCode.split(':')
|
||||
error = {
|
||||
'code': 200,
|
||||
'message': message,
|
||||
'data': {
|
||||
'type': 'server_exception',
|
||||
'debug': string
|
||||
}
|
||||
}
|
||||
else:
|
||||
error = {
|
||||
'code': 200,
|
||||
'message': "OpenERP Server Error",
|
||||
'data': {
|
||||
'type': 'server_exception',
|
||||
'fault_code': e.faultCode,
|
||||
'debug': "Client %s\nServer %s" % (
|
||||
"".join(traceback.format_exception("", None, sys.exc_traceback)), e.faultString)
|
||||
}
|
||||
}
|
||||
}
|
||||
except Exception:
|
||||
cherrypy.log("An error occured while handling a json request",
|
||||
severity=logging.ERROR, traceback=True)
|
||||
|
||||
Reference in New Issue
Block a user