diff options
| author | Christophe Matthieu <chm@odoo.com> | 2015-06-16 17:11:43 +0200 |
|---|---|---|
| committer | Christophe Matthieu <chm@odoo.com> | 2015-06-16 17:13:01 +0200 |
| commit | 8fcd31425360cb36cb2dfe8427d17b250ead42a5 (patch) | |
| tree | 9d4548f27e240814dedd58053f67773392c516e9 /addons/web/static/src/js/boot.js | |
| parent | c0712b2ede7100f31a1cdfe95c7799bb6dd29dd2 (diff) | |
[IMP] boot: add failed modules in unloaded modules to add informations like dependents, and remove failed modules from the missing module list
Diffstat (limited to 'addons/web/static/src/js/boot.js')
| -rw-r--r-- | addons/web/static/src/js/boot.js | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/addons/web/static/src/js/boot.js b/addons/web/static/src/js/boot.js index eeb998c8a4b..e9b7050cc19 100644 --- a/addons/web/static/src/js/boot.js +++ b/addons/web/static/src/js/boot.js @@ -14,7 +14,6 @@ var factories = Object.create(null); var job_names = []; var job_deps = []; - var failed = {}; var services = Object.create({ qweb: new QWeb2.Engine(), @@ -63,10 +62,10 @@ } }); }); - return _.difference(_.uniq(missing), waited); + return _.filter(_.difference(_.uniq(missing), waited), function (job) {return !job.error;}); }, get_failed_jobs: function () { - return failed; + return _.filter(jobs, function (job) {return !!job.error;}); }, factories: factories, services: services, @@ -122,7 +121,7 @@ odoo.__DEBUG__.remaining_jobs = jobs; odoo.__DEBUG__.web_client = services['web.web_client']; - if (!_.isEmpty(failed) || jobs.length) { + if (jobs.length) { var debug_jobs = {}, job; for (var k=0; k<jobs.length; k++) { @@ -131,6 +130,9 @@ dependents: odoo.__DEBUG__.get_dependents(jobs[k].name), name: jobs[k].name }; + if (jobs[k].error) { + job.error = jobs[k].error; + } var deps = odoo.__DEBUG__.get_dependencies( job.name ); for (var i=0; i<deps.length; i++) { if (job.name !== deps[i] && !(deps[i] in services)) { @@ -141,9 +143,11 @@ } } } + var missing = odoo.__DEBUG__.get_missing_jobs(); + var failed = odoo.__DEBUG__.get_failed_jobs(); console.warn('Warning: Some modules could not be started !'+ - '\nMissing dependencies: ', !jobs.length ? null : odoo.__DEBUG__.get_missing_jobs(), - '\nFailed modules: ', _.isEmpty(failed) ? null : failed, + '\nMissing dependencies: ', !missing.length ? null : missing, + '\nFailed modules: ', _.isEmpty(failed) ? null : _.map(failed, function (job) {return job.name;}), '\nUnloaded modules: ', _.isEmpty(debug_jobs) ? null : debug_jobs); } }, @@ -153,15 +157,15 @@ require = make_require(job); try { services[job.name] = job.factory.call(null, require); + jobs.splice(jobs.indexOf(job), 1); } catch (e) { - failed[job.name] = e; + job.error = e; } - jobs.splice(jobs.indexOf(job), 1); } return services; function is_ready (job) { - return _.every(job.factory.deps, function (name) { return name in services; }); + return !job.error && _.every(job.factory.deps, function (name) { return name in services; }); } function make_require (job) { |
