所以我一般想要的是显示任务,并且仅在所选项目而不是所有项目的 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),
'&',
('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>
这就是我所做的
以下是始终显示任务并有条件显示子任务的操作的代码片段:
<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>