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
>