Manager
Manager: Own Projects
[('user_id', '=', user.id)]
Project/Task: project supervisor: see all tasks linked to his assigned project or its own tasks
[
('project_id.user_id','=',user.id),
'|', ('project_id', '!=', False),
('user_ids', 'in', user.id),
]
Project/Task: project users: don't see non generic tasks
[
'&', '&',
('project_id', '!=', False),
('is_generic', '=', False),
('user_ids', 'not in', user.id),
]
Project/Task: project lead: see all tasks
[
'&', '&', '&',
('project_id', '!=', False),
('project_id.project_lead', '=', user.id),
'|', ('is_generic', '=', True), ('is_generic', '=', False),
'|', ('user_ids', 'in', user.id), ('user_ids', 'not in', user.id)
]
Task Availability: project lead: see all user tasks
[
'|', '|',
('project_id.project_lead', '=', user.id),
('user_id', '=', user.id),
('project_id.user_id', '=', user.id),
]