Commit c184be93 authored by Thomas Fradet's avatar Thomas Fradet
Browse files

beggin group management

parent 386eaa6d
......@@ -56,10 +56,11 @@ class block_mahara_iena_connexion
return $this->base."?wstoken=".$this->wstoken."&wsfunction=".$function."&alt=json";
}
public function getMaharaGroups(){
$getMaharaGroupes = "mahara_group_get_groups_by_id";
$url = $this->create_url($getMaharaGroupes);
return json_decode($this->httpGet($url));
public function getMaharaGroups($params){
$params = http_build_query($params);
$mahara_group_get_groups_by_id = "mahara_group_get_groups_by_id";
$url = $this->create_url($mahara_group_get_groups_by_id);
return json_decode($this->httpPost($params, $url));
}
public function getMaharaUsers(){
......
......@@ -31,8 +31,11 @@ if ( $_GET['connect_mahara'] == true ) {
//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_new($USER, $_GET['mahara_group'], $_GET['moodle_group']);
if ( $_GET['connect_direct'] == true ) {
$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 ) {
$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();
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment