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>