diff --git a/studies_base/__manifest__.py b/studies_base/__manifest__.py index 7e1852c..eaa5196 100644 --- a/studies_base/__manifest__.py +++ b/studies_base/__manifest__.py @@ -26,6 +26,10 @@ "security/ir.model.access.csv", "views/study_config_views.xml", "views/study_study_views.xml", + "views/study_progress_status_views.xml", + "views/study_questionnaire_views.xml", + "views/study_questionnaire_response_views.xml", + "views/study_participant_views.xml", "views/study_menu.xml", ], # only loaded in demonstration mode diff --git a/studies_base/models/study_participant.py b/studies_base/models/study_participant.py index d6ad134..172e4eb 100644 --- a/studies_base/models/study_participant.py +++ b/studies_base/models/study_participant.py @@ -13,11 +13,11 @@ class StudyParticipant(models.Model): subject = fields.Many2one("res.partner", string="Contact", domain=[("category_patient",'=',1)], readonly=True) firstname = fields.Char("Prénom", related="subject.firstname") lastname = fields.Char("Nom", related="subject.lastname") - progress_status = fields.Many2one("study.participant.progress.status", string="Statut de la participation") - state = fields.Many2one("study.participant.state", string="État de la participation") + progress_status = fields.Many2one("study.participant.progress.status", string="Statut de la participation", readonly=True) + state = fields.Many2one("study.participant.state", string="État de la participation", readonly=True) part_of_author = fields.Many2one("study.author", string="Platforme d'étude", related="part_of.author") - author = fields.Char("ID plateforme") - identifier = fields.Char("Idientifiants de l'enrôlement") + author = fields.Char("ID plateforme", readonly=True) + identifier = fields.Char("Idientifiants de l'enrôlement", readonly=True) - #questionnaire_responses = fields.One2many("study.questionnaire.response", "study_questionnaire_id", string="Réponses") + questionnaire_responses = fields.One2many("study.questionnaire.response", "study_participant_id", string="Réponses") diff --git a/studies_base/models/study_progress_status.py b/studies_base/models/study_progress_status.py index f4de451..f6fbc43 100644 --- a/studies_base/models/study_progress_status.py +++ b/studies_base/models/study_progress_status.py @@ -7,6 +7,8 @@ from odoo.exceptions import UserError class StudyProgressStatus(models.Model): _name = "study.progress.status" + _rec_name = 'state' + study_id = fields.Many2one("study.study", string="Étude") state = fields.Selection([ ('DRAFT', 'Brouillon'), diff --git a/studies_base/models/study_questionnaire.py b/studies_base/models/study_questionnaire.py index 6d40f6d..644a6d3 100644 --- a/studies_base/models/study_questionnaire.py +++ b/studies_base/models/study_questionnaire.py @@ -10,7 +10,7 @@ class StudyQuestionnaire(models.Model): title = fields.Char("Nom du questionnaire") name = fields.Char("Acronyme") - progress_status = fields.Many2one("study.progress.status", string="Statut du questionnaire") + progress_status = fields.Many2one("study.questionnaire.progress.status", string="Statut du questionnaire") 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") @@ -20,7 +20,7 @@ class StudyQuestionnaire(models.Model): category = fields.Many2one("study.questionnaire.category", string="Catégorie de questionnaire") type = fields.Many2one("study.questionnaire.type", string="Type de questionnaire") purpose = fields.Text("Objectif") - subject_type = fields.Many2one("questionnaire.subject.type", string="Sujets") + subject_type = fields.Many2one("study.questionnaire.subject.type", string="Sujets") description = fields.Text("Description du questionnaire") jurisdiction = fields.Many2many("study.region", string="Zones géographiques ciblées") @@ -40,11 +40,11 @@ class StudyQuestionnaire(models.Model): repeat_delay = fields.Integer("Délai de répétition") repeat_delay_type = fields.Selection([("d", "Jour"), ("m", "Mois"), ("y", "Année")], string="Type de délai de répétition") following = fields.Many2one("study.questionnaire", string="Questionnaire précédent") - following_repeat_delay = fields.Integer("Délai avec le questionnaire précédent") - following_repeat_delay_type = fields.Selection([("d", "Jour"), ("m", "Mois"), ("y", "Année")], string="Type de délai avec le questionnaire précédent") + following_delay = fields.Integer("Délai avec le questionnaire précédent") + following_delay_type = fields.Selection([("d", "Jour"), ("m", "Mois"), ("y", "Année")], string="Type de délai avec le questionnaire précédent") preceding = fields.Many2one("study.questionnaire", string="Questionnaire suivant") - preceding_repeat_delay = fields.Integer("Délai avec le questionnaire suivant") - preceding_repeat_delay_type = fields.Selection([("d", "Jour"), ("m", "Mois"), ("y", "Année")], string="Type de délai avec le questionnaire suivant") + preceding_delay = fields.Integer("Délai avec le questionnaire suivant") + preceding_delay_type = fields.Selection([("d", "Jour"), ("m", "Mois"), ("y", "Année")], string="Type de délai avec le questionnaire suivant") copyright = fields.Text("Copyright") copyright_label = fields.Char("Propriétaire et année du copyright") \ No newline at end of file diff --git a/studies_base/models/study_questionnaire_response.py b/studies_base/models/study_questionnaire_response.py index 710625c..b741c65 100644 --- a/studies_base/models/study_questionnaire_response.py +++ b/studies_base/models/study_questionnaire_response.py @@ -16,11 +16,11 @@ class StudyQuestionnaireResponse(models.Model): author = fields.Many2one("study.author", string="Platform d'étude", readonly=True) identifier_author = fields.Char("ID plateforme", readonly=True) - redirect_url = fields.Char("Lien personnel de redirection vers le questionnaire") + redirect_url = fields.Char("Lien personnel de redirection vers le questionnaire", readonly=True) - study_id = fields.Many2one("study.study", "Étude") - study_questionnaire_id = fields.Many2one("study.questionnaire", string="Questionnaire") - study_participant_id = fields.Many2one("study.participant", string="Participation") + study_id = fields.Many2one("study.study", "Étude", readonly=True) + study_questionnaire_id = fields.Many2one("study.questionnaire", string="Questionnaire", readonly=True) + study_participant_id = fields.Many2one("study.participant", string="Participation", readonly=True) source = fields.Many2one("res.partner", string="Contact", domain=[("category_patient",'=',1)], readonly=True) firstname = fields.Char("Prénom", related="source.firstname") diff --git a/studies_base/views/study_config_views.xml b/studies_base/views/study_config_views.xml index df81633..50c0bfe 100644 --- a/studies_base/views/study_config_views.xml +++ b/studies_base/views/study_config_views.xml @@ -313,7 +313,7 @@ - + + + + + diff --git a/studies_base/views/study_participant_views.xml b/studies_base/views/study_participant_views.xml new file mode 100644 index 0000000..4116cd7 --- /dev/null +++ b/studies_base/views/study_participant_views.xml @@ -0,0 +1,86 @@ + + + + + study.participant.tree + study.participant + + + + + + + + + + + + + study.participant.form + study.participant + +
+
+ +
+ +
+ +
+ +
+

+

+

+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + + + Participants + ir.actions.act_window + study.participant + + +
\ No newline at end of file diff --git a/studies_base/views/study_progress_status_views.xml b/studies_base/views/study_progress_status_views.xml new file mode 100644 index 0000000..a1fe61f --- /dev/null +++ b/studies_base/views/study_progress_status_views.xml @@ -0,0 +1,43 @@ + + + + + study.progress.status.tree + study.progress.status + + + + + + + + + + + + + + study.progress.status.form + study.progress.status + +
+ + + + + + + +
+
+
+ + + + + Statuts d'avancement des études + ir.actions.act_window + study.progress.status + + +
\ No newline at end of file diff --git a/studies_base/views/study_questionnaire_response_views.xml b/studies_base/views/study_questionnaire_response_views.xml new file mode 100644 index 0000000..09eb33f --- /dev/null +++ b/studies_base/views/study_questionnaire_response_views.xml @@ -0,0 +1,92 @@ + + + + + study.questionnaire.response.response.tree + study.questionnaire.response + + + + + + + + + + + + + + + study.questionnaire.response.response.form + study.questionnaire.response + +
+
+ +
+ +
+ +
+ +
+

+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + + + Réponses aux questionnaires + ir.actions.act_window + study.questionnaire.response + + +
\ No newline at end of file diff --git a/studies_base/views/study_questionnaire_views.xml b/studies_base/views/study_questionnaire_views.xml new file mode 100644 index 0000000..9fad061 --- /dev/null +++ b/studies_base/views/study_questionnaire_views.xml @@ -0,0 +1,120 @@ + + + + + study.questionnaire.tree + study.questionnaire + + + + + + + + + + + + + + study.questionnaire.form + study.questionnaire + +
+
+ +
+ +
+ +
+ +
+

+

+

+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + + + Questionnaires + ir.actions.act_window + study.questionnaire + + +
\ No newline at end of file diff --git a/studies_base/views/study_study_views.xml b/studies_base/views/study_study_views.xml index d29d04c..20eeb5f 100644 --- a/studies_base/views/study_study_views.xml +++ b/studies_base/views/study_study_views.xml @@ -1,18 +1,22 @@ - + study.study.tree study.study - + + + + + - + study.study.form study.study