Skip to content
Snippets Groups Projects
Commit c184be93 authored by Thomas Fradet's avatar Thomas Fradet
Browse files

beggin group management

parent 386eaa6d
No related branches found
No related tags found
No related merge requests found
...@@ -56,10 +56,11 @@ class block_mahara_iena_connexion ...@@ -56,10 +56,11 @@ class block_mahara_iena_connexion
return $this->base."?wstoken=".$this->wstoken."&wsfunction=".$function."&alt=json"; return $this->base."?wstoken=".$this->wstoken."&wsfunction=".$function."&alt=json";
} }
public function getMaharaGroups(){ public function getMaharaGroups($params){
$getMaharaGroupes = "mahara_group_get_groups_by_id"; $params = http_build_query($params);
$url = $this->create_url($getMaharaGroupes); $mahara_group_get_groups_by_id = "mahara_group_get_groups_by_id";
return json_decode($this->httpGet($url)); $url = $this->create_url($mahara_group_get_groups_by_id);
return json_decode($this->httpPost($params, $url));
} }
public function getMaharaUsers(){ public function getMaharaUsers(){
......
...@@ -31,8 +31,11 @@ if ( $_GET['connect_mahara'] == true ) { ...@@ -31,8 +31,11 @@ if ( $_GET['connect_mahara'] == true ) {
//ensure user is member of it's mahara group : true if already or succeed //ensure user is member of it's mahara group : true if already or succeed
// $all_right = $connexion->ensure_user_is_mahara_group_member($USER, $_GET['mahara_group']); // $all_right = $connexion->ensure_user_is_mahara_group_member($USER, $_GET['mahara_group']);
if ( $_GET['connect_direct'] == true ) {
$all_right = $connexion->ensure_user_is_mahara_group_member_new($USER, $_GET['mahara_group'], $_GET['moodle_group']); $all_right = true;
} else {
$all_right = $connexion->ensure_user_is_mahara_group_member_new($USER, $_GET['mahara_group'], $_GET['moodle_group']);
}
if ( $all_right === false ) { if ( $all_right === false ) {
$content .= '<div class="alert alert-danger">Erreur d\'ajout au groupe sur <a href="'.$CFG->base_mahara.'" target="_blank">'.$CFG->base_mahara.'</a>. </div>'; $content .= '<div class="alert alert-danger">Erreur d\'ajout au groupe sur <a href="'.$CFG->base_mahara.'" target="_blank">'.$CFG->base_mahara.'</a>. </div>';
......
<?php
require_once('../../config.php');
require_once ('entity/block_mahara_iena_connexion.php');
global $COURSE, $DB, $USER, $CFG;
$courseid = required_param('courseid', PARAM_INT);
$url = new moodle_url('/blocks/mahara_iena/mahara_iena_manage.php', array('courseid' => $courseid));
$PAGE->set_pagelayout('course');
$PAGE->set_url($url);
$course = $DB->get_record('course', array('id'=>$courseid), '*', MUST_EXIST);
require_login($course, false, NULL);
$context = context_course::instance($courseid);
if (!has_capability('moodle/course:update', $context, $USER->id)) {
header("Location: {$_SERVER['HTTP_REFERER']}");
exit;
}
$page_title = "Gestion des groupes liés à ce cours sur " . $CFG->mahara_alias;
$PAGE->set_title($page_title);
$PAGE->set_heading($OUTPUT->heading($COURSE->fullname, 2, 'headingblock header outline'));
$connexion = new block_mahara_iena_connexion($CFG->wstoken, $CFG->base_mahara);
echo $OUTPUT->header();
echo "<h2>$page_title</h2>";
echo "<style>button {cursor: pointer;}
.table-iena td {padding-bottom: 0.4rem;}</style>";
echo "<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>";
echo "<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>$CFG->mahara_alias</em>. </p>
<ul><li>Normalement, les groupes de <em>$CFG->mahara_alias</em> ne sont créés que lorsque le premier utilisateur du groupe correspondant dans ce cours clic sur le lien pour y accéder : ici, vous pouvez les créer à l'avance.</li>
<li>Vous pouvez vous inscrire / désinscrire vous-même des groupes de ce cours et des groupes liés sur <em>$CFG->mahara_alias</em>. Si vous n'êtes pas inscrit dans un groupe du cours mais inscrit dans le groupe correspondant sur <em>$CFG->mahara_alias</em>, nous ne verrez pas apparaître ce groupe dans le bloc de liens du cours. </li></ul></p></div>";
/* Liste des liaisons moodle mahara en base. */
$mo_ma_groups = $DB->get_records_sql('SELECT * FROM {block_mahara_iena} WHERE course = ?', array($COURSE->id));
/* Tous les groupes moodle. */
$course_groups = groups_get_all_groups($COURSE->id);
/* Table d'affichage des informations. */
echo "<table class='table table-iena'>";
echo "<tr><th>Groupe du cours</th><th style='border-right: 2px solid #dee2e6;'>Inscription</th><th>Groupe sur " . $CFG->mahara_alias . "</th><th>Inscription</th></tr>";
foreach ($course_groups as $group) {
echo "<tr>";
/* Affichage des infos et lien vers les groupes moodle. */
echo "<td><strong>" . groups_get_group_name($group->id) . "</strong> ($group->id) — <a href='$CFG->wwwroot/group/group.php?courseid=$COURSE->id&id=$group->id'>Paramètres</a>, <a href='$CFG->wwwroot/group/members.php?group=$group->id'>Membres</a></td>";
echo "<td style='border-right: 2px solid #dee2e6;'><button class='btn-sm btn-warning'>Désinscription</button></td>";
/* Détermine si le groupe moodle est lié à un groupe mahara. */
$mahara_group_id = false;
foreach ($mo_ma_groups as $mo_ma_group) {
if ( $mo_ma_group->moodle_group_id == $group->id ) {
$mahara_group_id = $mo_ma_group->mahara_group_id;
break;
}
}
/* Si le groupe moodle est lié à un groupe mahara. */
if ( $mahara_group_id ) {
/* Récupération sur mahara des infos de groupe. */
$params = array (
'groups' =>
array (
0 =>
array (
'id' => $mahara_group_id
)
)
);
$mahara_group = $connexion->getMaharaGroups($params);
/* USER membre du groupe mahara ? */
$is_ma_group_member = false;
foreach ($mahara_group[0]->members as $ma_group_member) {
if ( $ma_group_member->username == $USER->username ) {
$is_ma_group_member = true;
}
}
/* Inscription ou désinscription du groupe mahara du USER. */
if ( $is_ma_group_member ) {
echo "<td><a target='_blank' href='".$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."</a></td>";
echo "<td><button class='btn-sm btn-warning'>Désinscription</button><br><a href='#' class='small' data-toggle='modal' data-target='#exampleModal'>Changer</a></td>";
} else {
echo "<td>".$mahara_group[0]->name."</a></td>";
echo "<td><button class='btn-sm btn-success'>Inscription</button><br><a href='#' class='small'>Changer</a></td>";
}
} else {
/* Si groupe mahara n'existe pas : possibilité de le créer. */
echo "<td><p class='text-muted'>Créer et s'inscrire dans ce groupe sur <em>$CFG->mahara_alias</em> ?</p></td>";
echo "<td><button class='btn-sm btn-primary'>Créer et m'inscrire</button><br><a href='#' class='small'>Changer</a></td>";
}
echo "</tr>";
}
echo "</table>";
?>
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Changer le groupe associé</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<p>Sélectionner un autre groupe <em><?php echo $CFG->mahara_alias; ?></em> à associer avec ce groupe du cours.</p>
<p>Vos groupes <em><?php echo $CFG->mahara_alias; ?></em> : </p>
<select name="" id="change-group-sel" style="width: 100%;">
<option value="test">test</option>
<option value="test">test test test test test test test test t test test test test tesst test test test test test dhjieopa jdiep jdiuepaz huipref nuipad uipeaz</option>
</select>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
<button type="button" class="btn btn-primary">Valider</button>
</div>
</div>
</div>
</div>
<?php
echo $OUTPUT->footer();
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment