Se rendre au contenu
Menu
Cette question a été signalée

I'm following the Building Interface Extensions (https://www.odoo.com/documentation/11.0/howtos/web.html) with Odoo 11.

In the guide, it is stated that

"In Odoo web, modules are declared as functions set on the global odoo variable. The function's name must be the same as the addon (in this case oepetstore) so the framework can find it, and automatically initialize it."

But my module isn't being initialized and I get the following error:

"Action error - Could not find client action 'petstore.homepage'."



I put some logging in the module and I found that the file is being fetched by the browser, as expected, but the initialization isn't happening. 

This is my JS file:

odoo.oepetstore = function(instance, local) {
console.log('Started odoo.oepetstore'); ////////// [1] - This never runs

local.HomePage = instance.Widget.extend({
template: 'HomePageTemplate',
start: function() {
this.$el.append($('<div>').text('Hello dear Odoo user!'));
}
});
instance.web.client_actions.add('petstore.homepage', 'instance.oepetstore.HomePage');

}

console.log('Loaded petstore.js'); ////////// [2] - This always runs


With Odoo 9 (after renaming the file __manifest__.py to __openerp__.py and renaming the JS var odoo to openerp), everything works as expected.


Why isn't it working with Odoo 11? 

Avatar
Ignorer
Auteur Meilleure réponse

Unlike the guide, I had to define my module using odoo.require :


odoo.define('PetStoreHomePage', function(require){
    "use strict";

    var core = require('web.core');
    var Widget = require('web.Widget');

    var HomePageWidget = Widget.extend({
        template: 'HomePageTemplate',
        start: function() {
            this.$el.append($('<div>').text('Hello dear Odoo user!'));
        }
    });

    core.action_registry.add('petstore.homepage', HomePageWidget);
});
Avatar
Ignorer

Yep, the documentation is outdated.

Publications associées Réponses Vues Activité
2
oct. 22
7753
1
mai 21
2911
2
mai 20
9504
1
janv. 20
4741
0
août 19
3712