We are using Odoo 9 Contracts Management functionality and need to record timesheets with tasks. As this is not possible in the default entry form (see this post: https://www.odoo.com/forum/help-1/question/record-activities-time-against-project-tasks-in-odoo-9-timesheets-92869 ) we need to use the Activities view, which shows entries from the Analytic Account Line data model.
The current Activities view shows all records (all activities from all users for all analytic accounts).
We want to show:
The entries related to that user
The entries related to employees that user manages, and
The entries related to Analytic Accounts / Projects Managed by the User
All entries when user is part of a specific Permissions Group (e.g. Human Resources / Manager, etc)
We are using the record rules to filter what the user can see and are building this up step by step
We can successfully filter entries related to the user: [('user_id','=',user.id)]
We tried to also filter where the user was the manager, but failed with many variations of the following: ['|',('user_id','=',user.id),('user_id.manager_id','=',user.id)] and ['|',('user_id','=',user.id),('user_id.employee_ids.parent_id','=',user.id)] and ['|',('user_id','=',user.id),('user_id.employee_ids.parent_id','child_of',user.id)] etc etc
We get exceptions like: "user_id" not found in "hr.employee" table when using the child_of method, other times it will say no such field/leaf, and yet other times it will not report an error but wont show the expected records either.
Clearly we are just not understanding how to relate to the ORM model, but the documentation we've found doesn't seem to help a great deal (maybe we've missed something though).
Any help or guidance appreciated!
Everything is correct except manager rule :-
It should be ['|',('parent_id.user_id', '=', user.id),('user_id', '=', user.id)]
the left part cannot be 'user_id.manager_id' or 'user_id.employee_ids.parent_id' because here user_id is many2one field to res.users and there is no field like .employee_ids and .manager_id in res.users that’s why it throws error.
For selecting manager's user id we have to select manager field and from there the user_id (here manger field is parent_id "many2one field refer to hr.employee itself") :- 'parent_id.user_id' .
Hope this helps.
Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!
About This Community
|Asked: 10/28/15, 5:02 PM|
|Seen: 1347 times|
|Last updated: 10/30/15, 12:33 PM|