# -*- coding: utf-8 -*- from odoo import models, fields class SkeenRole(models.Model): """Rol del frontend React. Antes los roles eran un Selection hardcodeado en skeen.frontend.user. Ahora son datos: el `code` es el valor que se guarda en los usuarios, por eso los roles semilla conservan los códigos actuales y ningún usuario histórico se invalida. Los roles de sistema (is_system) se pueden renombrar pero no eliminar. """ _name = 'skeen.role' _description = 'Rol del frontend' _order = 'sequence, name' name = fields.Char(string='Nombre', required=True, translate=True) code = fields.Char( string='Código', required=True, copy=False, help='Identificador estable que se guarda en los usuarios.') rank = fields.Integer( string='Rango', default=50, help='Jerarquía: a mayor rango, más acceso de lectura/escritura. ' 'Administrador=100, roles operativos=50, solo lectura=10.') sequence = fields.Integer(string='Secuencia', default=10) active = fields.Boolean(string='Activo', default=True) is_system = fields.Boolean( string='De sistema', default=False, help='Los roles de sistema no se pueden eliminar, solo renombrar.') description = fields.Text(string='Descripción') _sql_constraints = [ ('unique_code', 'unique(code)', 'El código del rol debe ser único!') ]