lims: results report: ask for review reason when generating new version

This commit is contained in:
Adrián Bernardi 2021-06-08 18:24:45 -03:00
parent 56197c4d1e
commit 649463b0c2
5 changed files with 62 additions and 11 deletions

View File

@ -5148,6 +5148,14 @@ msgctxt "field:lims.results_report.version.detail,resultrange_origin:"
msgid "Origin"
msgstr "Origen"
msgctxt "field:lims.results_report.version.detail,review_reason:"
msgid "Review reason"
msgstr "Motivo de revisión"
msgctxt "field:lims.results_report.version.detail,review_reason_print:"
msgid "Print review reason in next version"
msgstr "Imprimir motivo de revisión en próxima versión"
msgctxt "field:lims.results_report.version.detail,revision_date:"
msgid "Revision date"
msgstr "Fecha de revisión"
@ -5283,6 +5291,16 @@ msgctxt ""
msgid "Report created"
msgstr "Informe creado"
msgctxt ""
"field:lims.results_report.version.detail.new_version.start,review_reason:"
msgid "Review reason"
msgstr "Motivo de revisión"
msgctxt ""
"field:lims.results_report.version.detail.new_version.start,review_reason_print:"
msgid "Print review reason in next version"
msgstr "Imprimir motivo de revisión en próxima versión"
msgctxt "field:lims.results_report.version.detail.new_version.start,type:"
msgid "Type"
msgstr "Tipo"
@ -14134,10 +14152,6 @@ msgctxt "view:lims.results_report.version.detail:"
msgid "Annull"
msgstr "Anular"
msgctxt "view:lims.results_report.version.detail:"
msgid "Annulment reason"
msgstr "Motivo de anulación"
msgctxt "view:lims.results_report.version.detail:"
msgid "Dates"
msgstr "Fechas"
@ -14158,6 +14172,10 @@ msgctxt "view:lims.results_report.version.detail:"
msgid "Release for all languages"
msgstr "Publicar para todos los idiomas"
msgctxt "view:lims.results_report.version.detail:"
msgid "Review"
msgstr "Revisión"
msgctxt "view:lims.results_report.version.detail:"
msgid "Revised"
msgstr "Revisado"

View File

@ -496,6 +496,11 @@ class ResultsReportVersionDetail(Workflow, ModelSQL, ModelView):
revision_date = fields.DateTime('Revision date', readonly=True)
release_uid = fields.Many2One('res.user', 'Release user', readonly=True)
release_date = fields.DateTime('Release date', readonly=True)
review_reason = fields.Text('Review reason', translate=True,
states={'readonly': True})
review_reason_print = fields.Boolean(
'Print review reason in next version',
states={'readonly': True})
annulment_uid = fields.Many2One('res.user', 'Annulment user',
readonly=True)
annulment_date = fields.DateTime('Annulment date', readonly=True)
@ -3461,6 +3466,7 @@ class ResultsReportAnnulation(Wizard):
'annulment_uid': int(Transaction().user),
'annulment_date': datetime.now(),
'annulment_reason': self.start.annulment_reason,
'annulment_reason_print': self.start.annulment_reason_print,
})
return 'end'
@ -3479,9 +3485,17 @@ class NewResultsReportVersionStart(ModelView):
states={'invisible': ~Eval('type').in_([
'complementary', 'corrective'])},
depends=['type'])
review_reason = fields.Text('Review reason', required=True,
translate=True)
review_reason_print = fields.Boolean(
'Print review reason in next version')
report_created = fields.Many2One('lims.results_report.version.detail',
'Report created')
@staticmethod
def default_review_reason_print():
return False
@fields.depends('preliminary', 'corrective')
def on_change_with_type(self, name=None):
if self.preliminary:
@ -3528,6 +3542,11 @@ class NewResultsReportVersion(Wizard):
new_version, = ResultsDetail.create([defaults])
ResultsDetail.update_from_valid_version([new_version])
self.start.report_created = new_version
ResultsDetail.write([valid_detail], {
'review_reason': self.start.review_reason,
'review_reason_print': self.start.review_reason_print,
})
return 'open_'
def do_open_(self, action):
@ -4133,15 +4152,20 @@ class ResultReport(Report):
report_context['comments'] += gettext('lims.msg_obs_rm_c_f')
report_context['annulment_reason'] = ''
report_context['review_reason'] = ''
if report.number != '1':
with Transaction().set_context(language=lang_code):
prev_report = ResultsDetail.search([
('report_version', '=', report.report_version.id),
('number', '=', str(int(report.number) - 1)),
])
if prev_report and prev_report[0].annulment_reason_print:
report_context['annulment_reason'] = (
prev_report[0].annulment_reason)
if prev_report:
if prev_report[0].annulment_reason_print:
report_context['annulment_reason'] = (
prev_report[0].annulment_reason)
if prev_report[0].review_reason_print:
report_context['review_reason'] = (
prev_report[0].review_reason)
return report_context

View File

@ -1,6 +1,6 @@
<?xml version="1.0"?>
<form>
<separator string="Annulment reason" colspan="4" id="annulment_reason"/>
<separator name="annulment_reason" colspan="4"/>
<field name="annulment_reason" colspan="4"/>
<label name="annulment_reason_print"/>
<field name="annulment_reason_print"/>

View File

@ -40,13 +40,18 @@
<field name="fractions_comments" colspan="4"/>
</page>
<page id="annulation" string="Annulation">
<separator name="annulment_reason" colspan="4"/>
<field name="annulment_reason" colspan="4"/>
<label name="annulment_date"/>
<field name="annulment_date"/>
<label name="annulment_reason_print"/>
<field name="annulment_reason_print"/>
<separator id="annulment_reason" colspan="4"
string="Annulment reason"/>
<field name="annulment_reason" colspan="4"/>
</page>
<page id="review" string="Review">
<separator name="review_reason" colspan="4"/>
<field name="review_reason" colspan="4"/>
<label name="review_reason_print"/>
<field name="review_reason_print"/>
</page>
<page id="dates" string="Dates">
<label name="create_date2"/>

View File

@ -4,6 +4,10 @@
<field name="type"/>
<label name="corrective"/>
<field name="corrective" xexpand="0"/>
<separator name="review_reason" colspan="4"/>
<field name="review_reason" colspan="4"/>
<label name="review_reason_print"/>
<field name="review_reason_print"/>
<group id="invisible" colspan="4" col="1">
<field name="preliminary" invisible="1"/>
</group>