odoo19的看板视图更新

odoo18的写法:

<record id="estate_property_view_kanban" model="ir.ui.view">
    <field name="name">estate_property_view_kanban</field>
    <field name="model">estate.property</field>
    <field name="arch" type="xml">
        <kanban default_group_by="property_type_id" records_draggable="False">

            <field name="state"/>
            <templates>
                <t t-name="kanban-box">
                    <div>
                        <h3>
                            <field name="name"/>
                        </h3>
                        <p style="color:#666">
                            期望的价格:<field name="expected_price"/>
                        </p>
                        <p t-if="record.state.raw_value == 'offer_received'">
                            最佳价格:<field name="best_price" />
                        </p>
                        <p  t-if="record.state.raw_value == 'offer_accepted'">
                            销售价格:<field name="selling_price" />
                        </p>
                        <p>
                            房屋标签:<field name="tag_ids"/>
                        </p>




                    </div>
                </t>
            </templates>
        </kanban>
    </field>
</record>

要改成odoo19写法:
    <record id="estate_property_view_kanban" model="ir.ui.view">
        <field name="name">estate_property_view_kanban</field>
        <field name="model">estate.property</field>
        <field name="arch" type="xml">
            <kanban default_group_by="property_type_id" records_draggable="False">
                <!-- 1. 声明所有需要的字段(必须提前声明) -->
                <field name="name"/>
                <field name="state"/>
                <field name="expected_price"/>
                <field name="best_price"/>
                <field name="selling_price"/>
                <field name="tag_ids"/>
                
                <!-- 2. Odoo 19 核心:使用 card 模板(替代旧版 kanban-box) -->
                <templates>
                    <t t-name="card">
                        <div class="o_kanban_card oe_kanban_global_click">
                            <!-- 卡片头部 -->
                            <div class="o_kanban_card_header">
                                <h4 class="o_kanban_record_title">
                                    <field name="name"/>
                                </h4>
                            </div>
                            <!-- 卡片内容 -->
                            <div class="o_kanban_card_body">
                                <ul class="list-unstyled">
                                    <li style="color:#666; margin: 4px 0;">
                                        期望价格:<field name="expected_price"/>
                                    </li>
                                    <!-- 最佳价格:仅报价已接收状态显示 -->
                                    <li t-if="record.state.raw_value == 'offer_received'" style="margin: 4px 0;">
                                        最佳价格:<field name="best_price"/>
                                    </li>
                                    <!-- 销售价格:仅报价已接受状态显示 -->
                                    <li t-if="record.state.raw_value == 'offer_accepted'" style="margin: 4px 0;">
                                        销售价格:<field name="selling_price"/>
                                    </li>
                                    <!-- 房屋标签:many2many_tags 渲染 -->
                                    <li style="margin: 4px 0;">
                                        房屋标签:<field name="tag_ids" widget="many2many_tags"/>
                                    </li>
                                </ul>
                            </div>
                        </div>
                    </t>
                </templates>
            </kanban>
        </field>
    </record>
1 个赞