<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
คำถามนี้ถูกตั้งค่าสถานะ
803
มุมมอง
สนุกกับการพูดคุยนี้ใช่ไหม? เข้าร่วมเลย!
สร้างบัญชีวันนี้เพื่อเพลิดเพลินไปกับฟีเจอร์พิเศษและมีส่วนร่วมกับคอมมูนิตี้ที่ยอดเยี่ยมของเรา!
ลงชื่อRelated Posts | ตอบกลับ | มุมมอง | กิจกรรม | |
---|---|---|---|---|
|
2
ม.ค. 24
|
3332 | ||
|
0
ม.ค. 24
|
1586 | ||
|
0
ธ.ค. 20
|
2145 | ||
|
1
ก.ย. 19
|
4944 | ||
|
0
มิ.ย. 17
|
3190 |