lims_diagnosis: add states images

This commit is contained in:
Sebastián Marró 2020-09-03 14:35:08 -03:00
parent d3fc8957bf
commit bc1c1a1b37
8 changed files with 83 additions and 0 deletions

View file

@ -21,6 +21,7 @@ def register():
analysis.Analysis,
analysis.ProductType,
html_template.DiagnosisState,
html_template.DiagnosisStateImage,
html_template.DiagnosisTemplate,
html_template.DiagnosisTemplateState,
html_template.ReportTemplate,
@ -50,3 +51,6 @@ def register():
results_report.OpenSamplesComparator,
notebook.NotebookLineRepeatAnalysis,
module='lims_diagnosis', type_='wizard')
Pool.register(
results_report.ResultReport,
module='lims_report_html', type_='report')

View file

@ -22,11 +22,24 @@ class DiagnosisState(DictSchemaMixin, ModelSQL, ModelView):
__name__ = 'lims.diagnosis.state'
_rec_name = 'name'
images = fields.One2Many('lims.diagnosis.state.image',
'state', 'Images')
@staticmethod
def default_type_():
return 'selection'
class DiagnosisStateImage(ModelSQL, ModelView):
'Diagnosis State Image'
__name__ = 'lims.diagnosis.state.image'
state = fields.Many2One('lims.diagnosis.state', 'State',
required=True, ondelete='CASCADE', select=True)
name = fields.Char('Name', required=True)
image = fields.Binary('Image', required=True)
class DiagnosisTemplateState(ModelSQL):
'Diagnosis Template - State'
__name__ = 'lims.diagnosis.template-diagnosis.state'

View file

@ -71,6 +71,19 @@
id="menu_diagnosis_state_list"
parent="menu_html_diagnosis_template_list" sequence="10"/>
<!-- Diagnosis State Image -->
<record model="ir.ui.view" id="diagnosis_state_image_view_form">
<field name="model">lims.diagnosis.state.image</field>
<field name="type">form</field>
<field name="name">diagnosis_state_image_form</field>
</record>
<record model="ir.ui.view" id="diagnosis_state_image_view_list">
<field name="model">lims.diagnosis.state.image</field>
<field name="type">tree</field>
<field name="name">diagnosis_state_image_list</field>
</record>
<!-- Results Report Template -->
<record model="ir.ui.view" id="template_view_form">

View file

@ -14,6 +14,22 @@ msgctxt "field:lims.create_sample.start,diagnostician:"
msgid "Diagnostician"
msgstr "Diagnosticador"
msgctxt "field:lims.diagnosis.state,images:"
msgid "Images"
msgstr "Imágenes"
msgctxt "field:lims.diagnosis.state.image,image:"
msgid "Image"
msgstr "Imagen"
msgctxt "field:lims.diagnosis.state.image,name:"
msgid "Name"
msgstr "Nombre"
msgctxt "field:lims.diagnosis.state.image,state:"
msgid "State"
msgstr "Estado"
msgctxt "field:lims.diagnosis.template,content:"
msgid "Content"
msgstr "Contenido"

View file

@ -459,3 +459,27 @@ class Cron(metaclass=PoolMeta):
('lims.samples_comparator|clean_buffer',
'Delete Samples comparison records'),
])
class ResultReport(metaclass=PoolMeta):
__name__ = 'lims.result_report'
@classmethod
def get_context(cls, records, data):
report_context = super().get_context(records, data)
report_context['state_image'] = cls.get_state_image
return report_context
@classmethod
def get_state_image(cls, sample, state):
DiagnosisState = Pool().get('lims.diagnosis.state')
diagnosis_states = DiagnosisState.search([('name', '=', state)])
if not diagnosis_states:
return None
diagnosis_state, = diagnosis_states
for image in diagnosis_state.images:
if image.name == sample.diagnosis_states[state]:
return image.image
return None

View file

@ -6,4 +6,5 @@
<field name="string"/>
<separator id="selection" colspan="4" string="Options"/>
<field name="selection" colspan="4"/>
<field name="images" colspan="4"/>
</form>

View file

@ -0,0 +1,7 @@
<?xml version="1.0"?>
<form>
<label name="name"/>
<field name="name"/>
<label name="image"/>
<field name="image" widget="image"/>
</form>

View file

@ -0,0 +1,5 @@
<?xml version="1.0"?>
<tree>
<field name="name"/>
<field name="image" widget="image"/>
</tree>