Zum Inhalt springen
Menü
Sie müssen registriert sein, um mit der Community zu interagieren.
Diese Frage wurde gekennzeichnet
1 Antworten
4723 Ansichten

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
Verwerfen
Beste Antwort

did you find the solution?

Avatar
Verwerfen
Verknüpfte Beiträge Antworten Ansichten Aktivität
1
Aug. 25
3653
1
Okt. 24
3345
2
Juli 24
2214
0
Mai 23
2427
9
Dez. 23
33478