Puntos 16 y 10: modulo de paquetes de sesiones (catalogo, saldo por paciente, descuento en agenda, venta en POS) + fix de auditoria silenciosa
This commit is contained in:
@@ -58,6 +58,7 @@ DEFAULT_MENU_ROLES = {
|
||||
'/consultas': ['admin', 'recepcion', 'medico', 'gerencia'],
|
||||
'/medicos': ['admin', 'recepcion', 'gerencia'],
|
||||
'/servicios': ['admin', 'recepcion', 'medico', 'lectura', 'gerencia'],
|
||||
'/paquetes': ['admin', 'recepcion', 'medico', 'lectura', 'gerencia'],
|
||||
'/productos': ['admin', 'recepcion', 'lectura', 'gerencia'],
|
||||
'/ventas': ['admin', 'recepcion', 'gerencia'],
|
||||
'/tickets': ['admin', 'gerencia'],
|
||||
@@ -115,12 +116,20 @@ def default_menu_roles():
|
||||
|
||||
|
||||
def get_menu_roles(env):
|
||||
"""Matriz vigente: la guardada en ir.config_parameter o los defaults."""
|
||||
"""Matriz vigente: la guardada en ir.config_parameter o los defaults.
|
||||
|
||||
La matriz guardada manda sobre los defaults, PERO se completan en memoria
|
||||
las rutas que no existan en ella. Sin eso, una ruta nueva (p. ej.
|
||||
'/paquetes') no aparecería en la matriz guardada y el frontend la trataría
|
||||
como "visible para todos" por no matchear ninguna llave.
|
||||
"""
|
||||
raw = env['ir.config_parameter'].sudo().get_param(MENU_ROLES_KEY)
|
||||
if raw:
|
||||
try:
|
||||
val = json.loads(raw)
|
||||
if isinstance(val, dict):
|
||||
for href, roles in default_menu_roles().items():
|
||||
val.setdefault(href, roles)
|
||||
return val
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user