<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:
- CRM
- e-Commerce
- Accounting
- Inventory
- PoS
- Project
- MRP
This question has been flagged
802
Prikazi
Enjoying the discussion? Don't just read, join in!
Create an account today to enjoy exclusive features and engage with our awesome community!
PrijaviRelated Posts | Odgovori | Prikazi | Aktivnost | |
---|---|---|---|---|
|
2
jan. 24
|
3332 | ||
|
0
jan. 24
|
1586 | ||
|
0
dec. 20
|
2145 | ||
|
1
sep. 19
|
4944 | ||
|
0
jun. 17
|
3190 |