
- Ajustar permisos base: recepcionistas solo lectura, técnicos sin eliminar - Crear reglas de registro para control granular por estado - Implementar verificación de permisos en todas las transiciones - Agregar mail.thread a stock.lot para trazabilidad completa - Validar transiciones de estado y muestras asociadas - Actualizar vistas con restricciones según grupos de usuario - Mejorar mensajes del chatter con más contexto Co-Authored-By: Claude <noreply@anthropic.com>
114 lines
5.7 KiB
XML
114 lines
5.7 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<data>
|
|
<record id="module_category_lims" model="ir.module.category">
|
|
<field name="name">Laboratorio</field>
|
|
<field name="description">Permisos y roles para el módulo de Laboratorio Clínico.</field>
|
|
<field name="sequence">20</field>
|
|
</record>
|
|
|
|
<record id="group_lims_receptionist" model="res.groups">
|
|
<field name="name">Laboratorio / Recepcionista</field>
|
|
<field name="category_id" ref="module_category_lims"/>
|
|
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
|
|
<field name="comment">
|
|
El usuario puede registrar pacientes, crear órdenes de laboratorio y generar facturas. No tiene acceso a los resultados clínicos.
|
|
</field>
|
|
</record>
|
|
|
|
<record id="group_lims_technician" model="res.groups">
|
|
<field name="name">Laboratorio / Técnico</field>
|
|
<field name="category_id" ref="module_category_lims"/>
|
|
<field name="implied_ids" eval="[(4, ref('group_lims_receptionist'))]"/>
|
|
<field name="comment">
|
|
El usuario puede gestionar muestras, registrar la toma e ingresar resultados de los análisis. No puede validar resultados.
|
|
</field>
|
|
</record>
|
|
|
|
<record id="group_lims_admin" model="res.groups">
|
|
<field name="name">Laboratorio / Administrador</field>
|
|
<field name="category_id" ref="module_category_lims"/>
|
|
<field name="implied_ids" eval="[(4, ref('group_lims_technician'))]"/>
|
|
<field name="comment">
|
|
El usuario tiene acceso completo al módulo LIMS, incluyendo la validación de resultados, configuración y reportes.
|
|
</field>
|
|
</record>
|
|
|
|
<!-- Reglas de registro para lims.test -->
|
|
|
|
<!-- Recepcionistas: Solo pueden ver pruebas, no editarlas -->
|
|
<record id="lims_test_receptionist_read_rule" model="ir.rule">
|
|
<field name="name">Recepcionista: Solo lectura en pruebas</field>
|
|
<field name="model_id" ref="model_lims_test"/>
|
|
<field name="groups" eval="[(4, ref('group_lims_receptionist'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="False"/>
|
|
<field name="perm_create" eval="False"/>
|
|
<field name="perm_unlink" eval="False"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
</record>
|
|
|
|
<!-- Técnicos: Pueden editar solo pruebas no validadas -->
|
|
<record id="lims_test_technician_write_rule" model="ir.rule">
|
|
<field name="name">Técnico: Editar solo pruebas no validadas</field>
|
|
<field name="model_id" ref="model_lims_test"/>
|
|
<field name="groups" eval="[(4, ref('group_lims_technician'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="True"/>
|
|
<field name="perm_create" eval="True"/>
|
|
<field name="perm_unlink" eval="False"/>
|
|
<field name="domain_force">[('state', '!=', 'validated')]</field>
|
|
</record>
|
|
|
|
<!-- Administradores: Acceso completo (sin restricciones) -->
|
|
<record id="lims_test_admin_all_rule" model="ir.rule">
|
|
<field name="name">Administrador: Acceso completo a pruebas</field>
|
|
<field name="model_id" ref="model_lims_test"/>
|
|
<field name="groups" eval="[(4, ref('group_lims_admin'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="True"/>
|
|
<field name="perm_create" eval="True"/>
|
|
<field name="perm_unlink" eval="True"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
</record>
|
|
|
|
<!-- Reglas de registro para lims.result -->
|
|
|
|
<!-- Recepcionistas: Solo pueden ver resultados -->
|
|
<record id="lims_result_receptionist_read_rule" model="ir.rule">
|
|
<field name="name">Recepcionista: Solo lectura en resultados</field>
|
|
<field name="model_id" ref="model_lims_result"/>
|
|
<field name="groups" eval="[(4, ref('group_lims_receptionist'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="False"/>
|
|
<field name="perm_create" eval="False"/>
|
|
<field name="perm_unlink" eval="False"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
</record>
|
|
|
|
<!-- Técnicos: Pueden editar resultados de pruebas no validadas -->
|
|
<record id="lims_result_technician_write_rule" model="ir.rule">
|
|
<field name="name">Técnico: Editar resultados de pruebas no validadas</field>
|
|
<field name="model_id" ref="model_lims_result"/>
|
|
<field name="groups" eval="[(4, ref('group_lims_technician'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="True"/>
|
|
<field name="perm_create" eval="True"/>
|
|
<field name="perm_unlink" eval="False"/>
|
|
<field name="domain_force">[('test_id.state', '!=', 'validated')]</field>
|
|
</record>
|
|
|
|
<!-- Administradores: Acceso completo a resultados -->
|
|
<record id="lims_result_admin_all_rule" model="ir.rule">
|
|
<field name="name">Administrador: Acceso completo a resultados</field>
|
|
<field name="model_id" ref="model_lims_result"/>
|
|
<field name="groups" eval="[(4, ref('group_lims_admin'))]"/>
|
|
<field name="perm_read" eval="True"/>
|
|
<field name="perm_write" eval="True"/>
|
|
<field name="perm_create" eval="True"/>
|
|
<field name="perm_unlink" eval="True"/>
|
|
<field name="domain_force">[(1, '=', 1)]</field>
|
|
</record>
|
|
</data>
|
|
</odoo>
|