lims_diagnosis: check for valid diagnosis states
This commit is contained in:
parent
7c3ebad715
commit
56a05394b3
|
@ -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"
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue