From 02bf3106d6560fea6ee79ac4bc474c9eb0bc0fb2 Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Wed, 16 Mar 2011 18:20:42 +0100 Subject: [PATCH] addons loading working bzr revid: al@openerp.com-20110316172042-go8m79n6j8b6lmaa --- addons/base/controllers/main.py | 3 +- addons/base/static/openerp/js/boot.js | 3 +- addons/base/static/openerp/js/controllers.js | 69 +++++++++++--------- 3 files changed, 42 insertions(+), 33 deletions(-) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index fbaf138e56f..4567aa7f3ab 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -41,8 +41,7 @@ class Xml2Json: kids.append(Xml2Json.convert_element(kid)) if kid.tail and (not skip_whitespaces or kid.tail.strip() != ''): kids.append(kid.tail) - if len(kids): - res["children"] = kids + res["children"] = kids return res #---------------------------------------------------------- diff --git a/addons/base/static/openerp/js/boot.js b/addons/base/static/openerp/js/boot.js index 9c25f856af8..cd26e6bcd65 100644 --- a/addons/base/static/openerp/js/boot.js +++ b/addons/base/static/openerp/js/boot.js @@ -68,6 +68,7 @@ (function() { if (this.openerp) return; + var session_counter = 0; // openerp instance constructor var openerp = this.openerp = function() { @@ -79,7 +80,7 @@ _modules_loaded: false, // this unique id will be replaced by hostname_databasename by // openerp.base.Connection on the first connection - _session_id: "session" + openerp.sessions.length, + _session_id: "session" + session_counter++, screen: openerp.screen, sessions: openerp.sessions, base: {} diff --git a/addons/base/static/openerp/js/controllers.js b/addons/base/static/openerp/js/controllers.js index 4727495b8c1..24c0ca60775 100644 --- a/addons/base/static/openerp/js/controllers.js +++ b/addons/base/static/openerp/js/controllers.js @@ -75,6 +75,7 @@ openerp.base.BasicController = Class.extend({ for (var name in this) { if(typeof(this[name]) == "function") { this[name].debug_name = name; + // bind ALL function to this not only on_and _do ? if((/^on_|^do_/).test(name)) { this[name] = openerp.base.callback(this, this[name]); } @@ -135,6 +136,7 @@ openerp.base.Session = openerp.base.BasicController.extend({ this.uid = false; this.session_id = false; this.module_list = []; + this.module_loaded = {"base": true}; this.context = {}; }, rpc: function(url, params, success_callback, error_callback) { @@ -222,40 +224,47 @@ openerp.base.Session = openerp.base.BasicController.extend({ session_load_modules: function() { var self = this; this.rpc('/base/session/modules', {}, function(result) { - this.module_list = result['modules']; - if(self.debug) { - self.log(self.module_list); - self.rpc('/base/session/jslist', {"mods": this.module_list.join(',')}, function(result) { - var files = result.files; - self.log(files); - // Insert addons javascript in head - for(var i=0; i