[FIX] Update code for exception handling.

bzr revid: noz@tinyerp.com-20110726082002-r5j6cbzzz4lyitzj
This commit is contained in:
noz (OpenERP) 2011-07-26 13:50:02 +05:30
parent 01ae186bec
commit a5476e9749
2 changed files with 23 additions and 29 deletions

View File

@ -56,9 +56,6 @@ class Xml2Json:
# OpenERP Web base Controllers
#----------------------------------------------------------
class DatabaseCreationError(Exception): pass
class DatabaseCreationCrash(DatabaseCreationError): pass
class Database(openerpweb.Controller):
_cp_path = "/base/database"
@ -88,25 +85,9 @@ class Database(openerpweb.Controller):
ok = False
try:
return req.session.proxy("db").create(super_admin_pwd, dbname, demo_data, db_lang, admin_pwd)
# while True:
# try:
# progress, users = req.session.proxy('db').get_progress(super_admin_pwd, res)
# if progress == 1.0:
# for x in users:
# if x['login'] == 'admin':
# req.session.login(dbname, 'admin', x['password'])
# ok = True
# break
# else:
# time.sleep(1)
# except:
# raise DatabaseCreationCrash()
# except DatabaseCreationCrash:
# return {'error': "The server crashed during installation.\nWe suggest you to drop this database.",
# 'title': 'Error during database creation'}
except Exception, e:
if e.faultCode and e.faultCode.split(':')[0] == 'AccessDenied':
return {'error': 'Bad super admin password !', 'title': 'Create Database'}
return {'error': e.faultCode, 'title': 'Create Database'}
else:
return {'error': 'Could not create database !', 'title': 'Create Database'}
@ -119,7 +100,7 @@ class Database(openerpweb.Controller):
return req.session.proxy("db").drop(password, db)
except Exception, e:
if e.faultCode and e.faultCode.split(':')[0] == 'AccessDenied':
return {'error': 'Bad super admin password !', 'title': 'Drop Database'}
return {'error': e.faultCode, 'title': 'Drop Database'}
else:
return {'error': 'Could not drop database !', 'title': 'Drop Database'}
@ -135,7 +116,7 @@ class Database(openerpweb.Controller):
return base64.decodestring(res)
except Exception, e:
if e.faultCode and e.faultCode.split(':')[0] == 'AccessDenied':
return {'error': 'Bad super admin password !', 'title': 'Backup Database'}
return {'error': e.faultCode, 'title': 'Backup Database'}
else:
return {'error': 'Could not drop database !', 'title': 'Backup Database'}
@ -150,7 +131,7 @@ class Database(openerpweb.Controller):
return req.session.proxy("db").restore(password, db, data)
except Exception, e:
if e.faultCode and e.faultCode.split(':')[0] == 'AccessDenied':
return {'error': 'Bad super admin password !', 'title': 'Restore Database'}
return {'error': e.faultCode, 'title': 'Restore Database'}
else:
return {'error': 'Could not restore database !', 'title': 'Restore Database'}
@ -164,7 +145,7 @@ class Database(openerpweb.Controller):
return req.session.proxy("db").change_admin_password(old_password, new_password)
except Exception, e:
if e.faultCode and e.faultCode.split(':')[0] == 'AccessDenied':
return {'error': 'Bad super admin password !', 'title': 'Change Password'}
return {'error': e.faultCode, 'title': 'Change Password'}
else:
return {'error': 'Error, password not changed !', 'title': 'Change Password'}
@ -222,8 +203,8 @@ class Session(openerpweb.Controller):
try:
lang_list = lang_list + (req.session.proxy("db").list_lang() or [])
except Exception, e:
pass
return {"lang_list": lang_list}
return {"error": e, "title": "Languages"}
return {"lang_list": lang_list, "error": ""}
@openerpweb.jsonrequest
def modules(self, req):

View File

@ -709,8 +709,21 @@ openerp.base.Database = openerp.base.Controller.extend({
});
this.rpc("/base/session/get_lang_list", {}, function(result) {
self.lang_list = result.lang_list;
self.do_db_create();
if (!result.error) {
self.lang_list = result.lang_list;
self.do_db_create();
} else {
var db_error_dialog = _.uniqueId("db_error_dialog");
$('<div>', {id: db_error_dialog}).dialog({
modal: true,
title: result.title,
buttons: {
Ok: function() {
$(this).dialog("close");
}
}
}).html("<center style='padding-top: 15px; font-size: 15px'>" + result.error + "</center>");
}
});
this.$element.find('#db-create').click(this.do_db_create);
@ -766,7 +779,7 @@ openerp.base.Database = openerp.base.Controller.extend({
function(result) {
if (result && !result.error) {
} else if(result.error) {
} else if(result.error) {
var db_error_dialog = _.uniqueId("db_error_dialog");
$('<div>', {id: db_error_dialog}).dialog({
modal: true,