[IMP] initial module loading improvements

bzr revid: al@openerp.com-20111227194405-rz3kxbib03orbpr8
This commit is contained in:
Antony Lesuisse
2011-12-27 20:44:05 +01:00
parent cfc87346a4
commit dd79eb534b
2 changed files with 7 additions and 9 deletions
+4 -4
View File
@@ -22,20 +22,20 @@
* @param {Array} modules list of modules to initialize
*/
init: function(modules) {
// By default only web will be loaded, the rest will be by loaded
// by openerp.web.Connection on the first session_authenticate
modules = modules || ["web"];
var new_instance = {
// links to the global openerp
_openerp: openerp,
// Only web will be loaded, the rest will be by loaded by
// openerp.web.Connection on the first connection
_modules_loaded: false,
// this unique id will be replaced by hostname_databasename by
// openerp.web.Connection on the first connection
_session_id: "session" + session_counter++,
_modules: modules,
web: {},
web_mobile: {}
};
openerp.sessions[new_instance._session_id] = new_instance;
modules = modules || ["web"];
for(var i=0; i < modules.length; i++) {
openerp[modules[i]](new_instance);
}
+3 -5
View File
@@ -553,9 +553,10 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp.
user_context: result.context,
openerp_entreprise: result.openerp_entreprise
});
var deferred = self.do_load_qweb(['/web/webclient/qweb']);
var modules = openerp._modules.join(',');
var deferred = self.rpc('/web/webclient/qweblist', {mods: modules}).pipe(self.do_load_qweb);
if(self.session_is_valid()) {
return deferred.pipe(_.bind(function() { this.load_modules(); }, self));
return deferred.pipe(function() { self.load_modules(); });
}
return deferred;
});
@@ -636,9 +637,6 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp.
*/
load_modules: function() {
var self = this;
if(openerp._modules_loaded) {
return $.when();
}
return this.rpc('/web/session/modules', {}).pipe(function(result) {
self.module_list = result;
var lang = self.user_context.lang;