lims_diagnosis: show diagnosis warning in approval of results report

This commit is contained in:
Adrián Bernardi 2020-05-23 20:12:09 -03:00
parent fce61ce67f
commit 4a243f3f07
9 changed files with 62 additions and 27 deletions

View File

@ -18,6 +18,6 @@
<field name="converted_result"/>
<field name="final_unit"/>
<field name="literal_result"/>
<field name="hide"/>
<field name="comments"/>
<field name="hide"/>
</tree>

View File

@ -26,6 +26,7 @@ def register():
sample.CreateSampleStart,
results_report.ResultsReportVersionDetail,
results_report.ResultsReportVersionDetailSample,
results_report.ResultsReportVersionDetailLine,
results_report.ChangeSampleDiagnosticianStart,
notebook.Notebook,
notebook.NotebookLine,

View File

@ -70,6 +70,10 @@ msgctxt "field:lims.results_report.version.detail,diagnostician:"
msgid "Diagnostician"
msgstr "Diagnosticador"
msgctxt "field:lims.results_report.version.detail.line,diagnosis_warning:"
msgid "Diagnosis Warning"
msgstr "Advertencia de diagnóstico"
msgctxt "field:lims.results_report.version.detail.sample,diagnosis:"
msgid "Diagnosis"
msgstr "Diagnóstico"
@ -83,7 +87,7 @@ msgctxt ""
msgid "States domain"
msgstr "Dominio para Estados"
msgctxt "field:lims.sample,diagnosis_warning:"
msgctxt "field:lims.results_report.version.detail.sample,diagnosis_warning:"
msgid "Diagnosis Warning"
msgstr "Advertencia de diagnóstico"

View File

@ -3,7 +3,7 @@
# the full copyright notices and license terms.
from trytond.model import fields
from trytond.pool import PoolMeta
from trytond.pool import Pool, PoolMeta
__all__ = ['Notebook', 'NotebookLine']
@ -14,10 +14,25 @@ class Notebook(metaclass=PoolMeta):
diagnostician = fields.Function(fields.Many2One('lims.diagnostician',
'Diagnostician'), 'get_sample_field')
diagnosis_warning = fields.Function(fields.Boolean('Diagnosis Warning'),
'get_sample_field')
'get_diagnosis_warning')
@classmethod
def get_diagnosis_warning(cls, notebooks, name):
NotebookLine = Pool().get('lims.notebook.line')
result = {}
for n in notebooks:
lines = NotebookLine.search_count([
('notebook', '=', n.id),
('diagnosis_warning', '=', True),
])
if lines > 0:
result[n.id] = True
else:
result[n.id] = False
return result
class NotebookLine(metaclass=PoolMeta):
__name__ = 'lims.notebook.line'
diagnosis_warning = fields.Boolean('Diagnosis Warning')
diagnosis_warning = fields.Boolean('Diagnosis Warning', select=True)

View File

@ -9,8 +9,8 @@ from trytond.pyson import Eval
from trytond.transaction import Transaction
__all__ = ['ResultsReportVersionDetail', 'ResultsReportVersionDetailSample',
'ResultReport', 'ChangeSampleDiagnosticianStart',
'ChangeSampleDiagnostician']
'ResultsReportVersionDetailLine', 'ResultReport',
'ChangeSampleDiagnosticianStart', 'ChangeSampleDiagnostician']
class ResultsReportVersionDetail(metaclass=PoolMeta):
@ -93,6 +93,8 @@ class ResultsReportVersionDetailSample(metaclass=PoolMeta):
diagnosis_states_domain = fields.Function(fields.Many2Many(
'lims.diagnosis.state', None, None, 'States domain'),
'on_change_with_diagnosis_states_domain')
diagnosis_warning = fields.Function(fields.Boolean('Diagnosis Warning'),
'get_notebook_field')
@fields.depends('version_detail',
'_parent_version_detail.diagnosis_template')
@ -113,6 +115,13 @@ class ResultsReportVersionDetailSample(metaclass=PoolMeta):
return sample_default
class ResultsReportVersionDetailLine(metaclass=PoolMeta):
__name__ = 'lims.results_report.version.detail.line'
diagnosis_warning = fields.Function(fields.Boolean('Diagnosis Warning'),
'get_nline_field')
class ResultReport(metaclass=PoolMeta):
__name__ = 'lims.result_report'

View File

@ -37,12 +37,25 @@
<!-- Results Report Version Detail Sample -->
<record model="ir.ui.view" id="results_report_version_detail_sample_view_list">
<field name="model">lims.results_report.version.detail.sample</field>
<field name="inherit" ref="lims.lims_results_report_version_detail_sample_view_list"/>
<field name="name">results_report_version_detail_sample_list</field>
</record>
<record model="ir.ui.view" id="results_report_version_detail_sample_view_form">
<field name="model">lims.results_report.version.detail.sample</field>
<field name="inherit" ref="lims.lims_results_report_version_detail_sample_view_form"/>
<field name="name">results_report_version_detail_sample_form</field>
</record>
<!-- Results Report Version Detail Line -->
<record model="ir.ui.view" id="results_report_version_detail_line_view_list">
<field name="model">lims.results_report.version.detail.line</field>
<field name="inherit" ref="lims.lims_results_report_version_detail_line_view_list"/>
<field name="name">results_report_version_detail_line_list</field>
</record>
<!-- Wizard Change Sample Diagnostician -->
<record model="ir.ui.view" id="notebook_change_diagnostician_view_form">

View File

@ -3,7 +3,7 @@
# the full copyright notices and license terms.
from trytond.model import fields
from trytond.pool import Pool, PoolMeta
from trytond.pool import PoolMeta
__all__ = ['Sample', 'CreateSampleStart', 'CreateSample']
@ -12,25 +12,6 @@ class Sample(metaclass=PoolMeta):
__name__ = 'lims.sample'
diagnostician = fields.Many2One('lims.diagnostician', 'Diagnostician')
diagnosis_warning = fields.Function(fields.Boolean('Diagnosis Warning'),
'get_diagnosis_warning')
@classmethod
def get_diagnosis_warning(cls, samples, name):
pool = Pool()
NotebookLine = pool.get('lims.notebook.line')
result = {}
for s in samples:
lines = NotebookLine.search_count([
('sample', '=', s.id),
('diagnosis_warning', '=', True),
])
if lines > 0:
result[s.id] = True
else:
result[s.id] = False
return result
@classmethod
def create(cls, vlist):

View File

@ -0,0 +1,6 @@
<?xml version="1.0"?>
<data>
<xpath expr="/tree/field[@name='comments']" position="before">
<field name="diagnosis_warning"/>
</xpath>
</data>

View File

@ -0,0 +1,6 @@
<?xml version="1.0"?>
<data>
<xpath expr="/tree/field[@name='matrix']" position="after">
<field name="diagnosis_warning"/>
</xpath>
</data>