From 2d07136d6fa2ccec0d5efa72788eb13df646bef8 Mon Sep 17 00:00:00 2001 From: Vidhin Mehta Date: Tue, 23 Apr 2013 16:16:47 +0530 Subject: [PATCH] [FIX]Remove extra duplicate method,show valid error msg when invalid db to drop, do_render method call after resolving fetch_langs and call always after fetch_db. lp bug: https://launchpad.net/bugs/1166856 fixed bzr revid: vme@tinyerp.com-20130423104647-8xvrthahdzk42r08 --- addons/web/controllers/main.py | 21 ++++++++------------- addons/web/static/src/js/chrome.js | 2 +- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 47498752c24..0c94e9fe55a 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -765,14 +765,6 @@ class Database(openerpweb.Controller): params['db_lang'], params['create_admin_pwd']) - @openerpweb.jsonrequest - def duplicate(self, req, fields): - params = dict(map(operator.itemgetter('name', 'value'), fields)) - return req.session.proxy("db").duplicate_database( - params['super_admin_pwd'], - params['db_original_name'], - params['db_name']) - @openerpweb.jsonrequest def duplicate(self, req, fields): params = dict(map(operator.itemgetter('name', 'value'), fields)) @@ -781,7 +773,6 @@ class Database(openerpweb.Controller): params['db_original_name'], params['db_name'], ) - return req.session.proxy("db").duplicate_database(*duplicate_attrs) @openerpweb.jsonrequest @@ -789,13 +780,17 @@ class Database(openerpweb.Controller): password, db = operator.itemgetter( 'drop_pwd', 'drop_db')( dict(map(operator.itemgetter('name', 'value'), fields))) - + error = {'error':_('Could not drop database !'), 'title': _('Drop Database') } try: - return req.session.proxy("db").drop(password, db) + proxy = req.session.proxy("db") + if db in proxy.list(True): + return proxy.drop(password, db) + else: + error.update({'error': "Database '%s' does not exist !" % db}) except xmlrpclib.Fault, e: if e.faultCode and e.faultCode.split(':')[0] == 'AccessDenied': - return {'error': e.faultCode, 'title': 'Drop Database'} - return {'error': _('Could not drop database !'), 'title': _('Drop Database')} + error.update({'error': e.faultCode}) + return error @openerpweb.httprequest def backup(self, req, backup_db, backup_pwd, token): diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 02228a96b06..ee8e741e6da 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -380,7 +380,7 @@ instance.web.DatabaseManager = instance.web.Widget.extend({ var fetch_langs = this.rpc("/web/session/get_lang_list", {}).done(function(result) { self.lang_list = result; }); - return $.when(fetch_db, fetch_langs).done(self.do_render); + return $.when(fetch_langs).done(fetch_db.always(self.do_render)); }, do_render: function() { var self = this;