This question has been flagged
2 Replies
14426 Views

How to filter records for tree view based on logged in user. For Admin, Manager i want show evrey record , for normal user I want show records created by that particular user only.

Below code sample I tried

For manager uid=12

For admin uid=1

<field name="domain">[('|',('create_uid','=',uid),('|',(uid,'=','1'),(uid,'=','12')))]</field>

 Above code sample is throwing error "ValueError: Invalid leaf ['|', ['create_uid', '=', 1], ['|', [1, '=', '1'], [1, '=', '12']]]"

Avatar
Discard
Best Answer

Hey Shiva,

You should go with the concept  : Record rule.

in it create two rule : 1) for normal user 2) for others (admin/manager)

-> Make sure you have create / assigned specific group to them so we can identify who is normal user and who is manager / admin. (so that you do not need to check with STATIC ID e.g.1,12 etc).

Record rule for normal user :

<record id="normal_user_rule" model="ir.rule">

<field name="name">Normal User can see its own records</field>

<field name="model_id" ref="model_name/>

<field name="domain_force">[('user_id','=',user.id)]</field>

<field name="groups" eval="[(4, ref('base.group_user'))]"/>

<field name='perm_create' eval='True'/>

<field name='perm_read' eval='True'/>

<field name='perm_unlink' eval='True'/>

<field name='perm_write' eval='True'/>

</record>


# for admin / manager 

just change the domain_force , groups field's value

domain_force  = [(1,'=',1)]
group  = your manager group. 


Hope this will help you a lot !

Thanks.






Avatar
Discard
Best Answer

In Odoo to show records that are related to Active User is not a big deal. First understand what we are going to do here.

Problem Statement

Let say we have a company and in that company we have different active user related to different department. And we want to display some data or records in a tree view or list view according to active user department, when some one clicks on related menu. To achieve this goal we need to create dynamic domain on action window.

Solution

To put dynamic domain on action window we need a computed filed in Odoo 8 or function field in older version of Odoo, in that computed field we need to create two method first one for computed field and second one for search.

Read more about dynamic domain:

http://learnopenerp.blogspot.com/2017/11/show-records-on-treeview-that-are.html

Avatar
Discard