OdooV8中的嵌套树视图

OdooV8中的嵌套树视图,odoo,Odoo,我有一个任务列表,每个任务可以有0个..*子任务 我的模型当前看起来如下所示: label = fields.Char(string='Label') parent_id = fields.Many2one('company.task', string='Super task') sub_tasks = fields.One2many('company.task', 'parent_id', string='Sub tasks') #skipped unnecessary parts Supe

我有一个任务列表,每个任务可以有0个..*子任务

我的模型当前看起来如下所示:

label = fields.Char(string='Label')
parent_id = fields.Many2one('company.task', string='Super task')
sub_tasks = fields.One2many('company.task', 'parent_id', string='Sub tasks')
#skipped unnecessary parts
SuperTask1
    SubTask1
    SubTask2
SuperTask2
    SubTask3
...
    <!-- Task action window -->
    <record id="action_list_task_complete" model="ir.actions.act_window">
        <field name="name">Tasks</field>
        <field name="res_model">company.task</field>
        <field name="view_mode">tree,form</field>
        <field name="help" type="html">
            <p class="oe_view_nocontent_create">Create the first task</p>
        </field>
    </record>

    <!-- Task tree -->
    <record id="task_tree_window_view" model="ir.actions.act_window.view">
        <field name="view_mode">tree</field>
        <field name="view_id" ref="task_tree_view" />
        <field name="act_window_id" ref="action_list_task_complete" />
    </record>

    <record id="task_tree_view" model="ir.ui.view">
        <field name="name">company.task.tree</field>
        <field name="model">company.task</field>
        <field name="priority" eval="16"/>
        <field name="field_parent">sub_tasks</field>
        <field name="arch" type="xml">
            <tree string="Task list" colors="blue:status=='not_processed';red:status=='delayed'">
                <field name="label"/>
                <field name="sub_tasks"/>
                <field name="parent_id"/>
            </tree>
        </field>
    </record>
我想以分层的方式呈现任务,如下所示:

label = fields.Char(string='Label')
parent_id = fields.Many2one('company.task', string='Super task')
sub_tasks = fields.One2many('company.task', 'parent_id', string='Sub tasks')
#skipped unnecessary parts
SuperTask1
    SubTask1
    SubTask2
SuperTask2
    SubTask3
...
    <!-- Task action window -->
    <record id="action_list_task_complete" model="ir.actions.act_window">
        <field name="name">Tasks</field>
        <field name="res_model">company.task</field>
        <field name="view_mode">tree,form</field>
        <field name="help" type="html">
            <p class="oe_view_nocontent_create">Create the first task</p>
        </field>
    </record>

    <!-- Task tree -->
    <record id="task_tree_window_view" model="ir.actions.act_window.view">
        <field name="view_mode">tree</field>
        <field name="view_id" ref="task_tree_view" />
        <field name="act_window_id" ref="action_list_task_complete" />
    </record>

    <record id="task_tree_view" model="ir.ui.view">
        <field name="name">company.task.tree</field>
        <field name="model">company.task</field>
        <field name="priority" eval="16"/>
        <field name="field_parent">sub_tasks</field>
        <field name="arch" type="xml">
            <tree string="Task list" colors="blue:status=='not_processed';red:status=='delayed'">
                <field name="label"/>
                <field name="sub_tasks"/>
                <field name="parent_id"/>
            </tree>
        </field>
    </record>
到目前为止,我使用的XML如下所示:

label = fields.Char(string='Label')
parent_id = fields.Many2one('company.task', string='Super task')
sub_tasks = fields.One2many('company.task', 'parent_id', string='Sub tasks')
#skipped unnecessary parts
SuperTask1
    SubTask1
    SubTask2
SuperTask2
    SubTask3
...
    <!-- Task action window -->
    <record id="action_list_task_complete" model="ir.actions.act_window">
        <field name="name">Tasks</field>
        <field name="res_model">company.task</field>
        <field name="view_mode">tree,form</field>
        <field name="help" type="html">
            <p class="oe_view_nocontent_create">Create the first task</p>
        </field>
    </record>

    <!-- Task tree -->
    <record id="task_tree_window_view" model="ir.actions.act_window.view">
        <field name="view_mode">tree</field>
        <field name="view_id" ref="task_tree_view" />
        <field name="act_window_id" ref="action_list_task_complete" />
    </record>

    <record id="task_tree_view" model="ir.ui.view">
        <field name="name">company.task.tree</field>
        <field name="model">company.task</field>
        <field name="priority" eval="16"/>
        <field name="field_parent">sub_tasks</field>
        <field name="arch" type="xml">
            <tree string="Task list" colors="blue:status=='not_processed';red:status=='delayed'">
                <field name="label"/>
                <field name="sub_tasks"/>
                <field name="parent_id"/>
            </tree>
        </field>
    </record>

任务
公司任务
树
创建第一个任务

树 公司任务树 公司任务 子任务
显示视图时不考虑父项的字段。我做错了什么?我查看了其他类似的问题和文档,但所有这些似乎只适用于不同版本的odoo

有人有主意吗


关于,F

在您的操作定义中,您应该将
视图类型
字段设置为
(默认为
表单
):

并删除
查看模式
,因为当
查看类型

这一切都非常混乱,因为遗留代码的命名不正确,由于向后兼容的原因仍然存在

  • 视图类型=表单,视图模式=树实际上是列表视图(表可视化),不支持真正的树导航(展开/合并分支)

  • 视图类型=树(忽略视图模式)是“真实”树

您可以在旧文档中阅读此内容,即使它根本不清楚

作为一个例子,您可以看到Odoo中为数不多的树视图之一的动作定义,

谢谢您的回答,我将在接下来的几分钟内试用。关于您的第一个代码片段:您是指
name=“view\u type”
而不是
name=“view\u mode”
,因为这是您上面所说的吗?实际上,
起作用了。非常感谢你。下一个问题是它在单击记录时没有打开表单视图。是的,我的意思是
view\u type
,正如我所描述的,我现在编辑了代码片段。