[IMP] studies_base:
Vues Questionnaire + Participant + Response + Progress Status
This commit is contained in:
@@ -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
|
||||
|
@@ -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")
|
||||
|
@@ -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'),
|
||||
|
@@ -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")
|
@@ -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")
|
||||
|
@@ -313,7 +313,7 @@
|
||||
|
||||
|
||||
<!-- MENUS -->
|
||||
<menuitem id="menu_study_config" name="Configuration" parent="menu_study_main" sequence="2">
|
||||
<menuitem id="menu_study_config" name="Configuration" parent="menu_study_main" sequence="999">
|
||||
<menuitem id="menu_study_study_config" name="Études">
|
||||
<menuitem id="menu_study_author"
|
||||
action="action_study_author"
|
||||
|
@@ -5,5 +5,17 @@
|
||||
<menuitem id="menu_study_study" name="Études"
|
||||
action="action_study_study"
|
||||
sequence="1" />
|
||||
<menuitem id="menu_study_progress_status" name="Statuts d'avancement des études"
|
||||
action="action_study_progress_status"
|
||||
sequence="1" />
|
||||
<menuitem id="menu_study_questionnaire" name="Questionnaires"
|
||||
action="action_study_questionnaire"
|
||||
sequence="2" />
|
||||
<menuitem id="menu_study_participant" name="Participants"
|
||||
action="action_study_participant"
|
||||
sequence="3" />
|
||||
<menuitem id="menu_study_questionnaire_response" name="Réponses aux questionnaires"
|
||||
action="action_study_questionnaire_response"
|
||||
sequence="4" />
|
||||
</menuitem>
|
||||
</odoo>
|
||||
|
86
studies_base/views/study_participant_views.xml
Normal file
86
studies_base/views/study_participant_views.xml
Normal file
@@ -0,0 +1,86 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<!-- TREE VIEW -->
|
||||
<record id="view_study_participant_tree" model="ir.ui.view">
|
||||
<field name="name">study.participant.tree</field>
|
||||
<field name="model">study.participant</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Participants">
|
||||
<field name="part_of"/>
|
||||
<field name="subject"/>
|
||||
<field name="firstname"/>
|
||||
<field name="lastname"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- FORM VIEW -->
|
||||
<record id="view_study_participant_form" model="ir.ui.view">
|
||||
<field name="name">study.participant.form</field>
|
||||
<field name="model">study.participant</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Étude">
|
||||
<header>
|
||||
<!-- action buttons -->
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<!-- big buttons -->
|
||||
</div>
|
||||
|
||||
<div class="oe_title">
|
||||
<h1>
|
||||
<label for="identifier_primary_id" string="Idientifiant Seintinelles" /><field name="identifier_primary_id" />
|
||||
</h1>
|
||||
<h2>
|
||||
<label for="part_of" string="Étude" /><field name="part_of" />
|
||||
</h2>
|
||||
</div>
|
||||
<group name="participant" string="Participant">
|
||||
<group name="participant_left">
|
||||
<field name="subject" />
|
||||
<field name="lastname" />
|
||||
<field name="firstname" />
|
||||
</group>
|
||||
<group name="participant_right">
|
||||
|
||||
</group>
|
||||
</group>
|
||||
<group name="participation" string="Participation">
|
||||
<group name="participation_left">
|
||||
<field name="progress_status" />
|
||||
<field name="state" />
|
||||
</group>
|
||||
<group name="participation_right">
|
||||
<field name="part_of_author" />
|
||||
<field name="author" />
|
||||
<field name="identifier" />
|
||||
</group>
|
||||
</group>
|
||||
<group name="technique" string="Technique">
|
||||
<group name="technique_left">
|
||||
<field name="create_date" />
|
||||
<field name="write_date" />
|
||||
</group>
|
||||
<group name="technique_right">
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Réponses" name="responses">
|
||||
<field name="questionnaire_responses" />
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- ACTIONS -->
|
||||
<record id="action_study_participant" model="ir.actions.act_window">
|
||||
<field name="name">Participants</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">study.participant</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
43
studies_base/views/study_progress_status_views.xml
Normal file
43
studies_base/views/study_progress_status_views.xml
Normal file
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<!-- TREE VIEW -->
|
||||
<record id="view_study_progress_status_tree" model="ir.ui.view">
|
||||
<field name="name">study.progress.status.tree</field>
|
||||
<field name="model">study.progress.status</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Statuts d'avancement des études">
|
||||
<field name="study_id"/>
|
||||
<field name="state"/>
|
||||
<field name="actual"/>
|
||||
<field name="date_begin"/>
|
||||
<field name="date_end"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- FORM VIEW -->
|
||||
<record id="view_study_progress_status_form" model="ir.ui.view">
|
||||
<field name="name">study.progress.status.form</field>
|
||||
<field name="model">study.progress.status</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Statut d'avancement des études">
|
||||
<group>
|
||||
<field name="study_id"/>
|
||||
<field name="state"/>
|
||||
<field name="actual"/>
|
||||
<field name="date_begin"/>
|
||||
<field name="date_end"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- ACTIONS -->
|
||||
<record id="action_study_progress_status" model="ir.actions.act_window">
|
||||
<field name="name">Statuts d'avancement des études</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">study.progress.status</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
92
studies_base/views/study_questionnaire_response_views.xml
Normal file
92
studies_base/views/study_questionnaire_response_views.xml
Normal file
@@ -0,0 +1,92 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<!-- TREE VIEW -->
|
||||
<record id="view_study_questionnaire_response_tree" model="ir.ui.view">
|
||||
<field name="name">study.questionnaire.response.response.tree</field>
|
||||
<field name="model">study.questionnaire.response</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Réponses aux questionnaires">
|
||||
<field name="start_date"/>
|
||||
<field name="end_date"/>
|
||||
<field name="study_id"/>
|
||||
<field name="study_questionnaire_id"/>
|
||||
<field name="firstname"/>
|
||||
<field name="lastname"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- FORM VIEW -->
|
||||
<record id="view_study_questionnaire_response_form" model="ir.ui.view">
|
||||
<field name="name">study.questionnaire.response.response.form</field>
|
||||
<field name="model">study.questionnaire.response</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Réponses aux questionnaires">
|
||||
<header>
|
||||
<!-- action buttons -->
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<!-- big buttons -->
|
||||
</div>
|
||||
|
||||
<div class="oe_title">
|
||||
<h1>
|
||||
<label for="identifier_primary_id" string="Idientifiant Seintinelles" /><field name="identifier_primary_id" />
|
||||
</h1>
|
||||
</div>
|
||||
<group name="collecte" string="Collecte">
|
||||
<group name="collecte_left">
|
||||
<field name="start_date" />
|
||||
<field name="end_date" />
|
||||
<field name="state" />
|
||||
<field name="progress_status" />
|
||||
<field name="authored" />
|
||||
</group>
|
||||
<group name="collecte_right">
|
||||
<field name="author" />
|
||||
<field name="identifier_author" />
|
||||
<field name="redirect_url" />
|
||||
</group>
|
||||
</group>
|
||||
<group name="study" string="Étude">
|
||||
<group name="study_left">
|
||||
<field name="study_id" />
|
||||
<field name="study_questionnaire_id" />
|
||||
<field name="study_participant_id" />
|
||||
</group>
|
||||
<group name="study_right">
|
||||
</group>
|
||||
</group>
|
||||
<group name="participant" string="Participant">
|
||||
<group name="participant_left">
|
||||
<field name="source" />
|
||||
<field name="firstname" />
|
||||
<field name="lastname" />
|
||||
</group>
|
||||
<group name="participant_right">
|
||||
</group>
|
||||
</group>
|
||||
<group name="technique" string="Technique">
|
||||
<group name="technique_left">
|
||||
<field name="create_date" />
|
||||
<field name="write_date" />
|
||||
</group>
|
||||
<group name="technique_right">
|
||||
</group>
|
||||
</group>
|
||||
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- ACTIONS -->
|
||||
<record id="action_study_questionnaire_response" model="ir.actions.act_window">
|
||||
<field name="name">Réponses aux questionnaires</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">study.questionnaire.response</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
120
studies_base/views/study_questionnaire_views.xml
Normal file
120
studies_base/views/study_questionnaire_views.xml
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<!-- TREE VIEW -->
|
||||
<record id="view_study_questionnaire_tree" model="ir.ui.view">
|
||||
<field name="name">study.questionnaire.tree</field>
|
||||
<field name="model">study.questionnaire</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Questionnaires">
|
||||
<field name="title"/>
|
||||
<field name="name"/>
|
||||
<field name="effective_period_start"/>
|
||||
<field name="effective_period_end"/>
|
||||
<field name="study_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- FORM VIEW -->
|
||||
<record id="view_study_questionnaire_form" model="ir.ui.view">
|
||||
<field name="name">study.questionnaire.form</field>
|
||||
<field name="model">study.questionnaire</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Questionnaires">
|
||||
<header>
|
||||
<!-- action buttons -->
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<!-- big buttons -->
|
||||
</div>
|
||||
|
||||
<div class="oe_title">
|
||||
<h1>
|
||||
<label for="title" string="Nom du questionnaire" /><field name="title" />
|
||||
</h1>
|
||||
<h2>
|
||||
<label for="name" string="Acronyme" /><field name="name" />
|
||||
</h2>
|
||||
</div>
|
||||
<group name="status" string="Statut">
|
||||
<group name="status_left">
|
||||
<field name="progress_status" />
|
||||
<field name="approval_date" />
|
||||
<field name="last_review_date" />
|
||||
</group>
|
||||
<group name="status_right">
|
||||
<field name="effective_period_start" />
|
||||
<field name="effective_period_end" />
|
||||
</group>
|
||||
</group>
|
||||
<group name="description" string="Description">
|
||||
<group name="description_left">
|
||||
<field name="study_id" />
|
||||
<field name="category" />
|
||||
<field name="type" />
|
||||
<field name="purpose" />
|
||||
<field name="subject_type" />
|
||||
</group>
|
||||
<group name="description_right">
|
||||
<field name="description" />
|
||||
<field name="jurisdiction" widget="many2many_tags" />
|
||||
<field name="derived_from" />
|
||||
<field name="version" />
|
||||
<field name="status" />
|
||||
</group>
|
||||
</group>
|
||||
<group name="technique" string="Technique">
|
||||
<group name="technique_left">
|
||||
<field name="experimental" />
|
||||
<field name="author" />
|
||||
<field name="identifier_author" />
|
||||
</group>
|
||||
<group name="technique_right">
|
||||
<field name="identifier_primary_id" />
|
||||
<field name="create_date" />
|
||||
<field name="write_date" />
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Planification" name="planification">
|
||||
<group name="planification">
|
||||
<group name="planification_left">
|
||||
<field name="rank_in_study" />
|
||||
<field name="fixed_start_date" />
|
||||
<field name="fixed_end_date" />
|
||||
<field name="repeated" />
|
||||
<field name="repeat_delay" />
|
||||
<field name="repeat_delay_type" />
|
||||
</group>
|
||||
<group name="planification_right">
|
||||
<field name="following" />
|
||||
<field name="following_delay" />
|
||||
<field name="following_delay_type" />
|
||||
<field name="preceding" />
|
||||
<field name="preceding_delay" />
|
||||
<field name="preceding_delay_type" />
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Copyright" name="copyright">
|
||||
<group name="copyright">
|
||||
<field name="copyright" />
|
||||
<field name="copyright_label" />
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- ACTIONS -->
|
||||
<record id="action_study_questionnaire" model="ir.actions.act_window">
|
||||
<field name="name">Questionnaires</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">study.questionnaire</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
@@ -1,18 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<!-- TREE VIEW -->
|
||||
<record id="view_stud_study_tree" model="ir.ui.view">
|
||||
<record id="view_study_study_tree" model="ir.ui.view">
|
||||
<field name="name">study.study.tree</field>
|
||||
<field name="model">study.study</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Études">
|
||||
<field name="title"/>
|
||||
<field name="name"/>
|
||||
<field name="period_start"/>
|
||||
<field name="period_end"/>
|
||||
<field name="progress_status"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- FORM VIEW -->
|
||||
<record id="view_stud_study_form" model="ir.ui.view">
|
||||
<record id="view_study_study_form" model="ir.ui.view">
|
||||
<field name="name">study.study.form</field>
|
||||
<field name="model">study.study</field>
|
||||
<field name="arch" type="xml">
|
||||
|
Reference in New Issue
Block a user