在Odoo的看板视图中,快速创建表单功能允许用户直接在看板上迅速添加记录,而无需跳转到详细的表单视图。下面的教程将演示如何在Odoo的看板卡片中添加快速创建表单,并提供详细的代码示例和参数解释。
创建自定义模块
首先,确保已经创建一个自定义模块。在自定义模块的目录下,创建或编辑models.py
文件和views/kanban_view.xml
文件。
models.py
在models.py
文件中,定义一个新的模型,例如Task
,并且确保它继承自Model
:
python
from odoo import models, fields
class Task(models.Model):
_name = 'custom.task'
_description = 'Task'
name = fields.Char('Name', required=True)
description = fields.Text('')
在这个模型中,定义了两个字段:name
和description
。字段name
设置为必填项。
kanban_view.xml
在views/kanban_view.xml
文件中,定义看板视图并使用<kanban>
标签创建界面:
xml
<odoo>
<record id="view_task_kanban" model="ir.ui.view">
<field name="name">custom.task.kanban</field>
<field name="model">custom.task</field>
<field name="arch" type="xml">
<kanban default_group_by="none">
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click">
<field name="name"/>
<field name="description"/>
</div>
</t>
</templates>
</kanban>
</field>
</record>
</odoo>
在这个看板视图中,使用了默认分组(default_group_by)和模板(templates)。模板内定义了每个看板卡片如何显示字段。
快速创建表单
为了实现快速创建表单的功能,需要在看板视图上添加一个<field>
标签并设置属性quick_create="false"
,以禁用默认的快速创建功能。然后通过添加一个自定义的快速创建表单来替代:
xml
<odoo>
<!-- ... 其他代码 ... -->
<record id="view_task_kanban" model="ir.ui.view">
<!-- ... 其他代码 ... -->
<field name="arch" type="xml">
<kanban default_group_by="none" quick_create="false">
<!-- ... 其他代码 ... -->
<templates>
<!-- ... 其他代码 ... -->
</templates>
<form create="edit_form">
<group>
<field name="name"/>
<field name="description"/>
</group>
</form>
</kanban>
</field>
</record>
</odoo>
在这里,通过<form>
标签定义了快速创建表单,并通过create
属性指定了当点击添加按钮时应该展示的表单视图。
解释每个参数的作用
<kanban>
: 创建看板视图的根标签。default_group_by
: 默认按此字段分组,这里设置为"none"表示不进行分组。quick_create
: 控制是否使用默认的快速创建功能。设置为"false"关闭默认功能。<templates>
: 定义了看板卡片的HTML结构。<t t-name="kanban-box">
: 指定看板卡片的模板名字。<div class="oe_kanban_global_click">
: 确保整个卡片都可以点击。<form create="edit_form">
: 定义了快速创建表单,并通过create
指定点击添加时展示的表单视图。<group>
: 在表单视图中用于组织字段的容器。<field>
: 显示模型字段,属性如name
指定显示哪个字段。
安装和测试
保存并更新模块,在Odoo应用界面安装或升级自定义模坐。安装完成后,转到相应的看板视图,尝试使用快速创建功能来添加记录。
此教程提供了在Odoo看板卡片中添加快速创建表单的基础步骤和代码示例。根据实际需求和业务逻辑,可以进一步自定义和扩展功能。