diff --git a/lims_diagnosis/locale/es.po b/lims_diagnosis/locale/es.po index 95f1640c..f1d6f235 100644 --- a/lims_diagnosis/locale/es.po +++ b/lims_diagnosis/locale/es.po @@ -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" diff --git a/lims_diagnosis/message.xml b/lims_diagnosis/message.xml index bf1b8599..4a108aed 100644 --- a/lims_diagnosis/message.xml +++ b/lims_diagnosis/message.xml @@ -4,5 +4,8 @@ Notebook Line Acceptance + + Missing diagnosis states + diff --git a/lims_diagnosis/results_report.py b/lims_diagnosis/results_report.py index af3a9a3d..c2ec3f1a 100644 --- a/lims_diagnosis/results_report.py +++ b/lims_diagnosis/results_report.py @@ -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):