diff --git a/documents/logs/Screenshot_6.png b/documents/logs/Screenshot_6.png new file mode 100644 index 0000000..40bcd11 Binary files /dev/null and b/documents/logs/Screenshot_6.png differ diff --git a/documents/logs/Screenshot_7.png b/documents/logs/Screenshot_7.png new file mode 100644 index 0000000..97e4216 Binary files /dev/null and b/documents/logs/Screenshot_7.png differ diff --git a/lims_management/models/__pycache__/__init__.cpython-312.pyc b/lims_management/models/__pycache__/__init__.cpython-312.pyc index caac40f..9237b71 100644 Binary files a/lims_management/models/__pycache__/__init__.cpython-312.pyc and b/lims_management/models/__pycache__/__init__.cpython-312.pyc differ diff --git a/lims_management/models/__pycache__/sale_order.cpython-312.pyc b/lims_management/models/__pycache__/sale_order.cpython-312.pyc index d4ff865..79626ed 100644 Binary files a/lims_management/models/__pycache__/sale_order.cpython-312.pyc and b/lims_management/models/__pycache__/sale_order.cpython-312.pyc differ diff --git a/lims_management/models/__pycache__/stock_lot.cpython-312.pyc b/lims_management/models/__pycache__/stock_lot.cpython-312.pyc index 120db73..c5edc30 100644 Binary files a/lims_management/models/__pycache__/stock_lot.cpython-312.pyc and b/lims_management/models/__pycache__/stock_lot.cpython-312.pyc differ diff --git a/lims_management/models/lims_result.py b/lims_management/models/lims_result.py index 572c3f8..19d840d 100644 --- a/lims_management/models/lims_result.py +++ b/lims_management/models/lims_result.py @@ -25,6 +25,22 @@ class LimsResult(models.Model): ondelete='cascade' ) + # Campo relacionado para acceder a la muestra sin duplicar datos + test_sample_id = fields.Many2one( + 'stock.lot', + string='Muestra', + related='test_id.sample_id', + readonly=True, + store=True # Para poder buscar y filtrar + ) + + # Campo relacionado para mostrar el estado sin duplicar + test_sample_state = fields.Selection( + string='Estado de Muestra', + related='test_sample_id.state', + readonly=True + ) + # Cambio de parameter_name a parameter_id parameter_id = fields.Many2one( 'lims.analysis.parameter', diff --git a/lims_management/models/lims_test.py b/lims_management/models/lims_test.py index 5708605..d9bb6e2 100644 --- a/lims_management/models/lims_test.py +++ b/lims_management/models/lims_test.py @@ -51,6 +51,12 @@ class LimsTest(models.Model): tracking=True ) + sample_state = fields.Selection( + related='sample_id.state', + string='Estado de Muestra', + readonly=True + ) + state = fields.Selection([ ('draft', 'Borrador'), ('in_process', 'En Proceso'), @@ -215,7 +221,7 @@ class LimsTest(models.Model): # Actualizar estado de la muestra si es necesario if self.sample_id and self.sample_id.state == 'collected': - self.sample_id.write({'state': 'in_analysis'}) + self.sample_id.write({'state': 'in_process'}) self.sample_id.message_post( body=_('Muestra en análisis para la prueba %s') % self.name, subject=_('Estado actualizado'), @@ -283,7 +289,7 @@ class LimsTest(models.Model): # Verificar que todos los resultados críticos tengan observaciones si están fuera de rango critical_results = [] for result in self.result_ids: - if result.is_out_of_range and result.parameter_id.is_critical: + if result.is_critical: # Usar el campo is_critical del resultado, no del parámetro if not result.notes: critical_results.append(result.parameter_id.name) diff --git a/lims_management/views/lims_result_bulk_entry_views.xml b/lims_management/views/lims_result_bulk_entry_views.xml index 64cda97..ece7fd5 100644 --- a/lims_management/views/lims_result_bulk_entry_views.xml +++ b/lims_management/views/lims_result_bulk_entry_views.xml @@ -35,7 +35,9 @@ - + diff --git a/lims_management/views/lims_result_views.xml b/lims_management/views/lims_result_views.xml index 5f35ebe..d7af9be 100644 --- a/lims_management/views/lims_result_views.xml +++ b/lims_management/views/lims_result_views.xml @@ -10,6 +10,10 @@ + + @@ -69,6 +73,13 @@ + + @@ -101,6 +112,7 @@ + @@ -118,10 +130,19 @@ domain="[('parameter_value_type', '=', 'selection')]"/> + + + + + + diff --git a/lims_management/views/lims_test_views.xml b/lims_management/views/lims_test_views.xml index 262938d..18518ea 100644 --- a/lims_management/views/lims_test_views.xml +++ b/lims_management/views/lims_test_views.xml @@ -50,7 +50,9 @@ + domain="[('is_lab_sample', '=', True), ('patient_id', '=', patient_id)]" + context="{'form_view_ref': 'lims_management.view_lab_sample_form', + 'tree_view_ref': 'lims_management.view_lab_sample_list'}"/> @@ -139,7 +141,9 @@ - + - + diff --git a/lims_management/views/stock_lot_views.xml b/lims_management/views/stock_lot_views.xml index 511b425..7a83e79 100644 --- a/lims_management/views/stock_lot_views.xml +++ b/lims_management/views/stock_lot_views.xml @@ -94,12 +94,16 @@ - + - +