Skip to content
Snippets Groups Projects
Commit acd82fe5 authored by DELARUELLE Myriam's avatar DELARUELLE Myriam
Browse files

ajout d'un champ active dans la bdd, préparation des templates pour l'interface de gestion

parent 4cb31962
No related branches found
No related tags found
No related merge requests found
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<XMLDB PATH="blocks/mahara_iena/db" VERSION="20180710" COMMENT="XMLDB file for Moodle blocks/mahara_iena" <XMLDB PATH="blocks/mahara_iena/db" VERSION="20230306" COMMENT="XMLDB file for Moodle blocks/mahara_iena"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../../lib/xmldb/xmldb.xsd" xsi:noNamespaceSchemaLocation="../../../lib/xmldb/xmldb.xsd"
> >
<TABLES> <TABLES>
<TABLE NAME="block_mahara_iena" COMMENT="Table du block mahara_iena"> <TABLE NAME="block_mahara_iena" COMMENT="Table du block mahara_iena">
<FIELDS> <FIELDS>
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/> <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/>
<FIELD NAME="course" TYPE="int" LENGTH="8" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/> <FIELD NAME="course" TYPE="int" LENGTH="8" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
<FIELD NAME="mahara_group_id" TYPE="int" LENGTH="8" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/> <FIELD NAME="mahara_group_id" TYPE="int" LENGTH="8" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
<FIELD NAME="moodle_group_id" TYPE="int" LENGTH="8" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/> <FIELD NAME="moodle_group_id" TYPE="int" LENGTH="8" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
</FIELDS> <FIELD NAME="active" TYPE="int" LENGTH="4" NOTNULL="true" DEFAULT="1" SEQUENCE="false"/>
<KEYS> </FIELDS>
<KEY NAME="primary" TYPE="primary" FIELDS="id"/> <KEYS>
</KEYS> <KEY NAME="primary" TYPE="primary" FIELDS="id"/>
</TABLE> </KEYS>
</TABLES> </TABLE>
</XMLDB> </TABLES>
</XMLDB>
\ No newline at end of file
<?php
function xmldb_block_mahara_iena_upgrade($oldversion) {
global $CFG, $DB;
$dbman = $DB->get_manager();
$result = TRUE;
if ($oldversion < 2023030201) {
// Define field active to be added to block_mahara_iena.
$table = new xmldb_table('block_mahara_iena');
$field = new xmldb_field('active', XMLDB_TYPE_INTEGER, '4', null, XMLDB_NOTNULL, null, '1');
// Conditionally launch add field enrollment.
if (!$dbman->field_exists($table, $field)) {
$dbman->add_field($table, $field);
}
upgrade_block_savepoint(true, 2023030201, 'mahara_iena');
}
return $result;
}
?>
\ No newline at end of file
...@@ -324,6 +324,7 @@ class block_mahara_iena_connexion ...@@ -324,6 +324,7 @@ class block_mahara_iena_connexion
* @param $mo_group_id : le groupe moodle à créer dans mahara avec au moins les clefs id et le name qui sera utilisé pour savoir sur quel cours moodle se baser pour créer le groupe mahara * @param $mo_group_id : le groupe moodle à créer dans mahara avec au moins les clefs id et le name qui sera utilisé pour savoir sur quel cours moodle se baser pour créer le groupe mahara
* @return bool: erreurs ou pas * @return bool: erreurs ou pas
*/ */
public function ensure_user_is_mahara_group_member_new($mo_user, $ma_group_id, $mo_group_id) { public function ensure_user_is_mahara_group_member_new($mo_user, $ma_group_id, $mo_group_id) {
global $COURSE, $CFG, $DB; global $COURSE, $CFG, $DB;
...@@ -394,6 +395,26 @@ class block_mahara_iena_connexion ...@@ -394,6 +395,26 @@ class block_mahara_iena_connexion
} }
} }
/**
* Archive un groupe Mahara pour la fin d'année : change les droits des anciens étudiants pour les mettre en lecture seule et permet de recréer des groupes Mahara correspondants aux groupes Arche
* @param [type] $maharaGroupId [description]
* @param [type] $courseId [description]
* @return [type] [description]
*/
public function archiveMaharaGroup($maharaGroupId, $courseId){
return true;
}
/**
* Archive des groupes Mahara pour la fin d'année : change les droits des anciens étudiants pour les mettre en lecture seule et permet de recréer des groupes Mahara correspondants aux groupes Arche
* @param [type] $maharaGroupsId [description]
* @param [type] $courseId [description]
* @return [type] [description]
*/
public function archiveMaharaGroups($maharaGroupsId, $courseId){
return true;
}
} }
......
...@@ -17,8 +17,8 @@ require_login($course, false, NULL); ...@@ -17,8 +17,8 @@ require_login($course, false, NULL);
$context = context_course::instance($courseid); $context = context_course::instance($courseid);
if (!has_capability('moodle/course:update', $context, $USER->id)) { if (!has_capability('moodle/course:update', $context, $USER->id)) {
header("Location: {$_SERVER['HTTP_REFERER']}"); header("Location: {$_SERVER['HTTP_REFERER']}");
exit; exit;
} }
$page_title = "Gestion des groupes liés à ce cours sur " . $CFG->mahara_alias; $page_title = "Gestion des groupes liés à ce cours sur " . $CFG->mahara_alias;
...@@ -36,58 +36,123 @@ $mo_ma_groups = $DB->get_records_sql('SELECT * FROM {block_mahara_iena} WHERE co ...@@ -36,58 +36,123 @@ $mo_ma_groups = $DB->get_records_sql('SELECT * FROM {block_mahara_iena} WHERE co
/* Tous les groupes moodle. */ /* Tous les groupes moodle. */
$course_groups = groups_get_all_groups($COURSE->id); $course_groups = groups_get_all_groups($COURSE->id);
/* Table d'affichage des informations. */ /* Table d'affichage des informations. */
$archived_groups=[];
$course_group=[];
$mahara_groups=[];
foreach ($mo_ma_groups as $mo_ma_group) {
//Si le moodle_group_id=0 c'est une espace de cours unique
if($mo_ma_group->moodle_group_id ==0){
//Si le groupe est archivé on l'ajoute au tableau correspondant
if($mo_ma_group->active==0){
array_push($archived_groups, $mo_ma_group);
}
else{
$course_group=$mo_ma_group;
}
}
//Si le moodle_group_id != 0 c'est un groupe associé à un groupe Mahara
else if(isset($course_groups[$mo_ma_group->moodle_group_id])) {
//Si le groupe est archivé on l'ajoute au tableau correspondant
if($mo_ma_group->active==0){
array_push($archived_groups, $mo_ma_group);
}
else{
$course_groups[$mo_ma_group->moodle_group_id]->mahara_group_id=$mo_ma_group->mahara_group_id;
}
}
}
//On va répartir les groupes dans leur onglet respectif : groupe unique (moodle_group_id 0), groupes liés (id du groupe moodle) et groupes archivés (active->0)
/*foreach ($course_groups as $group) {
$group->name=groups_get_group_name($group->id);
$group->url=$CFG->wwwroot.'/group/group.php?courseid='.$COURSE->id.'&id='.$group->id;
$group->url_members=$CFG->wwwroot.'/group/group.php?courseid='.$COURSE->id.'&id='.$group->id;
if($group->active==0){
array_push($archived_groups, $group);
}
else{*/
/* Détermine si le groupe moodle est lié à un groupe mahara. */
/*$group->mahara_group_id = false;
foreach ($mo_ma_groups as $mo_ma_group) {
if($mo_ma_group->moodle_group_id ==0){
$course_group=$mo_ma_group->mahara_group_id;
}
else ( $mo_ma_group->moodle_group_id == $group->id ) {
$group->mahara_group_id = $mo_ma_group->mahara_group_id;
break;
}
}
/* Si le groupe moodle est lié à un groupe mahara. */
/* Récupération sur mahara des infos de groupe. */
/*if ( $group->mahara_group_id ) {
$params = array (
'groups' =>
array (
0 =>
array (
'id' => $group->mahara_group_id
)
)
);
$mahara_group = $connexion->getMaharaGroups($params);
//ON LAISSE CA DE COTE POUR LE MOMENT
/* USER membre du groupe mahara ? */
/*$group->is_ma_group_member = false;
foreach ($mahara_group[0]->members as $ma_group_member) {
if ( $ma_group_member->username == $USER->username ) {
$group->is_ma_group_member = true;
}
}
/* Inscription ou désinscription du groupe mahara du USER. */
/*if ( $group->is_ma_group_member ) {
$group->url_link=$CFG->wwwroot."/blocks/mahara_iena/mahara_iena_link.php?courseid=$COURSE->id&connect_direct=true&mahara_group=".$mahara_group[0]->id."'>".$mahara_group[0]->name;
$group->mahara_group_name=$mahara_group[0]->name;
}*/
/* }
}
}*/
$tab = optional_param('t', 1, PARAM_INT);
$tabs = [];
$tab1_title="Espace Compact unique";
$tab2_title="Espaces Compact par groupes";
$tab3_title="Groupes archivés";
$url="http://localhost/moodle/blocks/mahara_iena/mahara_iena_manage.php?courseid=7#tab-content";
$tabs[] = new tabobject(1, new moodle_url($url, ['t'=>1]), $tab1_title);
$tabs[] = new tabobject(2, new moodle_url($url, ['t'=>2]), $tab2_title);
$tabs[] = new tabobject(3, new moodle_url($url, ['t'=>3]), $tab3_title);
foreach ($course_groups as $group) {
$group->name=groups_get_group_name($group->id);
$group->url=$CFG->wwwroot.'/group/group.php?courseid='.$COURSE->id.'&id='.$group->id;
$group->url_members=$CFG->wwwroot.'/group/group.php?courseid='.$COURSE->id.'&id='.$group->id;
/* Détermine si le groupe moodle est lié à un groupe mahara. */
$group->mahara_group_id = false;
foreach ($mo_ma_groups as $mo_ma_group) {
if ( $mo_ma_group->moodle_group_id == $group->id ) {
$group->mahara_group_id = $mo_ma_group->mahara_group_id;
break;
}
}
/* Si le groupe moodle est lié à un groupe mahara. */
if ( $group->mahara_group_id ) {
/* Récupération sur mahara des infos de groupe. */
$params = array (
'groups' =>
array (
0 =>
array (
'id' => $group->mahara_group_id
)
)
);
$mahara_group = $connexion->getMaharaGroups($params);
/* USER membre du groupe mahara ? */
$group->is_ma_group_member = false;
foreach ($mahara_group[0]->members as $ma_group_member) {
if ( $ma_group_member->username == $USER->username ) {
$group->is_ma_group_member = true;
}
}
/* Inscription ou désinscription du groupe mahara du USER. */
if ( $group->is_ma_group_member ) {
$group->url_link=$CFG->wwwroot."/blocks/mahara_iena/mahara_iena_link.php?courseid=$COURSE->id&connect_direct=true&mahara_group=".$mahara_group[0]->id."'>".$mahara_group[0]->name;
$group->mahara_group_name=$mahara_group[0]->name;
}
}
}
$data=array(); $data=array();
$data['mahara_alias']=$CFG->mahara_alias; $data['mahara_alias']=$CFG->mahara_alias;
$data['page_title']=$page_title; $data['page_title']=$page_title;
$data['course_groups']=array_values($course_groups);
$renderer = $PAGE->get_renderer('block_mahara_iena'); $renderer = $PAGE->get_renderer('block_mahara_iena');
$renderer->get_manage_groups($data); $renderer->get_header_manage_groups($data);
echo $OUTPUT->tabtree($tabs, $tab);
if ($tab == 1) {
$data['course_groups']=array_values($course_groups);
$renderer->get_manage_groups($data);
} else if($tab == 2){
// Show data for course group
$data['course_group']=$course_group;
$renderer->get_manage_group($data);
} else{
$data['archived_groups']=$archived_groups;
$renderer->get_archived_groups($data);
}
echo $OUTPUT->footer(); echo $OUTPUT->footer();
...@@ -7,5 +7,15 @@ class block_mahara_iena_renderer extends plugin_renderer_base { ...@@ -7,5 +7,15 @@ class block_mahara_iena_renderer extends plugin_renderer_base {
function get_manage_groups($data){ function get_manage_groups($data){
echo $this->render_from_template('block_mahara_iena/manage_groups', $data); echo $this->render_from_template('block_mahara_iena/manage_groups', $data);
} }
function get_header_manage_groups($data){
echo $this->render_from_template('block_mahara_iena/header_manage_groups', $data);
}
function get_manage_group($data){
echo $this->render_from_template('block_mahara_iena/manage_course_group', $data);
}
function get_archived_groups($data){
echo $this->render_from_template('block_mahara_iena/manage_archived_groups', $data);
}
} }
<div>
<h2>{{page_title}}</h2>
<p>Fonctionnalités (enseignants uniquement) : </p>
<ul>
<li>Réserver cette interface à la gestion de cours multigroupes ?</li>
<li>S'inscrire ou se désinscrire d'un groupe Mahara</li>
<li class='text-muted'>Eventuellement : idem pour plusieurs à la fois (coches)</li>
<li>Briser le lien entre un groupe Mahara existant et un groupe Moodle</li>
<li>Lier un groupe Mahara existant à un groupe de ce cours Moodle</li>
<li>Supprimer un groupe Mahara lié à ce cours Moodle</li>
</ul>
<div class='alert alert-success'><h3>Information</h3><p>Vous pouvez ici gérer les groupes de ce cours et les groupes qui y sont liés sur <em>{{mahara_alias}}</em>. </p>
<ul><li>Normalement, les groupes de <em>{{mahara_alias}}</em>.</li>
<li>Vous pouvez vous inscrire / désinscrire vous-même des groupes de ce cours et des groupes liés sur <em>{{mahara_alias}}</em>. Si vous n'êtes pas inscrit dans un groupe du cours mais inscrit dans le groupe correspondant sur <em>{{mahara_alias}}</em>, nous ne verrez pas apparaître ce groupe dans le bloc de liens du cours. </li></ul></p></div>
</div>
<div id="tab-content">
Hello c'est pour les groupes archivés
</div>
<div id="tab-content">
Hello c'est pour le groupe unique du cours
</div>
<div> <div id="tab-content">
<h2>{{page_title}}</h2>
<p>Fonctionnalités (enseignants uniquement) : </p>
<ul>
<li>Réserver cette interface à la gestion de cours multigroupes ?</li>
<li>S'inscrire ou se désinscrire d'un groupe Mahara</li>
<li class='text-muted'>Eventuellement : idem pour plusieurs à la fois (coches)</li>
<li>Briser le lien entre un groupe Mahara existant et un groupe Moodle</li>
<li>Lier un groupe Mahara existant à un groupe de ce cours Moodle</li>
<li>Supprimer un groupe Mahara lié à ce cours Moodle</li>
</ul>
<div class='alert alert-success'><h3>Information</h3><p>Vous pouvez ici gérer les groupes de ce cours et les groupes qui y sont liés sur <em>{{mahara_alias}}</em>. </p>
<ul><li>Normalement, les groupes de <em>{{mahara_alias}}</em>.</li>
<li>Vous pouvez vous inscrire / désinscrire vous-même des groupes de ce cours et des groupes liés sur <em>{{mahara_alias}}</em>. Si vous n'êtes pas inscrit dans un groupe du cours mais inscrit dans le groupe correspondant sur <em>{{mahara_alias}}</em>, nous ne verrez pas apparaître ce groupe dans le bloc de liens du cours. </li></ul></p></div>
<table class='table table-iena'> <table class='table table-iena'>
<tr><th>Groupe du cours</th><th style='border-right: 2px solid #dee2e6;'>Inscription</th><th>Groupe sur {{mahara_alias}}</th><th>Inscription</th></tr> <tr><th>Groupe du cours</th><th style='border-right: 2px solid #dee2e6;'>Inscription</th><th>Groupe sur {{mahara_alias}}</th><th>Inscription</th></tr>
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
*/ */
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
$plugin->version = 2022062700; $plugin->version = 2023030102;
$plugin->requires = 2014051200; $plugin->requires = 2014051200;
$plugin->component = 'block_mahara_iena'; $plugin->component = 'block_mahara_iena';
$plugin->release = 'v1.0'; $plugin->release = 'v1.0';
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment