【问题标题】:How to display your own kanban card in calendar view in Odoo 11?如何在 Odoo 11 的日历视图中显示自己的看板卡?
【发布时间】:2019-12-19 14:35:10
【问题描述】:

我正在尝试自定义calendar.event模型的日历视图,其代码为:

<record id="view_calendar_event_calendar" model="ir.ui.view">
    <field name="name">calendar.event.calendar</field>
    <field name="model">calendar.event</field>
    <field name="priority" eval="2"/>
    <field name="arch" type="xml">
        <calendar string="Meetings" date_start="start" date_stop="stop" date_delay="duration" all_day="allday"
            display="[name]" color="color_partner_id" attendee="partner_ids" avatar_model="res.partner"
            use_contacts="True" event_open_popup="%(calendar.view_calendar_event_form_popup)s">
            <field name="name"/>
            <field name="user_id"/>
            <field name="color_partner_id"/>
            <field name="partner_ids"/>
        </calendar>
    </field>
</record>

我想显示一些新字段并使背景颜色取决于名为color_confirmed 的新字段。完美的方法是将日历视图中显示的看板替换为定制的看板。 Odoo 文档 (https://www.odoo.com/documentation/11.0/reference/views.html#calendar) 说明如下:

模板

定义 QWeb 模板日历框。为清晰起见,卡片定义可以拆分为多个模板,每条记录都会呈现一次。

看板视图主要使用标准的 javascript qweb 并提供以下上下文变量:

...

我正在尝试使用该 templates 属性,但我不知道如何使用,而且我无法在我下载的所有可用模块中找到示例。我的尝试之一:

<record id="view_calendar_event_calendar" model="ir.ui.view">
    <field name="name">calendar.event.calendar</field>
    <field name="model">calendar.event</field>
    <field name="inherit_id" ref="calendar.view_calendar_event_calendar"/>
    <field name="arch" type="xml">
        <xpath expr="//calendar[1]" position="replace">
            <calendar string="Meetings" date_start="start" date_stop="stop" date_delay="duration"
                all_day="allday" display="[color_confirmed]" color="color_confirmed" attendee="partner_ids"
                avatar_model="res.partner" use_contacts="False" event_open_popup="%(calendar.view_calendar_event_form_popup)s" mode="month">
                <field name="name"/>
                <templates>
                    <t t-name="calendar-box">
                        <div class="oe_kanban_global_click">
                            <div class="oe_kanban_details">
                                <strong class="oe_partner_heading"><field name="name"/></strong>
                                <ul>
                                    <li>TEST ITEM 1</li>
                                    <li>TEST ITEM 2</li>
                                </ul>
                            </div>
                        </div>
                    </t>
                </templates>
            </calendar>
        </xpath>
    </field>
</record>

正如预期的那样,它抛出了一个 JS 错误。我尝试了几种方法,但我在这样一个任务上浪费了很多时间。有谁知道这是如何工作的? (或更好的方式来实现我的目的)。

【问题讨论】:

    标签: xml calendar odoo odoo-11 qweb


    【解决方案1】:

    js 错误应该是因为日历定义中的avatar_modeluse_contactsattendee。因为日历不接受这些值。

    如果您删除这些字段并添加您的代码,那么您的代码将运行良好。这里我渲染了你的calendar-box 模板

    如果我遗漏了什么,请告诉我。

    【讨论】:

    • 感谢您的回答!我已经删除了这些参数,但仍然收到 JS 错误 Uncaught TypeError: Cannot read property 'type' of undefined。如果我删除 templates 标记及其内容,它就可以工作。您确定不能使用这三个参数吗?源日历视图正在使用它们并且可以正常工作。您能否粘贴用于获取此处显示的屏幕截图的代码,以便我与我的进行比较?
    • 我意识到我在使用版本 10 时正在寻找 Odoo 11 文档。为什么它现在不起作用是有道理的。我已经编辑了这个问题。你怎么知道如何在版本 10 中管理你在屏幕截图中所做的事情?
    • 我接受你的答案是正确的,这是公平的,因为我要求第 11 版,然后意识到我需要第 10 版的答案。我刚刚发布了我真正想问的内容: stackoverflow.com/questions/59426000/…。你知道答案吗?
    猜你喜欢
    • 1970-01-01
    • 2020-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多