From 2d07136d6fa2ccec0d5efa72788eb13df646bef8 Mon Sep 17 00:00:00 2001 From: Vidhin Mehta Date: Tue, 23 Apr 2013 16:16:47 +0530 Subject: [PATCH 1/3] [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; From d6024fa36b1406f3f0da27001e66007963bfa2e5 Mon Sep 17 00:00:00 2001 From: Vidhin Mehta Date: Thu, 16 May 2013 22:34:03 +0530 Subject: [PATCH 2/3] [FIX]add callback function to fetch_lang and in *drop db* which is not created,after drop it shows 'db succesfully droped'. bzr revid: vme@tinyerp.com-20130516170403-7oil1k6em99a1hmp --- addons/web/controllers/main.py | 12 ++++-------- addons/web/static/src/js/chrome.js | 2 +- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 0c94e9fe55a..6919def601a 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -780,17 +780,13 @@ 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: - 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}) + if req.session.proxy("db").drop(password, db):return True except xmlrpclib.Fault, e: if e.faultCode and e.faultCode.split(':')[0] == 'AccessDenied': - error.update({'error': e.faultCode}) - return error + return {'error': e.faultCode, 'title': 'Drop Database'} + return {'error': _('Could not drop database !'), 'title': _('Drop Database')} @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 ee8e741e6da..2ecf5328fd4 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_langs).done(fetch_db.always(self.do_render)); + return $.when(fetch_langs).done(function(){fetch_db.always(self.do_render)}); }, do_render: function() { var self = this; From 9182621004d7689da999ff1e00442c7358ed9307 Mon Sep 17 00:00:00 2001 From: Vidhin Mehta Date: Fri, 17 May 2013 16:31:50 +0530 Subject: [PATCH 3/3] [IMP] bzr revid: vme@tinyerp.com-20130517110150-c7wm67kfnp1p2lkd --- addons/web/static/src/js/chrome.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 2ecf5328fd4..35b57cb430b 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_langs).done(function(){fetch_db.always(self.do_render)}); + return $.when(fetch_db, fetch_langs).always(self.do_render); }, do_render: function() { var self = this;