Merge lp:~openerp-dev/openerp-web/7.0-bug-1166856-vme into lp:openerp-web/7.0

Proposed by Vidhin Mehta (OpenERP)
Status: Merged
Merged at revision: 3936
Proposed branch: lp:~openerp-dev/openerp-web/7.0-bug-1166856-vme
Merge into: lp:openerp-web/7.0
Diff against target: 49 lines (+3/-12)
2 files modified
addons/web/controllers/main.py (+2/-11)
addons/web/static/src/js/chrome.js (+1/-1)
To merge this branch: bzr merge lp:~openerp-dev/openerp-web/7.0-bug-1166856-vme
Reviewer Review Type Date Requested Status
Vidhin Mehta (OpenERP) (community) Needs Resubmitting
Xavier (Open ERP) (community) Needs Fixing
Review via email: mp+160345@code.launchpad.net

Description of the change

Remove extra duplicate method, show error msg when invalid db to drop, do_render method call always after fetch_db.

To post a comment you must log in.
Revision history for this message
Xavier (Open ERP) (xmo-deactivatedaccount) wrote :

* The change to chrome.js is complete nonsense, if fetch_db is faster than fetch_langs, do_render() will execute before fetch_langs has returned.
* I fail to see the value in doing an extra rpc request just to check if the DB exists, .drop() already returns False if the db didn't exist, so can just use that.

review: Needs Fixing
3908. By Vidhin Mehta (OpenERP)

[FIX]add callback function to fetch_lang and in *drop db* which is not created,after drop it shows 'db succesfully droped'.

Revision history for this message
Vidhin Mehta (OpenERP) (vme-openerp) wrote :

Add callback function to fetch_lang. In *drop db* functionality, database with wrong name also shows "The database has been dropped."

review: Needs Resubmitting
Revision history for this message
Xavier (Open ERP) (xmo-deactivatedaccount) wrote :

> Add callback function to fetch_lang.

Why don't you just use the original code and replace `done` by `always`? Your change makes the calls sequential (it'll wait until the langs are fetched before fetching the db list) even though there's no actual dependency between them.

review: Needs Fixing
Revision history for this message
Vidhin Mehta (OpenERP) (vme-openerp) wrote :

According to original code fetch_db must resolve to call *do_render* method, which is wrong when we configue server with "--no-database-list".So,It should not depended on fetch_db object to resolve.

Don't know about behaviour of fetch_langs (resolve or not), so i have kept as it is.

review: Needs Resubmitting
3909. By Vidhin Mehta (OpenERP)

[IMP]

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'addons/web/controllers/main.py'
2--- addons/web/controllers/main.py 2013-05-16 13:22:00 +0000
3+++ addons/web/controllers/main.py 2013-05-17 11:07:24 +0000
4@@ -772,20 +772,11 @@
5 @openerpweb.jsonrequest
6 def duplicate(self, req, fields):
7 params = dict(map(operator.itemgetter('name', 'value'), fields))
8- return req.session.proxy("db").duplicate_database(
9- params['super_admin_pwd'],
10- params['db_original_name'],
11- params['db_name'])
12-
13- @openerpweb.jsonrequest
14- def duplicate(self, req, fields):
15- params = dict(map(operator.itemgetter('name', 'value'), fields))
16 duplicate_attrs = (
17 params['super_admin_pwd'],
18 params['db_original_name'],
19 params['db_name'],
20 )
21-
22 return req.session.proxy("db").duplicate_database(*duplicate_attrs)
23
24 @openerpweb.jsonrequest
25@@ -793,9 +784,9 @@
26 password, db = operator.itemgetter(
27 'drop_pwd', 'drop_db')(
28 dict(map(operator.itemgetter('name', 'value'), fields)))
29-
30+
31 try:
32- return req.session.proxy("db").drop(password, db)
33+ if req.session.proxy("db").drop(password, db):return True
34 except xmlrpclib.Fault, e:
35 if e.faultCode and e.faultCode.split(':')[0] == 'AccessDenied':
36 return {'error': e.faultCode, 'title': 'Drop Database'}
37
38=== modified file 'addons/web/static/src/js/chrome.js'
39--- addons/web/static/src/js/chrome.js 2013-05-06 13:50:31 +0000
40+++ addons/web/static/src/js/chrome.js 2013-05-17 11:07:24 +0000
41@@ -380,7 +380,7 @@
42 var fetch_langs = this.rpc("/web/session/get_lang_list", {}).done(function(result) {
43 self.lang_list = result;
44 });
45- return $.when(fetch_db, fetch_langs).done(self.do_render);
46+ return $.when(fetch_db, fetch_langs).always(self.do_render);
47 },
48 do_render: function() {
49 var self = this;