lims_diagnosis: check for valid diagnosis states

This commit is contained in:
Adrián Bernardi 2020-11-26 09:38:57 -03:00
parent 7c3ebad715
commit 56a05394b3
3 changed files with 24 additions and 0 deletions

View File

@ -268,6 +268,10 @@ msgctxt "model:ir.message,text:lbl_line_acceptance"
msgid "Notebook Line Acceptance"
msgstr "Aceptación de Línea de cuaderno"
msgctxt "model:ir.message,text:msg_invalid_diagnosis_state"
msgid "Missing diagnosis states"
msgstr "Faltan estados de diagnóstico"
msgctxt "model:ir.ui.menu,name:lims_open_samples_comparator_menu"
msgid "Samples Comparator"
msgstr "Comparador de muestras"
@ -288,6 +292,10 @@ msgctxt "model:lims.diagnosis.state,name:"
msgid "Diagnosis State"
msgstr "Estado de Diagnóstico"
msgctxt "model:lims.diagnosis.state.image,name:"
msgid "Diagnosis State Image"
msgstr "Imagen de Estado de diagnóstico"
msgctxt "model:lims.diagnosis.template,name:"
msgid "Diagnosis Template"
msgstr "Plantilla de Diagnóstico"

View File

@ -4,5 +4,8 @@
<record model="ir.message" id="lbl_line_acceptance">
<field name="text">Notebook Line Acceptance</field>
</record>
<record model="ir.message" id="msg_invalid_diagnosis_state">
<field name="text">Missing diagnosis states</field>
</record>
</data>
</tryton>

View File

@ -8,6 +8,7 @@ from trytond.wizard import Wizard, StateTransition, StateView, StateAction, \
from trytond.pool import Pool, PoolMeta
from trytond.pyson import Eval, Not, Bool
from trytond.transaction import Transaction
from trytond.exceptions import UserError
from trytond.i18n import gettext
@ -37,8 +38,20 @@ class ResultsReportVersionDetail(metaclass=PoolMeta):
@classmethod
@ModelView.button
def diagnose(cls, details):
cls.check_diagnosis_states(details)
cls.write(details, {'state': 'diagnosed'})
@classmethod
def check_diagnosis_states(cls, details):
for detail in details:
for sample in detail.samples:
if not sample.diagnosis_states:
continue
for state in sample.diagnosis_states.values():
if state == '*':
raise UserError(gettext(
'lims_diagnosis.msg_invalid_diagnosis_state'))
@fields.depends('template', '_parent_template.diagnosis_template',
methods=['on_change_diagnosis_template'])
def on_change_template(self):