diff --git a/studies_base/models/study_progress_status.py b/studies_base/models/study_progress_status.py index f6fbc43..9e85dae 100644 --- a/studies_base/models/study_progress_status.py +++ b/studies_base/models/study_progress_status.py @@ -18,5 +18,5 @@ class StudyProgressStatus(models.Model): ('COMPLETED', 'Terminée'), ('WITHDRAWN', 'Annulé')], string="Avancement de l'étude") actual = fields.Boolean("Statut actuel") - date_begin = fields.Date("Date de début de l'état") - date_end = fields.Date("Date de fin de l'état") \ No newline at end of file + date_begin = fields.Datetime("Date de début de l'état") + date_end = fields.Datetime("Date de fin de l'état") diff --git a/studies_base/models/study_questionnaire.py b/studies_base/models/study_questionnaire.py index e390247..8163e69 100644 --- a/studies_base/models/study_questionnaire.py +++ b/studies_base/models/study_questionnaire.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- -from odoo import api, fields, models, _ -from odoo import osv -from odoo.exceptions import UserError +from odoo import api, fields, models class StudyQuestionnaire(models.Model): @@ -35,11 +33,34 @@ class StudyQuestionnaire(models.Model): copyright = fields.Text("Copyright") copyright_label = fields.Char("Propriétaire et année du copyright") - created = fields.Datetime("Created") - date = fields.Datetime("Date") + created = fields.Datetime("Created", compute="_compute_created", readonly=True) + date = fields.Datetime("Date", compute="_compute_updated", readonly=True) + + @api.depends("create_date") + def _compute_created(self): + for record in self: + if not record.created: + record.created = record.create_date + + @api.depends("write_date") + def _compute_updated(self): + for record in self: + record.date = record.write_date active = fields.Boolean("Actif", default=True) def copy(self, default=None): default = dict(default or {}, identifier_primary_id=None) return super().copy(default) + + @api.depends("title", "name") + def name_get(self): + result = [] + for questionnaire in self: + if not questionnaire.name: + result.append((questionnaire.id, questionnaire.title)) + else: + result.append( + (questionnaire.id, f"[{questionnaire.name}] {questionnaire.title}") + ) + return result diff --git a/studies_base/models/study_study.py b/studies_base/models/study_study.py index 00553f6..056850c 100644 --- a/studies_base/models/study_study.py +++ b/studies_base/models/study_study.py @@ -2,6 +2,9 @@ from odoo import api, fields, models, _ from odoo import osv from odoo.exceptions import UserError +import logging + +_logger = logging.getLogger(__name__) class StudyStudy(models.Model): @@ -10,10 +13,12 @@ class StudyStudy(models.Model): title = fields.Char("Nom de l'étude") name = fields.Char("Acronyme") - period_start = fields.Date("Début de l'étude") - period_end = fields.Date("Fin de l'étude") + period_start = fields.Datetime("Début de l'étude") + period_end = fields.Datetime("Fin de l'étude") progress_status_id = fields.Many2one( - "study.progress.status", string="Avancement de l'étude" + "study.progress.status", + string="Avancement de l'étude", + domain="[('study_id', '=', id)]", ) # should be computed to actual progress status progress_status = fields.One2many( "study.progress.status", "study_id", "All progress status" @@ -72,8 +77,24 @@ class StudyStudy(models.Model): note = fields.Text("Annotations") - created = fields.Datetime("Created") - updated = fields.Datetime("Updated") + created = fields.Datetime( + "Created", readonly=True, compute="_compute_created", store=True + ) + updated = fields.Datetime( + "Updated", readonly=True, compute="_compute_updated", store=True + ) + + @api.depends("create_date") + def _compute_created(self): + for record in self: + if not record.created: + record.created = record.create_date + + @api.depends("write_date") + def _compute_updated(self): + for record in self: + _logger.info(f"Record ID: {record.id}, write_date: {record.write_date}") + record.updated = record.write_date active = fields.Boolean("Actif", default=True) @@ -83,4 +104,6 @@ class StudyStudy(models.Model): @api.depends("title", "name") def name_get(self): + if not self.name: + return [(study.id, study.title) for study in self] return [(study.id, f"[{study.name}] {study.title}") for study in self] diff --git a/studies_base/views/study_questionnaire_views.xml b/studies_base/views/study_questionnaire_views.xml index 066fcb0..bcf6e11 100644 --- a/studies_base/views/study_questionnaire_views.xml +++ b/studies_base/views/study_questionnaire_views.xml @@ -3,13 +3,13 @@ study.questionnaire.tree - study.questionnaire + study.questionnaire - - - - - + + + + + @@ -17,7 +17,7 @@ study.questionnaire.form - study.questionnaire + study.questionnaire
@@ -27,7 +27,7 @@
- +