[FIX]Remove extra duplicate method,show valid error msg when invalid db to drop,...
authorVidhin Mehta <vme@tinyerp.com>
Tue, 23 Apr 2013 10:46:47 +0000 (16:16 +0530)
committerVidhin Mehta <vme@tinyerp.com>
Tue, 23 Apr 2013 10:46:47 +0000 (16:16 +0530)
lp bug: https://launchpad.net/bugs/1166856 fixed

bzr revid: vme@tinyerp.com-20130423104647-8xvrthahdzk42r08

addons/web/controllers/main.py
addons/web/static/src/js/chrome.js

index 4749875..0c94e9f 100644 (file)
@@ -768,20 +768,11 @@ class Database(openerpweb.Controller):
     @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))
         duplicate_attrs = (
             params['super_admin_pwd'],
             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):
index 02228a9..ee8e741 100644 (file)
@@ -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;