<odoo>
<!-- Define Staff Group -->
<record id="group_project_staff" model="res.groups">
<field name="name">Project Staff</field>
<field name="category_id" ref="base.module_category_project"/>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
<field name="comment">Staff users have basic access to project tasks.</field>
</record>
<!-- Define Supervisor Group -->
<record id="group_project_supervisor" model="res.groups">
<field name="name">Project Supervisor</field>
<field name="category_id" ref="base.module_category_project"/>
<field name="implied_ids" eval="[(4, ref('group_project_staff'))]"/>
<field name="comment">Supervisors can oversee staff and project progress.</field>
</record>
<!-- Define Manager Group -->
<record id="group_project_manager" model="res.groups">
<field name="name">Project Manager</field>
<field name="category_id" ref="base.module_category_project"/>
<field name="implied_ids" eval="[(4, ref('group_project_supervisor'))]"/>
<field name="comment">Managers have full control over projects.</field>
</record>
<!-- Record Rule: Staff can only see projects where they are the Project Manager -->
<record id="rule_project_staff_own_projects" model="ir.rule">
<field name="name">Staff: View Own Projects</field>
<field name="model_id" ref="project.model_project_project"/>
<field name="groups" eval="[(6, 0, [ref('group_project_staff')])]"/>
<field name="domain_force">[('user_id', '=', user.id)]</field>
</record>
<!-- Record Rule: Supervisors can see projects they manage OR projects of their staff -->
<record id="rule_project_supervisor_own_and_team_projects" model="ir.rule">
<field name="name">Supervisor: View Own and Team Projects</field>
<field name="model_id" ref="project.model_project_project"/>
<field name="groups" eval="[(6, 0, [ref('group_project_supervisor')])]"/>
<field name="domain_force">[('user_id', '=', user.id)]</field>
</record>
<!-- Record Rule: Managers can see all projects -->
<record id="rule_project_manager_all_projects" model="ir.rule">
<field name="name">Manager: All Projects</field>
<field name="model_id" ref="project.model_project_project"/>
<field name="groups" eval="[(6, 0, [ref('group_project_manager')])]"/>
<field name="domain_force">[]</field>
</record>
</odoo>
this is my code i have created a hierarchy for staff, supervisor and manager.
then for supervisor i created a record rule to make visible only if he is the project manager [field: user_id(under project menu, form kanban view-> settings-> form), many2one to res.users].
issue:
the record rule is not applied on the user with project supervisor group
test cases:
1. i've commented Implied_ids for stop inheriting from other groups
2. i've tried changing user_id with created_uid in domain
3. i've tried hardcoding the user.id to its actual value with different ids in domain
4. i've ensured the user_id and created_uid fields both are in the DB
5. for the user i set the project supervisor role
6. i tried with eval="[Command.set([ref('group_project_supervisor')])]
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- 客户关系管理
- e-Commerce
- 会计
- 库存
- PoS
- Project
- MRP
此问题已终结
805
查看
相关帖文 | 回复 | 查看 | 活动 | |
---|---|---|---|---|
|
2
1月 24
|
3333 | ||
|
0
1月 24
|
1586 | ||
|
0
12月 20
|
2145 | ||
|
1
9月 19
|
4944 | ||
|
0
6月 17
|
3190 |