From 10b71eb44f13e12c542ad553a85d7bd6ac27abb3 Mon Sep 17 00:00:00 2001 From: clementthomas Date: Wed, 17 Jul 2024 12:20:25 +0200 Subject: [PATCH] [IMP] studies_base: Studies vue + progress status and state and status fields, views, and values --- studies_base/__manifest__.py | 6 +- studies_base/data/studies_base_data.xml | 180 +++++++++++++++ studies_base/models/__init__.py | 1 + .../study_participant_progress_status.py | 1 + .../models/study_participant_state.py | 1 + studies_base/models/study_progress_status.py | 12 +- .../study_questionnaire_progress_status.py | 13 ++ ..._questionnaire_response_progress_status.py | 1 + .../study_questionnaire_response_state.py | 1 + .../models/study_questionnaire_status.py | 1 + studies_base/models/study_status.py | 1 + studies_base/models/study_study.py | 4 +- studies_base/security/ir.model.access.csv | 3 +- studies_base/views/study_config_views.xml | 214 ++++++++++++------ studies_base/views/study_menu.xml | 7 +- studies_base/views/study_study_views.xml | 89 +++++++- 16 files changed, 454 insertions(+), 81 deletions(-) create mode 100644 studies_base/data/studies_base_data.xml create mode 100644 studies_base/models/study_questionnaire_progress_status.py diff --git a/studies_base/__manifest__.py b/studies_base/__manifest__.py index b5c28e2..7e1852c 100644 --- a/studies_base/__manifest__.py +++ b/studies_base/__manifest__.py @@ -21,10 +21,12 @@ }, # always loaded "data": [ - # "security/security.xml", - "views/study_menu.xml", + # "security/security.xml", + "data/studies_base_data.xml", + "security/ir.model.access.csv", "views/study_config_views.xml", "views/study_study_views.xml", + "views/study_menu.xml", ], # only loaded in demonstration mode "demo": [], diff --git a/studies_base/data/studies_base_data.xml b/studies_base/data/studies_base_data.xml new file mode 100644 index 0000000..bd2119b --- /dev/null +++ b/studies_base/data/studies_base_data.xml @@ -0,0 +1,180 @@ + + + + + + + Brouillon + DRAFT + + + + Publiée + ACTIVE + + + + Retirée + RETIRED + + + + Inconnu + UNKNOWN + + + + + Inscrit + REGISTRED + + + + En cours + ACTIVE + + + + Terminé + COMPLETED + + + + + + Inclu + INCLUDED + + + + Exclu + EXCLUDED + + + + Indéterminé + UNKNOWN + + + + Retiré + WITHDRAWN + + + + + + Brouillon + DRAFT + + + + Validé + VALIDATED + + + + Collecte en cours + ACTIVE + + + + Terminée + COMPLETED + + + + Annulé + WITHDRAWN + + + + + + + + Brouillon + DRAFT + + + + Publiée + ACTIVE + + + + Retirée + RETIRED + + + + Inconnu + UNKNOWN + + + + + + + + Non commencé + NOT-STARTED + + + + Partiellement rempli + IN-PROGRESS + + + + Complété + COMPLETED + + + + Modifié + AMENDED + + + + Rempli pas erreur ou annulé + ENTERED-IN-ERROR + + + + Abandonné + STOPPED + + + + Annulée + CANCELED + + + + + + + + + + Inclu + INCLUDED + + + + Exclu + EXCLUDED + + + + Indéterminé + UNKNOWN + + + + Retiré + WITHDRAWN + + + diff --git a/studies_base/models/__init__.py b/studies_base/models/__init__.py index c57f4b0..60dce30 100644 --- a/studies_base/models/__init__.py +++ b/studies_base/models/__init__.py @@ -14,6 +14,7 @@ from . import study_type from . import study_questionnaire_category from . import study_questionnaire_response from . import study_questionnaire_status +from . import study_questionnaire_progress_status from . import study_questionnaire_subject_type from . import study_questionnaire_type from . import study_participant_progress_status diff --git a/studies_base/models/study_participant_progress_status.py b/studies_base/models/study_participant_progress_status.py index dbbcf70..e113dcb 100644 --- a/studies_base/models/study_participant_progress_status.py +++ b/studies_base/models/study_participant_progress_status.py @@ -8,5 +8,6 @@ class StudyParticipantProgressStatus(models.Model): _name = "study.participant.progress.status" name = fields.Char("Name") + value = fields.Char("Value") sequence = fields.Integer("Sequence") diff --git a/studies_base/models/study_participant_state.py b/studies_base/models/study_participant_state.py index 32814f9..1067192 100644 --- a/studies_base/models/study_participant_state.py +++ b/studies_base/models/study_participant_state.py @@ -9,4 +9,5 @@ class StudyParticipantState(models.Model): name = fields.Char("Name") sequence = fields.Integer("Sequence") + value = fields.Char("Value") diff --git a/studies_base/models/study_progress_status.py b/studies_base/models/study_progress_status.py index ef64609..f4de451 100644 --- a/studies_base/models/study_progress_status.py +++ b/studies_base/models/study_progress_status.py @@ -7,4 +7,14 @@ from odoo.exceptions import UserError class StudyProgressStatus(models.Model): _name = "study.progress.status" - \ No newline at end of file + study_id = fields.Many2one("study.study", string="Étude") + state = fields.Selection([ + ('DRAFT', 'Brouillon'), + ('NOT-YET-RECRUITING', 'À venir'), + ('RECRUITING', 'En cours de recrutement'), + ('ACTIVE-BUT-NOT-RECRUITING', 'Active mais ne recrute plus'), + ('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 diff --git a/studies_base/models/study_questionnaire_progress_status.py b/studies_base/models/study_questionnaire_progress_status.py new file mode 100644 index 0000000..e01c102 --- /dev/null +++ b/studies_base/models/study_questionnaire_progress_status.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +from odoo import api, fields, models, _ +from odoo import osv +from odoo.exceptions import UserError + + +class StudyQuestionnaireProgressStatus(models.Model): + _name = "study.questionnaire.progress.status" + + name = fields.Char("Name") + value = fields.Char("Value") + sequence = fields.Integer("Sequence") + diff --git a/studies_base/models/study_questionnaire_response_progress_status.py b/studies_base/models/study_questionnaire_response_progress_status.py index c5d5818..a03f3e6 100644 --- a/studies_base/models/study_questionnaire_response_progress_status.py +++ b/studies_base/models/study_questionnaire_response_progress_status.py @@ -8,5 +8,6 @@ class StudyQuestionnaireResponseProgressStatus(models.Model): _name = "study.questionnaire.response.progress.status" name = fields.Char("Name") + value = fields.Char("Value") sequence = fields.Integer("Sequence") diff --git a/studies_base/models/study_questionnaire_response_state.py b/studies_base/models/study_questionnaire_response_state.py index f93ffc6..54e1fb8 100644 --- a/studies_base/models/study_questionnaire_response_state.py +++ b/studies_base/models/study_questionnaire_response_state.py @@ -8,5 +8,6 @@ class StudyQuestionnaireResponseState(models.Model): _name = "study.questionnaire.response.state" name = fields.Char("Name") + value = fields.Char("Value") sequence = fields.Integer("Sequence") diff --git a/studies_base/models/study_questionnaire_status.py b/studies_base/models/study_questionnaire_status.py index f71fda2..45d507a 100644 --- a/studies_base/models/study_questionnaire_status.py +++ b/studies_base/models/study_questionnaire_status.py @@ -8,5 +8,6 @@ class StudyQuestionnaireStatus(models.Model): _name = "study.questionnaire.status" name = fields.Char("Name") + value = fields.Char("Value") sequence = fields.Integer("Sequence") diff --git a/studies_base/models/study_status.py b/studies_base/models/study_status.py index 849e39f..c7aa565 100644 --- a/studies_base/models/study_status.py +++ b/studies_base/models/study_status.py @@ -8,5 +8,6 @@ class StudStatus(models.Model): _name = "study.status" name = fields.Char("Name") + value = fields.Char("Value") sequence = fields.Integer("Sequence") diff --git a/studies_base/models/study_study.py b/studies_base/models/study_study.py index c4d85e9..e9e42df 100644 --- a/studies_base/models/study_study.py +++ b/studies_base/models/study_study.py @@ -7,6 +7,8 @@ from odoo.exceptions import UserError class StudyStudy(models.Model): _name = "study.study" + _inherit = ['mail.thread'] + title = fields.Char("Nom de l'étude") name = fields.Char("Acronyme") @@ -24,7 +26,7 @@ class StudyStudy(models.Model): ppc_reference = fields.Char("Référence Comité de Protection des Personnes") version = fields.Char("Version") phase = fields.Many2one("study.phase", string="Phase") - status = fields.Many2one("study.status", string="Status") + status = fields.Many2one("study.status", string="Status de la publication") site = fields.Many2one("res.partner", string="Lieu de l'étude") author = fields.Many2one("study.author", string="Platforme technique d'étude") diff --git a/studies_base/security/ir.model.access.csv b/studies_base/security/ir.model.access.csv index 719321a..a9c9b02 100644 --- a/studies_base/security/ir.model.access.csv +++ b/studies_base/security/ir.model.access.csv @@ -1,7 +1,5 @@ id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink access_study_author_admin,study.author.admin,model_study_author,base.group_user,1,1,1,1 -access_study_eligibility_study_excl_admin,study.eligibility.study.excl.admin,model_study_eligibility_study_excl,base.group_user,1,1,1,1 -access_study_eligibility_study_incl_admin,study.eligibility.study.incl.admin,model_study_eligibility_study_incl,base.group_user,1,1,1,1 access_study_eligibility_topic_admin,study.eligibility.topic.admin,model_study_eligibility_topic,base.group_user,1,1,1,1 access_study_eligibility_condition_body_site_admin,study.eligibility.condition.body.site.admin,model_study_eligibility_condition_body_site,base.group_user,1,1,1,1 access_study_eligibility_condition_clinical_status_admin,study.eligibility.condition.clinical.status.admin,model_study_eligibility_condition_clinical_status,base.group_user,1,1,1,1 @@ -23,5 +21,6 @@ access_study_questionnaire_subject_type_admin,study.questionnaire.subject.type.a access_study_questionnaire_status_admin,study.questionnaire.status.admin,model_study_questionnaire_status,base.group_user,1,1,1,1 access_study_participant_progress_status_admin,study.participant.progress.status.admin,model_study_participant_progress_status,base.group_user,1,1,1,1 access_study_participant_state_admin,study.participant.state.admin,model_study_participant_state,base.group_user,1,1,1,1 +access_study_questionnaire_progress_status_admin,study.questionnaire.progress.status.admin,model_study_questionnaire_progress_status,base.group_user,1,1,1,1 access_study_questionnaire_response_state_admin,study.questionnaire.response.state.admin,model_study_questionnaire_response_state,base.group_user,1,1,1,1 access_study_questionnaire_response_progress_status_admin,study.questionnaire.response.progress.status.admin,model_study_questionnaire_response_progress_status,base.group_user,1,1,1,1 diff --git a/studies_base/views/study_config_views.xml b/studies_base/views/study_config_views.xml index c120658..df81633 100644 --- a/studies_base/views/study_config_views.xml +++ b/studies_base/views/study_config_views.xml @@ -55,9 +55,21 @@ study.participant.state.tree study.participant.state - + + + + + + + study.participant.progress.status.tree + study.participant.progress.status + + + + + @@ -96,8 +108,31 @@ study.questionnaire.response.state + + + + + + + + study.questionnaire.response.progress.status.tree + study.questionnaire.response.progress.status + + + + + + + + study.questionnaire.progress.status.tree + study.questionnaire.progress.status + + + + + @@ -105,9 +140,10 @@ study.questionnaire.status.tree study.questionnaire.status - + - + + @@ -145,9 +181,10 @@ study.status.tree study.status - + + @@ -174,57 +211,72 @@ - Platformes techniques d'étuder + Platformes techniques d'étude ir.actions.act_window study.author - Localisations anatomiques des affectionsr + Localisations anatomiques des affections ir.actions.act_window study.eligibility.condition.body.site - Statuts des affectations (malade, ancien malade...)r + Statuts des affectations (malade, ancien malade...) ir.actions.act_window study.eligibility.condition.clinical.status - Thématiques de rechercher + Thématiques de recherche ir.actions.act_window study.eligibility.topic - Genresr + Genres ir.actions.act_window study.gender - États des participationsr + États des participations (participants) ir.actions.act_window study.participant.state + + Statuts de participation (participants) + ir.actions.act_window + study.participant.progress.status + - Phasesr + Phases ir.actions.act_window study.phase - Objectifsr + Objectifs ir.actions.act_window study.purpose.type - Catégories de questionnairer + Catégories de questionnaire ir.actions.act_window study.questionnaire.category - États des réponsesr + États des réponses ir.actions.act_window study.questionnaire.response.state + + Statuts des réponses aux questionnaires + ir.actions.act_window + study.questionnaire.response.progress.status + + + Statuts des questionnaires + ir.actions.act_window + study.questionnaire.progress.status + - Statuts de publicationr + Statuts de publication (questionnaires) ir.actions.act_window study.questionnaire.status @@ -239,80 +291,98 @@ study.questionnaire.type - Zones géographiques étudiéesr + Zones géographiques étudiées ir.actions.act_window study.region - Status des étudesr + Statuts de publication des études ir.actions.act_window study.status - Mots-clés des étudesr + Mots-clés des études ir.actions.act_window study.tag - Types d'étudesr + Types d'études ir.actions.act_window study.type - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/studies_base/views/study_menu.xml b/studies_base/views/study_menu.xml index 2ff08df..0bccf7b 100644 --- a/studies_base/views/study_menu.xml +++ b/studies_base/views/study_menu.xml @@ -1,4 +1,9 @@ - + + + diff --git a/studies_base/views/study_study_views.xml b/studies_base/views/study_study_views.xml index 184080c..d29d04c 100644 --- a/studies_base/views/study_study_views.xml +++ b/studies_base/views/study_study_views.xml @@ -17,14 +17,99 @@ study.study
- +
+ +
+ +
+ +
+ +
+

+

+

+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- + Études ir.actions.act_window study.study