From 0d09e1819a6823aa8a56c7fd2fcc58595021083f Mon Sep 17 00:00:00 2001 From: Luis Ernesto Portillo Zaldivar Date: Wed, 16 Jul 2025 12:30:13 -0600 Subject: [PATCH] =?UTF-8?q?feat(#63):=20Implementar=20redirecci=C3=B3n=20a?= =?UTF-8?q?=20vistas=20personalizadas=20de=20muestras?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Agregar contexto de vistas personalizadas en todos los campos que referencian muestras - Modificar sale_order_views.xml: campo all_sample_ids con redirección - Modificar lims_test_views.xml: campo sample_id con redirección - Modificar lims_result_bulk_entry_views.xml: campo sample_id con redirección - Modificar stock_lot_views.xml: campos parent_sample_id y child_sample_ids - Agregar muestra y estado a vista de resultados con filtros y agrupación - Corregir estado 'in_analysis' por 'in_process' en action_start_process - Corregir validación de resultados críticos para usar campo correcto Ahora todas las referencias a muestras en el módulo LIMS abren la vista personalizada del laboratorio en lugar de la vista estándar de stock.lot. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- documents/logs/Screenshot_6.png | Bin 0 -> 24642 bytes documents/logs/Screenshot_7.png | Bin 0 -> 12516 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 599 -> 599 bytes .../__pycache__/sale_order.cpython-312.pyc | Bin 15232 -> 15232 bytes .../__pycache__/stock_lot.cpython-312.pyc | Bin 24133 -> 24615 bytes lims_management/models/lims_result.py | 16 +++++++++++++ lims_management/models/lims_test.py | 10 +++++++-- .../views/lims_result_bulk_entry_views.xml | 4 +++- lims_management/views/lims_result_views.xml | 21 ++++++++++++++++++ lims_management/views/lims_test_views.xml | 8 +++++-- lims_management/views/sale_order_views.xml | 4 +++- lims_management/views/stock_lot_views.xml | 8 +++++-- 12 files changed, 63 insertions(+), 8 deletions(-) create mode 100644 documents/logs/Screenshot_6.png create mode 100644 documents/logs/Screenshot_7.png diff --git a/documents/logs/Screenshot_6.png b/documents/logs/Screenshot_6.png new file mode 100644 index 0000000000000000000000000000000000000000..40bcd11e702c038d2799778b99c8574290f06246 GIT binary patch literal 24642 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

k=x6XWyRpP63k0}WtZFk<0Tx0k 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 MyMNX3%LB*%FNi>9%m4rY literal 0 HcmV?d00001 diff --git a/documents/logs/Screenshot_7.png b/documents/logs/Screenshot_7.png new file mode 100644 index 0000000000000000000000000000000000000000..97e42160454c1a11e19b2e8b44fe2d7f6e6b5d38 GIT binary patch literal 12516 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 Tg<$KU1MigX8~o|d|NegiBj(SO literal 0 HcmV?d00001 diff --git a/lims_management/models/__pycache__/__init__.cpython-312.pyc b/lims_management/models/__pycache__/__init__.cpython-312.pyc index caac40f14c9ba79c907cccd332b4c9ca1b491102..9237b71f08f631c3ff788fe1b8a11e5eca560899 100644 GIT binary patch delta 19 Zcmcc4a-D_iG%qg~0}z;A*~sO~1OPP}1j7IT delta 19 Zcmcc4a-D_iG%qg~0}$BE+{oq21OPN01djj! diff --git a/lims_management/models/__pycache__/sale_order.cpython-312.pyc b/lims_management/models/__pycache__/sale_order.cpython-312.pyc index d4ff865cf24ffa38a8bb67c8997050be82c711f5..79626ede326c1beea1b5f4554995680affca8004 100644 GIT binary patch delta 19 ZcmZoDZz$(F&CAQh00gF2Hgc6&0{}R$1zi9D delta 19 ZcmZoDZz$(F&CAQh00c67H*%F(0{}Os1uXyo diff --git a/lims_management/models/__pycache__/stock_lot.cpython-312.pyc b/lims_management/models/__pycache__/stock_lot.cpython-312.pyc index 120db7342250e84e9d14a64826fb91ae9a29aaf4..c5edc30b6b09c5b762e62200ee4158633e75475c 100644 GIT binary patch delta 1425 zcmZuxOH3PA6n$^}8=JB52VHR4FNM(N>|6y6Gph3W!Cs=pvhL+Ae17NJAqkW!p_B&;g=7g=_jMn0Pt#gbbV@jY}52}J8@2j?lvA@4O9{Wg?Ga&6hQ`xa9WMt zb=pvDumYV5P_=|e2<>To0bE$=vI7eMN36pGUxXk1Tj`uGFWwwlk(jn12yN(tfW;Cg zmb3sALGM8kZ4B8}oW_OdCRU>oRnw0B+`j@=jktGv93 z5p}OhN_$F7AX;m1n>q6mj${m?_71?UrO;%jLvOePK2wWen%Qsk{h$qf(fKW{!I6d{ z{Lo?)i&B^E=>1?wQ-*Vzkh#lEWGM7|(BU|ohP}jz!eurq9dsq<_{O=eI(P~K5fe!G zu%=cKqI}T)64vz!78ipQy4&Tl9DRX0f~zXw3epa6smtx?SFeqkg&ZAM723nOj}Un= zXxhW+ibLddi4(X_M$sr(utpy;pLIismV-_d>}q(4DpM+1kXfQ?J5q!5iWK^>>w=!; zs<|4G!ac;FVc9Y6I9I!-9Rw%qP<=>-S@chcF)fCp?92i`pBAEQ?flkj-G4%|rEh^> zjIsjS?Wu6HCpbR#HaEvcldQnMH5FZ&V>uq@o?PljOmB^|L*S!a6vvKap>w^@p%2xE z-GmTA9pO6dV>}Kahi-)DX_LU>!(&@2D)6)EiTIo_A@K9jnN*TTPs6Jk6TW59${TIV z_wW$k0Z&NkR{72HN2Dun0Ov0%zHrtT{)AJQ<}A}J4Gc>po!0_)qeA;-+ONJjWP6k-wk*M-Rqlbd8P$4BQZ@16OfreuBzi1RM~H03Fv zw0o0 zbr>SBwRRI&E8e$G_g^Al<5qG&RKvf~Z^Hs?+ZrEf)#~COKcNI7@pa9AAW2cdu=E7dL292R5i~;5Kt28hWJ5(NPq$XL{vbUpx`7RZ5&Ww zEFOmnPPF+C4T2VN0x48#luHhkQVvK+w33$~86gfmAdZzOk4imtHf8|@#2jY6|DSLE z|C?{tzV$o4_ZzN#Aj>YqhV$;}k<8#+?H^mY?E?I~UZ3s>K`|MCZ+qkxOtH~k5G|fH z3eM_^5aDKV6_Xn1t_wIQ&dY$Y((JG|?DdR*kc}^5it@D(IJNFKWUKHK0}3%9EezVb=RF?eTq)XUqjHH2tg^s zJDu0iPY$Lc1{WF>kaG$+vcE77P<{<8?hC?;Ob9mgD)1`XzT3sJZ7Za*kh<*7MK@z? z_?Yp*GX`xgb?2in7pm_Fk@`Cgvo+OI7_t24D}?O|%Xb*twjR<6C3XUn$T7~kI8j#= zeEZaDl!*3o5^?lPW`&1(3?Gxc8P?^Z5bDj=zyIDeyUnst%L>+JdYh=MC{JS44V6p) z?)SEcjU-MI)!0LtNHfu|3wuzq1p<90{u7?}#pKECMB!+Bd~$fAU>u$IZ-0aF8tC59 z1mErWJ7_W&o=C@zj}?ZEVPaUn1497l|DtZQ1)o^cBWvn~#r_FFHsUOR{()(SY=LJ3 zUnO+r_+lxvZQY; z>s_YawUArV(@T-eiyEwD@k@l29IhZN=U{H<6mEpoyGB;CifUsyvet~O{S}*$woBfM zgc@SskIWQqOkJIt8NKbh{dH+oS1GUs?(f>i>$k+4BIvt^I-S0?26HJN!B%b$vlj3mG{J>u7!2iO7 z0|suLPaWJOhzBw6`sWk}XAd8WB-mes(QNsXVAFrnmhqEha%?zdv_R!>Q}CRGl}o3t M(985SvhXtXe{S6avj6}9 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 @@ - + - +