如何在Odoo 10的日历视图中显示自己的看板卡?

问题描述 投票:1回答:1

我正在尝试自定义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错误。我已经尝试了几种方法,但在这样的一项任务上浪费了很多时间。有谁知道它是如何工作的? (或达到我的目的的更好方法)。

编辑

[我刚刚意识到,我在为Odoo 10制作模块时正在寻找Odoo 11的信息。templates属性在Odoo 10文档中没有显示。

实际上,在

base / rng / view.rng中,我可以看到calendar标签的假定可用属性:

<rng:define name="calendar"> <rng:element name="calendar"> <rng:optional><rng:attribute name="string" /></rng:optional> <rng:optional><rng:attribute name="color" /></rng:optional> <rng:optional><rng:attribute name="date_start" /></rng:optional> <rng:optional><rng:attribute name="date_stop" /></rng:optional> <rng:optional><rng:attribute name="day_length" /></rng:optional> <rng:optional><rng:attribute name="date_delay" /></rng:optional> <rng:optional><rng:attribute name="all_day" /></rng:optional> <rng:optional><rng:attribute name="event_open_popup" /></rng:optional> <rng:optional><rng:attribute name="attendee" /></rng:optional> <rng:optional><rng:attribute name="color_is_attendee" /></rng:optional> <rng:optional><rng:attribute name="avatar_filter" /></rng:optional> <rng:optional><rng:attribute name="avatar_model" /></rng:optional> <rng:optional><rng:attribute name="avatar_title" /></rng:optional> <rng:optional><rng:attribute name="use_contacts" /></rng:optional> <rng:optional><rng:attribute name="quick_add" /></rng:optional> <rng:optional><rng:attribute name="display" /></rng:optional> <rng:optional><rng:attribute name="type" /></rng:optional> <rng:optional> <rng:attribute name="mode"> <rng:choice> <rng:value>month</rng:value> <rng:value>week</rng:value> <rng:value>day</rng:value> </rng:choice> </rng:attribute> </rng:optional> <rng:oneOrMore> <rng:ref name="field"/> </rng:oneOrMore> <rng:zeroOrMore> <rng:ref name="html"/> </rng:zeroOrMore> </rng:element> </rng:define>
我还能做我想做的吗? html怎么样?
xml calendar odoo odoo-10 qweb
1个回答
1
投票
© www.soinside.com 2019 - 2024. All rights reserved.