JS работает с .include, но не с .extend - PullRequest
1 голос
/ 25 февраля 2020

Я сделал это JS, чтобы добавить функциональность в форму (бэкэнд), которая вычисляет поле при срабатывании щелчка по событию. До сих пор код пересчитывается, когда я использую «.include», но весь JS во всех представлениях завершается ошибкой, так как я использую «.include». Когда я пытаюсь использовать расширение, мой код ничего не делает. Похоже, Odoo не добавляет расширенный код в движок JS, поэтому мой вопрос: что я здесь не так делаю? Есть ли что-то еще, что мне нужно добавить, чтобы мой код работал как расширенный?

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

var viewRegistry = require('web.view_registry');
var FormRenderer = require('web.FormRenderer');
var FormView = require('web.FormView');

var TestFormRenderer = FormRenderer.extend({
    events: _.extend({}, FormRenderer.prototype.events, {
        'click .sign_selector': '_onSignSelectorClicked',
    }),
    init: function (parent, state, params) {
        this._super.apply(this, arguments);
        this.fields = state.fields;
        this._onSignSelectorClicked = _.debounce(this._onSignSelectorClicked, 300, true);
    },
    confirmChange: function (state, id, fields, e) {
        var self = this;
        if (state.model == 'med.test') {
            return this._super.apply(this, arguments).then(function () {
                self.canBeSaved(self.state.id);
            });
        }
    },
    _onSignSelectorClicked: function (event) {
       this.state.data.telephone = '333';
       if (this.state.model == 'med.test') {
           var info_test = {
               dataPointID: this.state.id,
               changes: {telephone: '333'},
               viewType: "form",
               notifyChange: true
           };
           var odoo_event = this.trigger_up('field_changed', info_test);
           this.confirmChange(this.state, this.state.id, "telephone",          
           odoo_event)
        }
    },
});
var TestFormView = FormView.extend({
    config: _.extend({}, FormView.prototype.config, {
        Renderer: TestFormRenderer,
    }),
});
viewRegistry.add('test_form', TestFormView);
return TestFormView;
});
...