From 1b80c5bd52e7697845b7b1cf1939b02e44f0b1fe Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Sun, 11 Nov 2012 17:32:43 +0100 Subject: [PATCH] [IMP] monodb helper bzr revid: al@openerp.com-20121111163243-bhj3jzhuk99sklwo --- addons/web/controllers/main.py | 37 ++++++++++++------------------ addons/web/static/src/js/chrome.js | 4 ++-- 2 files changed, 17 insertions(+), 24 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 3fef277edb4..9eb672caa3b 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -91,6 +91,17 @@ def db_list(req): dbs = [i for i in dbs if re.match(r, i)] return dbs +def db_monodb(req): + # if only one db is listed returns it else return False + try: + dbs = db_list(req) + if len(dbs) == 1: + return dbs[0] + except xmlrpclib.Fault: + # ignore access denied + pass + return False + def module_topological_sort(modules): """ Return a list of module names sorted so that their dependencies of the modules are listed before the module itself @@ -185,15 +196,9 @@ def module_boot(req): for i in server_wide_modules: if i in openerpweb.addons_manifest: serverside.append(i) - # if only one db load every module at boot - dbs = [] - try: - dbs = db_list(req) - except xmlrpclib.Fault: - # ignore access denied - pass - if len(dbs) == 1: - dbside = module_installed_bypass_session(dbs[0]) + monodb = db_monodb(req) + if monodb: + dbside = module_installed_bypass_session(monodb) dbside = [i for i in dbside if i not in serverside] addons = serverside + dbside return addons @@ -760,8 +765,7 @@ class Database(openerpweb.Controller): @openerpweb.jsonrequest def get_list(self, req): - dbs = db_list(req) - return {"db_list": dbs} + return db_list(req) @openerpweb.jsonrequest def create(self, req, fields): @@ -1244,17 +1248,6 @@ class DataSet(openerpweb.Controller): m.write(id, { field: i + offset }) return True -class DataGroup(openerpweb.Controller): - _cp_path = "/web/group" - @openerpweb.jsonrequest - def read(self, req, model, fields, group_by_fields, domain=None, sort=None): - Model = req.session.model(model) - context, domain = eval_context_and_domain(req.session, req.context, domain) - - return Model.read_group( - domain or [], fields, group_by_fields, 0, False, - dict(context, group_by=group_by_fields), sort or False) - class View(openerpweb.Controller): _cp_path = "/web/view" diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 99c7a73f3bd..69dafa08c02 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -303,7 +303,7 @@ instance.web.DatabaseManager = instance.web.Widget.extend({ $('.oe_secondary_menus_container,.oe_user_menu_placeholder').empty(); var fetch_db = this.rpc("/web/database/get_list", {}).then( function(result) { - self.db_list = result.db_list; + self.db_list = result; }, function (_, ev) { ev.preventDefault(); @@ -548,7 +548,7 @@ instance.web.Login = instance.web.Widget.extend({ return d; }, on_db_loaded: function (result) { - this.db_list = result.db_list; + this.db_list = result; this.$("[name=db]").replaceWith(QWeb.render('Login.dblist', { db_list: this.db_list, selected_db: this.selected_db})); if(this.db_list.length === 0) { this.do_action("database_manager");