From c936cceda25f713de92bf9ccea55a893d43f5a9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Bernardi?= Date: Tue, 3 May 2022 17:57:17 -0300 Subject: [PATCH] lims_analysis_sheet: add planning date and activation date and user --- lims_analysis_sheet/locale/es.po | 12 ++++++++++++ lims_analysis_sheet/sheet.py | 13 +++++++++++++ lims_analysis_sheet/view/analysis_sheet_form.xml | 6 ++++++ 3 files changed, 31 insertions(+) diff --git a/lims_analysis_sheet/locale/es.po b/lims_analysis_sheet/locale/es.po index fb3c56d..2cbf48f 100644 --- a/lims_analysis_sheet/locale/es.po +++ b/lims_analysis_sheet/locale/es.po @@ -2,6 +2,14 @@ msgid "" msgstr "Content-Type: text/plain; charset=utf-8\n" +msgctxt "field:lims.analysis_sheet,activated_by:" +msgid "Activated By" +msgstr "Activada por" + +msgctxt "field:lims.analysis_sheet,activated_date:" +msgid "Activated Date" +msgstr "Fecha Activación" + msgctxt "field:lims.analysis_sheet,compilation:" msgid "Compilation" msgstr "Compilación" @@ -42,6 +50,10 @@ msgctxt "field:lims.analysis_sheet,planification:" msgid "Planification" msgstr "Planificación" +msgctxt "field:lims.analysis_sheet,planning_date:" +msgid "Planning Date" +msgstr "Fecha Planificación" + msgctxt "field:lims.analysis_sheet,professional:" msgid "Professional" msgstr "Profesional" diff --git a/lims_analysis_sheet/sheet.py b/lims_analysis_sheet/sheet.py index 6e3eb57..8addbfc 100644 --- a/lims_analysis_sheet/sheet.py +++ b/lims_analysis_sheet/sheet.py @@ -396,6 +396,8 @@ class AnalysisSheet(Workflow, ModelSQL, ModelView): ], 'State', required=True, readonly=True) planification = fields.Many2One('lims.planification', 'Planification', readonly=True) + planning_date = fields.Function(fields.Date('Planning Date'), + 'get_planning_date', searcher='search_planning_date') partial_analysys = fields.Function(fields.Boolean('Partial analysis'), 'get_fields') completion_percentage = fields.Function(fields.Numeric('Complete', @@ -408,6 +410,9 @@ class AnalysisSheet(Workflow, ModelSQL, ModelView): file_id='report_cache_id', store_prefix='analysis_sheet') report_cache_id = fields.Char('Report ID', readonly=True) report_format = fields.Char('Report Format', readonly=True) + activated_by = fields.Many2One('lims.laboratory.professional', + 'Activated By', readonly=True) + activated_date = fields.DateTime('Activated Date', readonly=True) validated_by = fields.Many2One('lims.laboratory.professional', 'Validated By', readonly=True) validated_date = fields.DateTime('Validated Date', readonly=True) @@ -489,6 +494,13 @@ class AnalysisSheet(Workflow, ModelSQL, ModelView): return field.convert_order('date_time', compilation_tables, Compilation) + def get_planning_date(self, name): + return self.planification and self.planification.date or None + + @classmethod + def search_planning_date(cls, name, clause): + return [('planification.date',) + tuple(clause[1:])] + @classmethod def get_fields(cls, sheets, names): cursor = Transaction().connection.cursor() @@ -649,6 +661,7 @@ class AnalysisSheet(Workflow, ModelSQL, ModelView): @classmethod @ModelView.button @Workflow.transition('active') + @set_state_info('activated') def activate(cls, sheets): pool = Pool() Data = pool.get('lims.interface.data') diff --git a/lims_analysis_sheet/view/analysis_sheet_form.xml b/lims_analysis_sheet/view/analysis_sheet_form.xml index a000f69..9952583 100644 --- a/lims_analysis_sheet/view/analysis_sheet_form.xml +++ b/lims_analysis_sheet/view/analysis_sheet_form.xml @@ -24,7 +24,13 @@