Gracias por el consejo, el método (2) no me funciona. me devuelve el siguiente error: AssertionError: obj must be a dict or a list
Estoy en la versión 4.4. El lunes, 2 de octubre de 2017, 9:14:06 (UTC-6), Sergi Almacellas Abellana escribió: > > El 02/10/17 a les 17:08, Josias Pérez ha escrit: > > Hola, > > > > Quisiera saber si es posible tener dominios personalizados para este > > caso. Tengo las siguiente tablas. > > > > class Distrito(ModelView, ModelSQL): > > 'Distrito' > > __name__ = 'disc.distrito' > > name = fields.Char('Distrito') > > user = fields.Many2One('res.user','Encargado') > > > > class Departamento(ModelView, ModelSQL): > > 'Departamento' > > __name__ = 'disc.departamento' > > name = fields.Char('Departamento') > > distrito = fields.Many2One('disc.distrito','Distrito', > > domain=mi_dominio) > > > > Y también los siguientes tipos de usuario: > > > > Usuario tipo A: Administrador general > > Usuario tipo B: Supervisor > > > > El tipo A tiene acceso a todos los distritos pero el tipo B únicamente a > > sus distritos, no a todos. Cómo tendría que ser la función 'mi_dominio' > > que evalúe los grupos y/o si a cada usuario le pertenece determinado > > departamento retornar determinado dominio? > > En este caso puedes hacer dos cosas: > > 1. Aplicar la restricción en todos los accessos al modelo. En este caso > debes crear una regal de acceso para tu modelo (ir.access.rule) que solo > se aplique si el usuario es de un grupo. > 2. Aplicar la restricción solo para la relación. En este caso debes > utilizar un dominio. El dominio debe ser algo asi como: > > If(In(Id('tu_modulo', 'id_grupo'), Eval('context', {}).get('users')), > (), # dominio vacio para no aplicar ninguna regla. > (('user', '=', Eval('context', {}).get('user', -1)), > ) > > Espero que te ayude. > > Un saludo, > > > > -- > Sergi Almacellas Abellana > www.koolpi.com > Twitter: @pokoli_srk >