Files
study-tools/studies_base/models/study_questionnaire.py

67 lines
2.3 KiB
Python

# -*- coding: utf-8 -*-
from odoo import api, fields, models
class StudyQuestionnaire(models.Model):
_name = "study.questionnaire"
title = fields.Char("Nom du questionnaire")
name = fields.Char("Acronyme")
approval_date = fields.Datetime("Date d'approbation")
last_review_date = fields.Datetime("Dernière relecture")
effective_period_start = fields.Datetime("Début de la collecte")
effective_period_end = fields.Datetime("Fin de la collecte")
purpose = fields.Text("Objectif")
subject_type = fields.Many2many("study.questionnaire.subject.type", string="Sujets")
description = fields.Text("Description du questionnaire")
jurisdiction = fields.Many2many(
"study.region", string="Zones géographiques ciblées"
)
derived_from = fields.Many2one("study.questionnaire", string="Dérivé de")
version = fields.Char("Version")
status = fields.Many2one(
"study.questionnaire.status", string="Statut de publication"
)
experimental = fields.Boolean("Questionnaire de test")
identifier_author = fields.Char("ID plateforme")
identifier_primary_id = fields.Char("Identifiant Seintinelles", readonly=True)
copyright = fields.Text("Copyright")
copyright_label = fields.Char("Propriétaire et année du copyright")
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