sid/page/groups.php

586 lines
19 KiB
PHP
Raw Normal View History

2015-10-23 11:08:33 +00:00
<?php define('__ROOT__', dirname(dirname(__FILE__)) );
require_once __ROOT__.'/manager/security.php';
require_once __ROOT__.'/manager/groups.php';
/****************************************
* *
* SECTION "GROUPES" *
* *
*****************************************
*
2015-10-22 11:50:56 +00:00
* [1] Présentation (studend + prof)
* [2] Tout les groupes (tous connecté)
* [3] Modifier les groupes (admin)
* [4] Répartir les élèves (admin)
*
*****************************************/
2015-10-23 11:08:33 +00:00
/*** GESTION DES PARAMETRES OPTIONNELS ***/
// on initialise les paramètres optionnels
$semestreOpt = null;
$groupeOpt = null;
$formationOpt = null;
// on cherche dans toutes les variables _get si on trouve des paramètres
foreach($_POST as $k=>$v){
if( preg_match('/^g:(.+)$/', $k, $m) ) // g:nomGroupe
$groupeOpt = $m[1];
if( preg_match('/^s:(.+)$/', $k, $m) ) // s:nomSemestre
$semestreOpt = $m[1];
if( preg_match('/^f:(.+)$/', $k, $m) ) // f:codeFormation
$formationOpt = $m[1];
}
$groupeOpt = ($groupeOpt == null || $groupeOpt == '*') ? null : $groupeOpt;
$semestreOpt = ($semestreOpt == null || $semestreOpt == '*') ? null : $semestreOpt;
$formationOpt = ($formationOpt == null || $formationOpt == '*') ? null : $formationOpt;
/************************/
/*** TOUS LES GROUPES ***/
/************************/
/*
* UTILISATEUR -> affichage du même semestre
*
*/
if( permission('student') ){ // si connecté && utilisateur
$request = new stdClass();
$answer = new stdClass();
2015-10-23 11:08:33 +00:00
$request->level_1 = 'grouplist';
$request->semestre = $_SESSION['semestre'];
$request->annee = $_SESSION['annee'];
2015-10-23 11:08:33 +00:00
groups_switch_level_1($request, $answer);
if( $answer->request == 'success' ){ // si pas d'erreur
//////////////////////////////////////////////////////////////
echo "<section name='studentallgroups' data-title='tous les groupes' class='basic'>";
echo "<table class='basic col5'><thead><tr>";
echo '<th>Identifiant</td>';
echo '<th>Prenom</td>';
echo '<th>Nom</td>';
echo '<th>Semestre</td>';
echo '<th>Groupe</td>';
echo '</tr></thead></table>';
2015-10-23 11:08:33 +00:00
foreach($answer->grouplist as $group){ // pour chaque groupe
2015-10-22 21:06:25 +00:00
if( count($group['userlist']) > 0 ){ // s'il y a des utilisateurs
2015-10-22 21:06:25 +00:00
echo "<table class='basic margin col5'>";
2015-10-22 21:06:25 +00:00
echo '<tbody>';
2015-10-22 21:06:25 +00:00
// pour chaque utilisateur
foreach($group['userlist'] as $user){
echo '<tr>';
echo "<td><span class=link>".$user['identifiant'].'</span></td>';
echo '<td>'.$user['prenom'].'</td>';
echo '<td>'.$user['nom'].'</td>';
echo '<td>'.$group['semestre'].'</td>';
echo '<td>Groupe <span class=stressed>'.$group['nom'].'</span></td>';
echo '</tr>';
}
2015-10-22 21:06:25 +00:00
// echo '<tr><td colspan=5 class=more></td></tr>';
2015-10-22 21:06:25 +00:00
echo '</tbody>';
echo '</table>';
2015-10-23 11:08:33 +00:00
}
}
echo '</section>';
////////////////////////////////////////////////////////
}else
echo "<section name='studentallgroups' data-title='tous les groupes' class='basic'><table class=basic><tbody><tr><td>Aucun groupe trouvé</td></tr></tbody></table></section>";
}
2015-10-23 11:08:33 +00:00
2015-11-06 10:13:32 +00:00
2015-11-06 10:13:32 +00:00
/******************/
/*** MON GROUPE ***/
/******************/
/*
*
* ETUDIANT -> son groupe de son semestre
*
*/
if( permission('student') ){ // si l'utilisateur est connecté et que c'est un élève
$request = new stdClass(); $answer = new stdClass();
$request->level_1 = 'get';
$request->etudiant = $_SESSION['identifiant'];
$request->semestre = $_SESSION['semestre'];
$request->annee = $_SESSION['annee'];
groups_switch_level_1($request, $answer);
if( $answer->request == 'success' ){ // si pas d'erreur
$monGroupe = $answer->groupe;
$request = new stdClass(); $answer = new stdClass();
$request->level_1 = 'userlist';
$request->groupe = $monGroupe;
$request->semestre = $_SESSION['semestre'];
$request->annee = $_SESSION['annee'];
groups_switch_level_1($request, $answer);
if( $answer->request == 'success' ){ // si on a bien récupéré les membres du groupe
////////////////////////////////////////////////////////////////////////////////
echo "<section name='studentsgroup' data-title='Mon groupe' class='basic'>";
echo "<table class='basic col1'><thead>";
2015-11-02 11:20:01 +00:00
echo '<tr>';
echo '<th colspan=5>';
echo 'Groupe '.$monGroupe;
2015-11-02 11:20:01 +00:00
echo '</th>';
echo '</tr>';
echo '</thead></table>';
echo "<table class='basic col5'><tbody>";
2015-11-02 11:20:01 +00:00
// pour chaque utilisateur
foreach($answer->userlist as $user){
echo '<tr>';
echo "<td><span class=link>".$user['identifiant'].'</span></td>';
2015-11-02 11:20:01 +00:00
echo '<td>'.$user['prenom'].'</td>';
echo '<td>'.$user['nom'].'</td>';
echo '<td>'.$user['semestre'].'</td>';
echo '<td>Groupe <span class=stressed>'.$monGroupe.'</span></td>';
2015-11-02 11:20:01 +00:00
echo '</tr>';
}
2015-11-02 11:20:01 +00:00
// echo '<tr><td colspan=5 class=more></td></tr>';
echo '</tbody></table>';
echo '</section>';
////////////////////////////////////////////////////////////////////////////////
}else
echo "<section name='studentsgroup' data-title='Mon groupe' class='basic'><table class=basic><tbody><tr><td>Aucun groupe trouvé</td></tr></tbody></table></section>";
}else
echo "<section name='studentsgroup' data-title='Mon groupe' class='basic'><table class=basic><tbody><tr><td>Aucun groupe trouvé</td></tr></tbody></table></section>";
echo '</section>';
} ?>
2015-11-06 10:13:32 +00:00
<!-- mes groupeS -->
<?php
2015-11-06 10:13:32 +00:00
/*******************/
/*** MES GROUPES ***/
/*******************/
/*
*
* PROFESSEUR -> les groupes inscrits aux modules qu'il enseigne
*
*/
if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un élève
$request = new stdClass(); $answer = new stdClass();
$request->level_1 = 'grouplistForTeacher';
$request->enseignant = $_SESSION['identifiant'];
$request->annee = $_SESSION['annee'];
groups_switch_level_1($request, $answer);
if( $answer->request == 'success' && $answer->request == 'success' && count($answer->grouplist) > 0 ){ // si on a bien récupéré les membres du groupe
////////////////////////////////////////////////////////////////////////////////
echo "<section name='teachersgroups' data-title='Mes groupes' class='basic'>";
/* ON RECUPERE UNE LISTE UNIQUE DES SEMESTRES */
$ListeUIDFormations = array();
$ListeUIDSemestres = array();
$ListeUIDGroupes = array();
// Vérification de la formation si elle est définie
$verificationUIDFormations = array();
foreach($answer->grouplist as $groupe) // on récupère la liste des UID de FORMATIONS
if( !in_array($groupe['id_formation'], $verificationUIDFormations) )
array_push($verificationUIDFormations, $groupe['id_formation']);
// si la formation optionnelle n'est pas définie ou incohérente, on le fait (première valeur trouvée)
if( $formationOpt == null || !in_array($formationOpt, $verificationUIDFormations) )
$formationOpt = $verificationUIDFormations[0];
/**************************/
/* AFFINAGE PAR FORMATION */
/**************************/
echo "<table class='partlist' name='formation'><tbody><tr>";
foreach($answer->grouplist as $groupe){ if( !in_array($groupe['id_formation'], $ListeUIDFormations) ){
if( $groupe['id_formation'] == $formationOpt ) // si c'est la formation séléctionnée
echo "<td data-value='".$groupe['id_formation']."' class='active'>".$groupe['formation'].'</td>';
else // sinon on affiche normalement
echo "<td data-value='".$groupe['id_formation']."'>".$groupe['formation'].'</td>';
// on ajoute la formation à la liste pour ne pas la répéter
array_push($ListeUIDFormations, $groupe['id_formation']);
}}
echo "</tr></tbody></table>";
/*************************/
/* AFFINAGE PAR SEMESTRE */
/*************************/
echo "<table class='partlist' name='semestre'><tbody><tr>";
if( $semestreOpt == null ) echo "<td data-value='*' class='active'>Tous</td>";
else echo "<td data-value='*'>Tous</td>";
/* On récupère la liste des SEMESTRES en accord avec la FORMATION sélectionnée */
foreach($answer->grouplist as $groupe){ if( $groupe['id_formation'] == $formationOpt && !in_array($groupe['id_semestre'], $ListeUIDSemestres) ){
if( $groupe['id_semestre'] == $semestreOpt ) // si c'est le groupe séléctionné
echo "<td data-value='".$groupe['id_semestre']."' class='active'>".$groupe['semestre'].'</td>';
else // sinon on affiche normalement
echo "<td data-value='".$groupe['id_semestre']."'>".$groupe['semestre'].'</td>';
// on ajoute le semestre à la liste pour ne pas le répéter
array_push($ListeUIDSemestres, $groupe['id']);
}}
echo "</tr></tbody></table>";
2015-11-06 10:13:32 +00:00
/***********************/
/* AFFINAGE PAR GROUPE */
/***********************/
echo "<select name='groupe'>";
if( $groupeOpt == null ) echo "<option value='*' selected>Tous les groupes</option>";
else echo "<option value='*'>Tous les groupes</option>";
/* On récupère la liste des SEMESTRES en accord avec la FORMATION sélectionnée */
foreach($answer->grouplist as $groupe){ if( $groupe['id_formation'] == $formationOpt && in_array($groupe['id_semestre'], $ListeUIDSemestres) && !in_array($groupe['id'], $ListeUIDGroupes) ){
if( $groupe['id'] == $groupeOpt ) // si c'est le groupe séléctionné
echo "<option value='".$groupe['id']."' selected>".$groupe['nom'].'</option>';
else // sinon on affiche normalement
echo "<option value='".$groupe['id']."'>".$groupe['nom'].'</option>';
// on ajoute le semestre à la liste pour ne pas le répéter
array_push($ListeUIDSemestres, $groupe['id']);
}}
echo "</select>";
echo "<table class='basic col5'><thead><tr>";
echo '<th>Identifiant</td>';
echo '<th>Prenom</td>';
echo '<th>Nom</td>';
echo '<th>Semestre</td>';
echo '<th>Groupe</td>';
echo '</tr></thead></table>';
foreach($answer->grouplist as $group){ // pour chaque groupe
2015-11-06 10:13:32 +00:00
if( $group['id_formation'] == $formationOpt && ($semestreOpt==null || $semestreOpt==$group['id_semestre']) && ($groupeOpt==null || $groupeOpt==$group['id']) ){
2015-11-06 10:13:32 +00:00
if( count($group['userlist']) > 0 ){ // s'il y a des utilisateurs
echo "<table class='basic margin col5'>";
echo '<tbody>';
// pour chaque utilisateur
foreach($group['userlist'] as $user){
echo '<tr>';
echo "<td><span class=link>".$user['identifiant'].'</span></td>';
echo '<td>'.$user['prenom'].'</td>';
echo '<td>'.$user['nom'].'</td>';
echo '<td>'.$group['semestre'].'</td>';
echo '<td>Groupe <span class=stressed>'.$group['nom'].'</span></td>';
echo '</tr>';
}
// echo '<tr><td colspan=5 class=more></td></tr>';
echo '</tbody></table>';
}
2015-11-06 10:13:32 +00:00
}
}
echo '</section>';
////////////////////////////////////////////////////////////////////////////////
}else
echo "<section name='teachersgroups' data-title='Mes groupes' class='basic'><table class=basic><tbody><tr><td>Aucun groupe trouvé</td></tr></tbody></table></section>";
} ?>
<!-- DEPLACEMENT D'ELEVES -->
<?php
/****************************/
/*** DEPLACEMENT D'ELEVES ***/
/****************************/
if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un admin
for( $i = 2 ; $i <= 2 ; $i++ ){ // pour chaque semestre
$request = new stdClass();
$answer = new stdClass();
$request->level_1 = 'grouplistForYear';
$request->annee = $_SESSION['annee'];
groups_switch_level_1($request, $answer); // on fait la requête pour les groupes en fonction des filtres si définis
if( $answer->request == 'success' && $answer->request == 'success' ){ // si pas d'erreur
//////////////////////////////////////////////////////////////
echo "<section name='movestudents' data-title='Tous les groupes' class='basic'>";
/* ON RECUPERE UNE LISTE UNIQUE DES SEMESTRES */
$ListeUIDFormations = array();
$ListeUIDSemestres = array();
$ListeUIDGroupes = array();
// Vérification de la formation si elle est définie
$verificationUIDFormations = array();
foreach($answer->grouplist as $groupe) // on récupère la liste des UID de FORMATIONS
if( !in_array($groupe['id_formation'], $verificationUIDFormations) )
array_push($verificationUIDFormations, $groupe['id_formation']);
// si la formation optionnelle n'est pas définie ou incohérente, on le fait (première valeur trouvée)
if( $formationOpt == null || !in_array($formationOpt, $verificationUIDFormations) )
$formationOpt = $verificationUIDFormations[0];
/**************************/
/* AFFINAGE PAR FORMATION */
/**************************/
echo "<table class='partlist' name='formation'><tbody><tr>";
foreach($answer->grouplist as $groupe){ if( !in_array($groupe['id_formation'], $ListeUIDFormations) ){
// si c'est la formation séléctionnée
if( $groupe['id_formation'] == $formationOpt ) echo "<td data-value='".$groupe['id_formation']."' class='active'>".$groupe['formation'].'</td>';
else echo "<td data-value='".$groupe['id_formation']."'>".$groupe['formation'].'</td>';
// on ajoute la formation à la liste pour ne pas la répéter
array_push($ListeUIDFormations, $groupe['id_formation']);
}}
echo "</tr></tbody></table>";
/*************************/
/* AFFINAGE PAR SEMESTRE */
/*************************/
echo "<table class='partlist' name='semestre'><tbody><tr>";
if( $semestreOpt == null ) echo "<td data-value='*' class='active'>Tous</td>";
else echo "<td data-value='*'>Tous</td>";
/* On récupère la liste des SEMESTRES en accord avec la FORMATION sélectionnée */
foreach($answer->grouplist as $groupe){ if( $groupe['id_formation'] == $formationOpt && !in_array($groupe['id_semestre'], $ListeUIDSemestres) ){
// si c'est le semestre séléctionné
if( $groupe['id_semestre'] == $semestreOpt ) echo "<td data-value='".$groupe['id_semestre']."' class='active'>".$groupe['semestre'].'</td>';
else echo "<td data-value='".$groupe['id_semestre']."'>".$groupe['semestre'].'</td>';
// on ajoute le semestre à la liste pour ne pas le répéter
array_push($ListeUIDSemestres, $groupe['id_semestre']);
}}
echo "</tr></tbody></table>";
/***********************/
/* AFFINAGE PAR GROUPE */
/***********************/
echo "<select name='groupe'>";
if( $groupeOpt == null ) echo "<option value='*' selected>Tous les groupes</option>";
else echo "<option value='*'>Tous les groupes</option>";
/* On récupère la liste des GROUPES en accord avec la FORMATION et le SEMESTRE sélectionnée */
foreach($answer->grouplist as $groupe){ if( $groupe['id_formation'] == $formationOpt && in_array($groupe['id_semestre'], $ListeUIDSemestres) && !in_array($groupe['id'], $ListeUIDGroupes) ){
// si c'est le groupe sélectionné
if( $groupe['id'] == $groupeOpt ) echo "<option value='".$groupe['id']."' selected>".$groupe['nom'].'</option>';
else echo "<option value='".$groupe['id']."'>".$groupe['nom'].'</option>';
// on ajoute le semestre à la liste pour ne pas le répéter
array_push($ListeUIDGroupes, $groupe['id']);
}}
echo "</select>";
foreach($answer->grouplist as $group){ // pour chaque groupe
if( $group['id_formation'] == $formationOpt && ($semestreOpt==null || $semestreOpt==$group['id_semestre']) && ($groupeOpt==null || $groupeOpt==$group['id']) ){
if( count($group['userlist']) > 0 ){ // s'il y a des utilisateurs
echo "<table class='basic col4'>";
echo '<thead>';
echo '<tr>';
echo '<th colspan=5>';
echo 'Groupe <span>'.$group['nom'].'</span>';
echo '</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';
// pour chaque utilisateur
foreach($group['userlist'] as $user){
echo '<tr>';
echo "<td><span class=link>".$user['identifiant'].'</span></td>';
echo '<td>'.$user['prenom'].'</td>';
echo '<td>'.$user['nom'].'</td>';
// echo '<td><strong><span>'.$group['nom'].'</span></strong></td>';
// changement de groupe
echo '<td>';
echo "<select data-stre='".$group['id_semestre']."' class='deplacement_groupe'>";
foreach($answer->grouplist as $groupemodif) // pour tous les groupes
if( $groupemodif['semestre'] == $group['semestre'] ) // si c'est un groupe du même semestre uniquement
if( $groupemodif['nom'] == $group['nom'] ) // si c'est le groupe en cours, on le pré-sélectionne
echo "<option value='".$groupemodif['nom']."' selected>".$groupemodif['nom']."</option>";
else
echo "<option value='".$groupemodif['nom']."'>".$groupemodif['nom']."</option>";
echo '</select>';
echo "<div class='confirm'>déplacer</div>";
echo '</td>';
echo '</tr>';
}
// echo '<tr><td colspan=5 class=more></td></tr>';
echo '</tbody>';
echo '</table>';
}
}
}
echo '</section>';
////////////////////////////////////////////////////////
}else
echo "<section name='movestudents' data-title='Tous les groupes' class='basic'><table class=basic><tbody><tr><td>Aucun groupe trouvé</td></tr></tbody></table></section>";
}
} ?>
<?php
/*********************************/
/*** IMPORTATION FICHIER EXCEL ***/
/*********************************/
// if( permission('admin') ){
// echo "<section name='importexcel' data-title='Importation/Export' class='basic'>";
// //inclusion des classes de PHPExcel
// include __ROOT__.DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("src", "phpexcel", "Classes", "PHPExcel.php"));
// include __ROOT__.DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("src", "phpexcel", "Classes", "PHPExcel", "Writer", "Excel2007.php"));
// //On crée une instance du fichier xls, ainsi que de la feuille active
// $workbook = new PHPExcel();
// $sheet = $workbook->getActiveSheet();
// $writer = new PHPExcel_Writer_Excel2007($workbook);
// //on prépare le tableau
// $sheet->setCellValue('A1', 'IAE Etape');
// $sheet->setCellValue('B1', 'Nom');
// $sheet->setCellValue('C1', 'Prénom');
// $sheet->setCellValue('D1', 'Identifiant');
// $sheet->setCellValue('E1', 'Sexe');
// $sheet->setCellValue('F1', 'Mail étudiant');
// //on récupère l'ensemble des étudiants
// $request = new stdClass();
// $answer = new stdClass();
// $request->level_1 = 'grouplistForYear';
// $request->annee = $_SESSION['annee'];
// groups_switch_level_1($request, $answer);
// //Si l'execution s'est proprement effectuée
// $index = 2;
// if($answer->request == 'success') {
// foreach ($answer->grouplist as $group) {
// $groupeName = $group['nom'];
// foreach ($group->userlist as $student) {
// $sheet->setCellValue('A'.$index, $groupeName);
// $sheet->setCellValue('B'.$index, $student['nom']);
// $sheet->setCellValue('C'.$index, $student['prenom']);
// $sheet->setCellValue('D'.$index, $student['identifiant']);
// //$sheet->setCellValue('E'.$index, $student['sexe']);
// $sheet->setCellValue('F'.$index, $student['mail']);
// $index++;
// }
// }
// }
// //On enregistre le fichier
// $writer->save('test.xlsx');
// }
?>