1

我尝试构建一个名为 schedule du 的新 view_type 使用fullcalendar 2.x管理计划 我在 v8 实例上有一个功能性 poc,但移植到 v10 给我带来了问题。

/*---------------------------------------------------------
 * OpenERP web_schedule
 *---------------------------------------------------------*/
odoo.define('web_schedule.ScheduleView', function (require) {
"use strict";
var core = require('web.core');
var data = require('web.data');
var form_common = require('web.form_common');
var formats = require('web.formats');
var Model = require('web.DataModel');
var time = require('web.time');
var utils = require('web.utils');
var View = require('web.View');
var local_storage = require('web.local_storage');

var CompoundDomain = data.CompoundDomain;

var _t = core._t;
var _lt = core._lt;
var QWeb = core.qweb;


function is_virtual_id(id) {
    return typeof id === "string" && id.indexOf('-') >= 0;
}

function isNullOrUndef(value) {
    return _.isUndefined(value) || _.isNull(value);
}

var ScheduleView = View.extend({
    template: "ScheduleView",
    display_name: _lt('Schedule'),        
    icon: 'fa-calendar',

    init: function() {
        this._super.apply(this, arguments);

        this.shown = $.Deferred();        
    },
    start: function() {
        console.log('start');
        this.$schedule = this.$el.find("#schedule");        
        this.shown.done(this._do_show_init.bind(this));
        return this._super();
    },
    _do_show_init: function () {
        console.log('_do_show_init')
        this.init_calendar().then(function() {
            $(window).trigger('resize');
        });
    },
    init_calendar: function() {
        console.log('init calendar')
        var defs = [];
        this.$schedule.fullCalendar(this.get_fc_init_options());
        return $.when.apply($, defs);
    },
    get_fc_init_options: function () {
       console.log('get_fc_init_options')
    },
});

core.view_registry.add('schedule', ScheduleView);

return ScheduleView;
});

这段代码改编自web_calendar.js,一个管理 Odoo 日历的核心模块。我的视图被调用,我的控制台中没有错误,除了带有 localtime 和 moment.js 的折旧警告,但没有任何效果。我的代码只返回console.log('start');并且从不去 this.shown.done(this._do_show_init.bind(this));

一个主意 ?

4

0 回答 0