lims_report_html: results report: add wizard for uploading attachments to sections
This commit is contained in:
parent
1335e59360
commit
d7f707273a
|
@ -34,12 +34,14 @@ def register():
|
||||||
results_report.ResultsReportVersionDetailTrendChart,
|
results_report.ResultsReportVersionDetailTrendChart,
|
||||||
results_report.ResultsReportVersionDetailSample,
|
results_report.ResultsReportVersionDetailSample,
|
||||||
results_report.GenerateReportStart,
|
results_report.GenerateReportStart,
|
||||||
|
results_report.RelateAttachmentResultsReportStart,
|
||||||
notebook.Notebook,
|
notebook.Notebook,
|
||||||
module='lims_report_html', type_='model')
|
module='lims_report_html', type_='model')
|
||||||
Pool.register(
|
Pool.register(
|
||||||
action.ReportTranslationSet,
|
action.ReportTranslationSet,
|
||||||
sample.CreateSample,
|
sample.CreateSample,
|
||||||
results_report.GenerateReport,
|
results_report.GenerateReport,
|
||||||
|
results_report.RelateAttachmentResultsReport,
|
||||||
module='lims_report_html', type_='wizard')
|
module='lims_report_html', type_='wizard')
|
||||||
Pool.register(
|
Pool.register(
|
||||||
results_report.ResultReport,
|
results_report.ResultReport,
|
||||||
|
|
|
@ -182,6 +182,21 @@ msgctxt "field:lims.results_report.version.detail,trend_charts:"
|
||||||
msgid "Trend Charts"
|
msgid "Trend Charts"
|
||||||
msgstr "Gráficos de tendencia"
|
msgstr "Gráficos de tendencia"
|
||||||
|
|
||||||
|
msgctxt ""
|
||||||
|
"field:lims.results_report.version.detail.relate_attachment.start,attachment:"
|
||||||
|
msgid "Attachment"
|
||||||
|
msgstr "Adjunto"
|
||||||
|
|
||||||
|
msgctxt ""
|
||||||
|
"field:lims.results_report.version.detail.relate_attachment.start,attachment_domain:"
|
||||||
|
msgid "Attachment domain"
|
||||||
|
msgstr "Dominio para Adjunto"
|
||||||
|
|
||||||
|
msgctxt ""
|
||||||
|
"field:lims.results_report.version.detail.relate_attachment.start,position:"
|
||||||
|
msgid "Position"
|
||||||
|
msgstr "Posición"
|
||||||
|
|
||||||
msgctxt "field:lims.results_report.version.detail.sample,attachments:"
|
msgctxt "field:lims.results_report.version.detail.sample,attachments:"
|
||||||
msgid "Attachments"
|
msgid "Attachments"
|
||||||
msgstr "Adjuntos"
|
msgstr "Adjuntos"
|
||||||
|
@ -246,6 +261,11 @@ msgctxt "model:ir.action,name:report_result_report_html"
|
||||||
msgid "Results Report"
|
msgid "Results Report"
|
||||||
msgstr "Informe de resultados"
|
msgstr "Informe de resultados"
|
||||||
|
|
||||||
|
msgctxt ""
|
||||||
|
"model:ir.action,name:wiz_results_report_version_detail_relate_attachment"
|
||||||
|
msgid "Relate Attachment to Results Report"
|
||||||
|
msgstr "Relacionar adjunto a Informe de resultados"
|
||||||
|
|
||||||
msgctxt "model:ir.message,text:msg_no"
|
msgctxt "model:ir.message,text:msg_no"
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "No"
|
msgstr "No"
|
||||||
|
@ -286,6 +306,11 @@ msgctxt "model:lims.report.template.trend.chart,name:"
|
||||||
msgid "Results Report Template Trend Chart"
|
msgid "Results Report Template Trend Chart"
|
||||||
msgstr "Gráfico de tendencia de Plantilla de Informe de resultados"
|
msgstr "Gráfico de tendencia de Plantilla de Informe de resultados"
|
||||||
|
|
||||||
|
msgctxt ""
|
||||||
|
"model:lims.results_report.version.detail.relate_attachment.start,name:"
|
||||||
|
msgid "Relate Attachment to Results Report"
|
||||||
|
msgstr "Relacionar adjunto a Informe de resultados"
|
||||||
|
|
||||||
msgctxt "model:lims.results_report.version.detail.section,name:"
|
msgctxt "model:lims.results_report.version.detail.section,name:"
|
||||||
msgid "Results Report Version Detail Section"
|
msgid "Results Report Version Detail Section"
|
||||||
msgstr "Sección de Detalle de versión de Informe de resultados"
|
msgstr "Sección de Detalle de versión de Informe de resultados"
|
||||||
|
@ -350,6 +375,16 @@ msgctxt "selection:lims.results_report.version.detail,template_type:"
|
||||||
msgid "HTML - Header"
|
msgid "HTML - Header"
|
||||||
msgstr "HTML - Encabezado"
|
msgstr "HTML - Encabezado"
|
||||||
|
|
||||||
|
msgctxt ""
|
||||||
|
"selection:lims.results_report.version.detail.relate_attachment.start,position:"
|
||||||
|
msgid "Following"
|
||||||
|
msgstr "Siguiente"
|
||||||
|
|
||||||
|
msgctxt ""
|
||||||
|
"selection:lims.results_report.version.detail.relate_attachment.start,position:"
|
||||||
|
msgid "Previous"
|
||||||
|
msgstr "Anterior"
|
||||||
|
|
||||||
msgctxt "selection:lims.results_report.version.detail.section,position:"
|
msgctxt "selection:lims.results_report.version.detail.section,position:"
|
||||||
msgid "Following"
|
msgid "Following"
|
||||||
msgstr "Siguiente"
|
msgstr "Siguiente"
|
||||||
|
@ -369,3 +404,17 @@ msgstr "Encabezado y Pie de página"
|
||||||
msgctxt "view:lims.results_report.version.detail:"
|
msgctxt "view:lims.results_report.version.detail:"
|
||||||
msgid "Comments"
|
msgid "Comments"
|
||||||
msgstr "Observaciones"
|
msgstr "Observaciones"
|
||||||
|
|
||||||
|
msgctxt "view:lims.results_report.version.detail:"
|
||||||
|
msgid "Relate Attachment"
|
||||||
|
msgstr "Relacionar archivo adjunto"
|
||||||
|
|
||||||
|
msgctxt ""
|
||||||
|
"wizard_button:lims.results_report.version.detail.relate_attachment,start,end:"
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "Cancelar"
|
||||||
|
|
||||||
|
msgctxt ""
|
||||||
|
"wizard_button:lims.results_report.version.detail.relate_attachment,start,relate:"
|
||||||
|
msgid "Relate"
|
||||||
|
msgstr "Relacionar"
|
||||||
|
|
|
@ -6,6 +6,7 @@ from PyPDF2 import PdfFileMerger
|
||||||
from PyPDF2.utils import PdfReadError
|
from PyPDF2.utils import PdfReadError
|
||||||
|
|
||||||
from trytond.model import ModelView, ModelSQL, fields
|
from trytond.model import ModelView, ModelSQL, fields
|
||||||
|
from trytond.wizard import Wizard, StateTransition, StateView, Button
|
||||||
from trytond.pool import Pool, PoolMeta
|
from trytond.pool import Pool, PoolMeta
|
||||||
from trytond.pyson import Eval, Not, Bool
|
from trytond.pyson import Eval, Not, Bool
|
||||||
from trytond.transaction import Transaction
|
from trytond.transaction import Transaction
|
||||||
|
@ -59,6 +60,12 @@ class ResultsReportVersionDetail(metaclass=PoolMeta):
|
||||||
del cls.resultrange_origin.states['invisible']
|
del cls.resultrange_origin.states['invisible']
|
||||||
if 'required' in cls.resultrange_origin.states:
|
if 'required' in cls.resultrange_origin.states:
|
||||||
del cls.resultrange_origin.states['required']
|
del cls.resultrange_origin.states['required']
|
||||||
|
cls._buttons.update({
|
||||||
|
'relate_attachment': {
|
||||||
|
'invisible': Eval('state').in_(['released', 'annulled']),
|
||||||
|
'depends': ['state'],
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def view_attributes(cls):
|
def view_attributes(cls):
|
||||||
|
@ -243,6 +250,12 @@ class ResultsReportVersionDetail(metaclass=PoolMeta):
|
||||||
def set_comments_plain(cls, records, name, value):
|
def set_comments_plain(cls, records, name, value):
|
||||||
cls.write(records, {'comments': value})
|
cls.write(records, {'comments': value})
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
@ModelView.button_action(
|
||||||
|
'lims_report_html.wiz_results_report_version_detail_relate_attachment')
|
||||||
|
def relate_attachment(cls, details):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class ResultsReportVersionDetailSection(ModelSQL, ModelView):
|
class ResultsReportVersionDetailSection(ModelSQL, ModelView):
|
||||||
'Results Report Version Detail Section'
|
'Results Report Version Detail Section'
|
||||||
|
@ -290,6 +303,92 @@ class ResultsReportVersionDetailTrendChart(ModelSQL, ModelView):
|
||||||
order = fields.Integer('Order')
|
order = fields.Integer('Order')
|
||||||
|
|
||||||
|
|
||||||
|
class RelateAttachmentResultsReportStart(ModelView):
|
||||||
|
'Relate Attachment to Results Report'
|
||||||
|
__name__ = 'lims.results_report.version.detail.relate_attachment.start'
|
||||||
|
|
||||||
|
position = fields.Selection([
|
||||||
|
('previous', 'Previous'),
|
||||||
|
('following', 'Following'),
|
||||||
|
], 'Position', required=True)
|
||||||
|
attachment = fields.Many2One('ir.attachment', 'Attachment', required=True,
|
||||||
|
domain=[('id', 'in', Eval('attachment_domain'))],
|
||||||
|
depends=['attachment_domain'])
|
||||||
|
attachment_domain = fields.Many2Many('ir.attachment', None, None,
|
||||||
|
'Attachment domain')
|
||||||
|
|
||||||
|
|
||||||
|
class RelateAttachmentResultsReport(Wizard):
|
||||||
|
'Relate Attachment to Results Report'
|
||||||
|
__name__ = 'lims.results_report.version.detail.relate_attachment'
|
||||||
|
|
||||||
|
start = StateView(
|
||||||
|
'lims.results_report.version.detail.relate_attachment.start',
|
||||||
|
'lims_report_html.'
|
||||||
|
'results_report_version_detail_relate_attachment_start_form', [
|
||||||
|
Button('Cancel', 'end', 'tryton-cancel'),
|
||||||
|
Button('Relate', 'relate', 'tryton-ok', default=True),
|
||||||
|
])
|
||||||
|
relate = StateTransition()
|
||||||
|
|
||||||
|
def default_start(self, fields):
|
||||||
|
pool = Pool()
|
||||||
|
ResultsDetail = pool.get('lims.results_report.version.detail')
|
||||||
|
|
||||||
|
detail = ResultsDetail(Transaction().context['active_id'])
|
||||||
|
|
||||||
|
attachments = self.get_attachments(detail)
|
||||||
|
return {'attachment_domain': [a.id for a in attachments]}
|
||||||
|
|
||||||
|
def _get_resource(self, obj):
|
||||||
|
return '%s,%s' % (obj.__name__, obj.id)
|
||||||
|
|
||||||
|
def get_attachments(self, detail):
|
||||||
|
pool = Pool()
|
||||||
|
Attachment = pool.get('ir.attachment')
|
||||||
|
|
||||||
|
resources = []
|
||||||
|
resources.append(self._get_resource(detail))
|
||||||
|
for sample in detail.samples:
|
||||||
|
resources.append(self._get_resource(sample))
|
||||||
|
resources.append(self._get_resource(sample.notebook))
|
||||||
|
resources.append(self._get_resource(sample.notebook.fraction))
|
||||||
|
resources.append(self._get_resource(
|
||||||
|
sample.notebook.fraction.sample))
|
||||||
|
resources.append(self._get_resource(
|
||||||
|
sample.notebook.fraction.sample.entry))
|
||||||
|
for line in sample.notebook_lines:
|
||||||
|
if not line.notebook_line:
|
||||||
|
continue
|
||||||
|
resources.append(self._get_resource(line))
|
||||||
|
resources.append(self._get_resource(line.notebook_line))
|
||||||
|
|
||||||
|
attachments = Attachment.search([
|
||||||
|
('resource', 'in', resources),
|
||||||
|
])
|
||||||
|
return attachments
|
||||||
|
|
||||||
|
def transition_relate(self):
|
||||||
|
pool = Pool()
|
||||||
|
ResultsDetailSection = pool.get(
|
||||||
|
'lims.results_report.version.detail.section')
|
||||||
|
|
||||||
|
detail_id = Transaction().context['active_id']
|
||||||
|
defaults = {
|
||||||
|
'version_detail': detail_id,
|
||||||
|
'position': self.start.position,
|
||||||
|
'name': self.start.attachment.name,
|
||||||
|
'data': self.start.attachment.data,
|
||||||
|
'data_id': self.start.attachment.file_id,
|
||||||
|
'order': None,
|
||||||
|
}
|
||||||
|
ResultsDetailSection.create([defaults])
|
||||||
|
return 'end'
|
||||||
|
|
||||||
|
def end(self):
|
||||||
|
return 'reload'
|
||||||
|
|
||||||
|
|
||||||
class ResultsReportVersionDetailSample(metaclass=PoolMeta):
|
class ResultsReportVersionDetailSample(metaclass=PoolMeta):
|
||||||
__name__ = 'lims.results_report.version.detail.sample'
|
__name__ = 'lims.results_report.version.detail.sample'
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,16 @@
|
||||||
<field name="name">results_report_version_detail_form</field>
|
<field name="name">results_report_version_detail_form</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.model.button" id="results_report_version_detail_relate_attachment_button">
|
||||||
|
<field name="name">relate_attachment</field>
|
||||||
|
<field name="model" search="[('model', '=', 'lims.results_report.version.detail')]"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.model.button-res.group"
|
||||||
|
id="results_report_version_detail_relate_attachment_button_group_lims_laboratory_reports">
|
||||||
|
<field name="button" ref="results_report_version_detail_relate_attachment_button"/>
|
||||||
|
<field name="group" ref="lims.group_lims_laboratory_reports"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
<!-- Results Report Version Detail Section -->
|
<!-- Results Report Version Detail Section -->
|
||||||
|
|
||||||
<record model="ir.ui.view" id="results_report_version_detail_section_view_form">
|
<record model="ir.ui.view" id="results_report_version_detail_section_view_form">
|
||||||
|
@ -41,6 +51,19 @@
|
||||||
<field name="name">results_report_version_detail_chart_list</field>
|
<field name="name">results_report_version_detail_chart_list</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<!-- Wizard Relate Attachment to Results Report -->
|
||||||
|
|
||||||
|
<record model="ir.ui.view" id="results_report_version_detail_relate_attachment_start_form">
|
||||||
|
<field name="model">lims.results_report.version.detail.relate_attachment.start</field>
|
||||||
|
<field name="type">form</field>
|
||||||
|
<field name="name">results_report_version_detail_relate_attachment_form</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.action.wizard" id="wiz_results_report_version_detail_relate_attachment">
|
||||||
|
<field name="name">Relate Attachment to Results Report</field>
|
||||||
|
<field name="wiz_name">lims.results_report.version.detail.relate_attachment</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
<!-- Results Report -->
|
<!-- Results Report -->
|
||||||
|
|
||||||
<record model="ir.action.report" id="report_result_report_html">
|
<record model="ir.action.report" id="report_result_report_html">
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
<field name="template_type" colspan="4" invisible="1"/>
|
<field name="template_type" colspan="4" invisible="1"/>
|
||||||
</page>
|
</page>
|
||||||
<page name="sections">
|
<page name="sections">
|
||||||
|
<button name="relate_attachment" colspan="4" string="Relate Attachment"/>
|
||||||
<field name="previous_sections" colspan="4"/>
|
<field name="previous_sections" colspan="4"/>
|
||||||
<field name="following_sections" colspan="4"/>
|
<field name="following_sections" colspan="4"/>
|
||||||
</page>
|
</page>
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<form>
|
||||||
|
<label name="position"/>
|
||||||
|
<field name="position"/>
|
||||||
|
<label name="attachment"/>
|
||||||
|
<field name="attachment"/>
|
||||||
|
</form>
|
Loading…
Reference in New Issue