изменение запуска: функция var EditMenuDialog в Odoo

Мне нужно изменить значение в функции запуска EditMenuDialog var файла odoo website.contentMenu.js. Модификацию необходимо выполнить в моем js-файле пользовательского модуля.

https://github.com/odoo/odoo/blob/10.0/addons/website/static/src/js/website.contentMenu.js#L210

Здесь maxLevels имеет значение 2:

start: function () {
    var r = this._super.apply(this, arguments);
    this.$('.oe_menu_editor').nestedSortable({
        listType: 'ul',
        handle: 'div',
        items: 'li',
        maxLevels: 2,
        toleranceElement: '> div',
        forcePlaceholderSize: true,
        opacity: 0.6,
        placeholder: 'oe_menu_placeholder',
        tolerance: 'pointer',
        attribute: 'data-menu-id',
        expression: '()(.+)', // nestedSortable takes the second match of an expression (*sigh*)
    });
    return r;
},

Для моего модуля мне нужно изменить maxLevels на 3. Я попытался переписать переменную в своем пользовательском файле, но это не сработало. Как я могу это сделать?


person Tanzil Khan    schedule 02.07.2017    source источник


Ответы (1)


Я нашел решение для наследования и изменения функции odoo js в пользовательском модуле. Ниже приведен код:

odoo.define('your_module_name.js_name', function (require) {
'use strict';

// assign the variable EditMenuDialog of website module's contentModule
// js in a variable
var EditMenuDialog = require('website.contentMenu').EditMenuDialog;

// for modifying use the .include function
EditMenuDialog.include({
    start: function () {
        this.$('.oe_menu_editor').nestedSortable({
            listType: 'ul',
            handle: 'div',
            items: 'li',
            maxLevels: 3, // changed maxLevels from 2 to 3
            toleranceElement: '> div',
            forcePlaceholderSize: true,
            opacity: 0.6,
            placeholder: 'oe_menu_placeholder',
            tolerance: 'pointer',
            attribute: 'data-menu-id',
            expression: '()(.+)'
        });
    }
});
});
person Tanzil Khan    schedule 11.07.2017