Overslaan naar inhoud
Menu
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Deze vraag is gerapporteerd
1 Beantwoorden
4733 Weergaven

Hi all,

In my extension to hr.employee I utilize 1:n relation between user and employe: One (system) user has n related employees in user.employe_ids.

When the user logs in he is allowed his employe + child records only:

domain_force of ir.rule:

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

 
 The domain rule works fine if there is 1:1 for user and employe. However, I cannot find a way to iterate through user.employee_ids and test child_of for a given employe_id.
 
 Things I tried so far without success:
 1.


('id','child_of',[employe.id for employe in user.employee_ids])

 causes an exception
 
 2. Inheriting ir_rule:
 

 @api.model   
def _eval_context(self):
    res = super(IRRuleWithSiblings,self)._eval_context()                    
    subordinates = []        
        for employe in self.env.user.employee_ids:                        
            children = self.env['hr.employee'].search([('id', 'child_of', employe.id)])                           
    for child_id in children:               
        subordinates.append(child_id.id)                            
        res['subordinates'] = subordinates       
return res

       
ir.rule record:       

        <field name="domain_force">['id','in',subordinates)</field>


causes
RecursionError: maximum recursion depth exceeded

Can anyone advice me how to iterate through user.employe_ids and check for siblings?

Regards,
Matthias

Avatar
Annuleer
Beste antwoord

did you find the solution?

Avatar
Annuleer
Gerelateerde posts Antwoorden Weergaven Activiteit
1
aug. 25
3661
1
okt. 24
3349
2
jul. 24
2214
0
mei 23
2429
9
dec. 23
33481