如何根据条件显示子任务

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

所以我一般想要的是显示任务,并且仅在所选项目而不是所有项目的 display_under_tasks 为 true 时才显示子任务

在项目模型中的odoo中,当我选择一个项目时,您可以看到该域的项目任务

('display_project_id', '=', active_id),

但是我也想基于一个名为 display_under_tasks 的字段来显示子任务,如果它是 true 那么我会显示它们,如果不是我不会,但是当我添加这个时

'(parent_id', '!=', False),
 ('project_id.display_under_tasks', '=', True) 

到域名一切都变得混乱

我想我几乎找到了解决方案

[('parent_id','!=',False),'|',('display_project_id', '=', active_id), 
 ('project_id.display_under_tasks', '=', True)],

使用此域,它会根据 display_under_tasks 字段为我提供子任务,如果为真,则不会,但我为我提供了所有项目的所有任务,但我只想要我所在项目的任务 当我这样做时

('parent_id','!=',False),
        '|',
        ('parent_id','=',False),
        ('display_project_id', '=', active_id),
        '&',
        ('project_id.display_under_tasks', '=', True),
        ('project_id', '=', active_id)

不显示正常任务,仅显示子任务

这是全部代码

 <record id="project.act_project_project_2_project_task_all" model="ir.actions.act_window">
    <field name="name">Tasks</field>
    <field name="res_model">project.task</field>
    <field name="view_mode">kanban,tree,form,calendar,pivot,graph,activity</field>
    <field name="domain">[('parent_id','!=',False),
        '|',
        ('parent_id','=',False),
        ('display_project_id', '=', active_id),
        '&amp;',
        ('project_id.display_under_tasks', '=', True),
        ('project_id', '=', active_id)]
    </field>
    <field name="context">{ 'default_project_id': active_id, 'show_project_update': True }</field>
    <field name="search_view_id" ref="project.view_task_search_form"/>
    <field name="help" type="html">
        <p class="o_view_nocontent_smiling_face">
            No tasks found. Let's create one!
        </p>
        <p>
            Keep track of the progress of your tasks from creation to completion.
            <br/>
            Collaborate efficiently by chatting in real-time or via email.
        </p>
    </field>
</record>
xml odoo
1个回答
0
投票

这就是我所做的

  • 从project.task模型中删除了display_under_tasks字段。
  • 引用了project.project中的display_under_tasks字段 直接在动作域中建模。

以下是始终显示任务并有条件显示子任务的操作的代码片段:

<record id="action_task" model="ir.actions.act_window">
<field name="name">Tasks</field>
<field name="res_model">project.task</field>
<field name="view_mode">tree,form</field>
<field name="domain">
    [('project_id', '=', active_id),
     '|',
     ('parent_id', '=', False),
     '&', ('project_id.display_under_tasks', '=', True), ('parent_id', '!=', False)]
</field>
© www.soinside.com 2019 - 2024. All rights reserved.