Skip to Content
Меню
Вам необхідно зареєструватися, щоб взаємодіяти зі спільнотою.
Це запитання позначене
1 Відповісти
4744 Переглядів

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

Аватар
Відмінити
Найкраща відповідь

did you find the solution?

Аватар
Відмінити
Related Posts Відповіді Переглядів Дія
1
серп. 25
3688
1
жовт. 24
3416
2
лип. 24
2242
0
трав. 23
2451
9
груд. 23
33509