feat(#51): Task 8 completada - Crear vistas de configuración de parámetros
This commit is contained in:
parent
c80a154afd
commit
cdb8a97d58
|
@ -39,6 +39,8 @@
|
|||
'views/product_template_parameter_views.xml',
|
||||
'views/parameter_range_views.xml',
|
||||
'views/analysis_parameter_views.xml',
|
||||
'views/product_template_parameter_config_views.xml',
|
||||
'views/parameter_dashboard_views.xml',
|
||||
],
|
||||
'demo': [
|
||||
'demo/z_lims_demo.xml',
|
||||
|
|
172
lims_management/views/parameter_dashboard_views.xml
Normal file
172
lims_management/views/parameter_dashboard_views.xml
Normal file
|
@ -0,0 +1,172 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<!-- Kanban View for Parameters Dashboard -->
|
||||
<record id="view_lims_analysis_parameter_kanban" model="ir.ui.view">
|
||||
<field name="name">lims.analysis.parameter.kanban</field>
|
||||
<field name="model">lims.analysis.parameter</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban class="o_kanban_mobile">
|
||||
<field name="code"/>
|
||||
<field name="name"/>
|
||||
<field name="value_type"/>
|
||||
<field name="unit"/>
|
||||
<field name="analysis_count"/>
|
||||
<field name="active"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div t-attf-class="oe_kanban_global_click">
|
||||
<div class="o_kanban_record_top">
|
||||
<div class="o_kanban_record_headings">
|
||||
<strong class="o_kanban_record_title">
|
||||
<field name="code"/> - <field name="name"/>
|
||||
</strong>
|
||||
</div>
|
||||
</div>
|
||||
<div class="o_kanban_record_body">
|
||||
<div class="text-muted">
|
||||
<span>Tipo: </span>
|
||||
<field name="value_type" widget="badge"/>
|
||||
</div>
|
||||
<div t-if="record.unit.raw_value" class="text-muted">
|
||||
<span>Unidad: </span>
|
||||
<field name="unit"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="o_kanban_record_bottom">
|
||||
<div class="oe_kanban_bottom_left">
|
||||
<span t-if="!record.active.raw_value"
|
||||
class="badge badge-danger">Archivado</span>
|
||||
</div>
|
||||
<div class="oe_kanban_bottom_right">
|
||||
<field name="analysis_count" widget="badge"/>
|
||||
<span> análisis</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Graph View for Parameter Usage Statistics -->
|
||||
<record id="view_product_template_parameter_graph" model="ir.ui.view">
|
||||
<field name="name">product.template.parameter.graph</field>
|
||||
<field name="model">product.template.parameter</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Uso de Parámetros en Análisis" type="bar">
|
||||
<field name="parameter_id"/>
|
||||
<field name="product_tmpl_id" type="measure"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Dashboard Action for Parameters -->
|
||||
<record id="action_lims_parameter_dashboard" model="ir.actions.act_window">
|
||||
<field name="name">Panel de Parámetros</field>
|
||||
<field name="res_model">lims.analysis.parameter</field>
|
||||
<field name="view_mode">kanban,list,form</field>
|
||||
<field name="search_view_id" ref="view_lims_analysis_parameter_search"/>
|
||||
<field name="context">{'search_default_active': 1}</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
No hay parámetros configurados
|
||||
</p>
|
||||
<p>
|
||||
Configure los parámetros que se utilizarán en los análisis clínicos.
|
||||
Cada parámetro puede tener múltiples rangos de referencia según
|
||||
las características del paciente.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Parameter Statistics Action -->
|
||||
<record id="action_lims_parameter_statistics" model="ir.actions.act_window">
|
||||
<field name="name">Estadísticas de Parámetros</field>
|
||||
<field name="res_model">product.template.parameter</field>
|
||||
<field name="view_mode">graph,pivot,list</field>
|
||||
<field name="help" type="html">
|
||||
<p>
|
||||
Visualización estadística del uso de parámetros en los diferentes análisis.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Configuration Summary Dashboard -->
|
||||
<record id="view_lims_config_summary_form" model="ir.ui.view">
|
||||
<field name="name">lims.config.summary.form</field>
|
||||
<field name="model">res.config.settings</field>
|
||||
<field name="mode">primary</field>
|
||||
<field name="inherit_id" ref="lims_management.res_config_settings_view_form_lims"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//app[@name='lims_management']//block[@name='lims_settings']" position="after">
|
||||
<div class="row mt16" id="lims_configuration_stats">
|
||||
<div class="col-12">
|
||||
<h2>Estadísticas de Configuración</h2>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<div class="card">
|
||||
<div class="card-body text-center">
|
||||
<h4>Parámetros</h4>
|
||||
<p class="text-muted">Total configurados</p>
|
||||
<button name="%(action_lims_analysis_parameter)d"
|
||||
string="Ver Parámetros"
|
||||
type="action"
|
||||
class="btn-link"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<div class="card">
|
||||
<div class="card-body text-center">
|
||||
<h4>Rangos</h4>
|
||||
<p class="text-muted">Rangos de referencia</p>
|
||||
<button name="%(action_lims_parameter_range)d"
|
||||
string="Ver Rangos"
|
||||
type="action"
|
||||
class="btn-link"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<div class="card">
|
||||
<div class="card-body text-center">
|
||||
<h4>Análisis</h4>
|
||||
<p class="text-muted">Con parámetros</p>
|
||||
<button name="%(action_product_template_parameter_config)d"
|
||||
string="Ver Configuración"
|
||||
type="action"
|
||||
class="btn-link"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-6">
|
||||
<div class="card">
|
||||
<div class="card-body text-center">
|
||||
<h4>Estadísticas</h4>
|
||||
<p class="text-muted">Uso de parámetros</p>
|
||||
<button name="%(action_lims_parameter_statistics)d"
|
||||
string="Ver Estadísticas"
|
||||
type="action"
|
||||
class="btn-link"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Add menus -->
|
||||
<menuitem id="menu_lims_parameter_dashboard"
|
||||
name="Panel de Parámetros"
|
||||
parent="lims_management.lims_menu_config"
|
||||
action="action_lims_parameter_dashboard"
|
||||
sequence="10"/>
|
||||
|
||||
<menuitem id="menu_lims_parameter_statistics"
|
||||
name="Estadísticas"
|
||||
parent="lims_management.lims_menu_config"
|
||||
action="action_lims_parameter_statistics"
|
||||
sequence="40"/>
|
||||
</odoo>
|
|
@ -0,0 +1,129 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<!-- Form View for Configuration -->
|
||||
<record id="view_product_template_parameter_config_form" model="ir.ui.view">
|
||||
<field name="name">product.template.parameter.config.form</field>
|
||||
<field name="model">product.template.parameter</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Configuración de Parámetro en Análisis">
|
||||
<sheet>
|
||||
<group>
|
||||
<group string="Análisis">
|
||||
<field name="product_tmpl_id"
|
||||
readonly="1"
|
||||
options="{'no_open': True}"/>
|
||||
</group>
|
||||
<group string="Parámetro">
|
||||
<field name="parameter_id"
|
||||
readonly="1"
|
||||
options="{'no_open': True}"/>
|
||||
<field name="parameter_code"/>
|
||||
<field name="parameter_value_type"/>
|
||||
<field name="parameter_unit" invisible="parameter_value_type != 'numeric'"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="Configuración">
|
||||
<group>
|
||||
<field name="sequence"/>
|
||||
<field name="required"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="instructions" widget="text"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- List View for Configuration -->
|
||||
<record id="view_product_template_parameter_config_list" model="ir.ui.view">
|
||||
<field name="name">product.template.parameter.config.list</field>
|
||||
<field name="model">product.template.parameter</field>
|
||||
<field name="arch" type="xml">
|
||||
<list string="Configuración de Parámetros por Análisis">
|
||||
<field name="product_tmpl_id"/>
|
||||
<field name="parameter_id"/>
|
||||
<field name="parameter_code"/>
|
||||
<field name="parameter_value_type"/>
|
||||
<field name="parameter_unit" optional="show"/>
|
||||
<field name="sequence"/>
|
||||
<field name="required"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Search View -->
|
||||
<record id="view_product_template_parameter_config_search" model="ir.ui.view">
|
||||
<field name="name">product.template.parameter.config.search</field>
|
||||
<field name="model">product.template.parameter</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Buscar Configuración">
|
||||
<field name="product_tmpl_id" string="Análisis"/>
|
||||
<field name="parameter_id" string="Parámetro"/>
|
||||
<field name="parameter_code"/>
|
||||
<field name="parameter_name"/>
|
||||
<filter string="Requeridos" name="required"
|
||||
domain="[('required', '=', True)]"/>
|
||||
<filter string="Opcionales" name="optional"
|
||||
domain="[('required', '=', False)]"/>
|
||||
<separator/>
|
||||
<filter string="Numéricos" name="numeric"
|
||||
domain="[('parameter_value_type', '=', 'numeric')]"/>
|
||||
<filter string="Texto" name="text"
|
||||
domain="[('parameter_value_type', '=', 'text')]"/>
|
||||
<filter string="Sí/No" name="boolean"
|
||||
domain="[('parameter_value_type', '=', 'boolean')]"/>
|
||||
<filter string="Selección" name="selection"
|
||||
domain="[('parameter_value_type', '=', 'selection')]"/>
|
||||
<group expand="0" string="Agrupar por">
|
||||
<filter string="Análisis" name="group_analysis"
|
||||
context="{'group_by': 'product_tmpl_id'}"/>
|
||||
<filter string="Parámetro" name="group_parameter"
|
||||
context="{'group_by': 'parameter_id'}"/>
|
||||
<filter string="Tipo de Valor" name="group_value_type"
|
||||
context="{'group_by': 'parameter_value_type'}"/>
|
||||
<filter string="Requerido" name="group_required"
|
||||
context="{'group_by': 'required'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Pivot View for Analysis -->
|
||||
<record id="view_product_template_parameter_pivot" model="ir.ui.view">
|
||||
<field name="name">product.template.parameter.pivot</field>
|
||||
<field name="model">product.template.parameter</field>
|
||||
<field name="arch" type="xml">
|
||||
<pivot string="Matriz de Parámetros por Análisis">
|
||||
<field name="product_tmpl_id" type="row"/>
|
||||
<field name="parameter_id" type="col"/>
|
||||
<field name="required" type="measure"/>
|
||||
</pivot>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Action -->
|
||||
<record id="action_product_template_parameter_config" model="ir.actions.act_window">
|
||||
<field name="name">Configuración Parámetros-Análisis</field>
|
||||
<field name="res_model">product.template.parameter</field>
|
||||
<field name="view_mode">list,form,pivot</field>
|
||||
<field name="search_view_id" ref="view_product_template_parameter_config_search"/>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Configurar parámetros en análisis
|
||||
</p>
|
||||
<p>
|
||||
Esta vista muestra la configuración de qué parámetros
|
||||
están incluidos en cada análisis clínico.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Menu -->
|
||||
<menuitem id="menu_product_template_parameter_config"
|
||||
name="Config. Parámetros-Análisis"
|
||||
parent="lims_management.lims_menu_config"
|
||||
action="action_product_template_parameter_config"
|
||||
sequence="30"/>
|
||||
</odoo>
|
Loading…
Reference in New Issue
Block a user