Correction de la liste de proposition de changement de groupe (maintenant exhaustive) + correction de relation dans requête d'affichage des manager/repo@membres
This commit is contained in:
parent
917fdec52f
commit
853f2ec03e
|
@ -465,12 +465,6 @@ class DataBase{
|
|||
/*** retourne la liste des utilisateurs des groupes d'une année ***/
|
||||
/******************************************************************/
|
||||
public function listeEtudiantsTousGroupesAnnee($annee, $semestre_pair){
|
||||
/*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/
|
||||
$checkAnnee = DataBase::getPDO()->prepare("SELECT id_semestre as id FROM semestre WHERE annee = :annee");
|
||||
$checkAnnee->execute(array( ':annee' => $annee ));
|
||||
if( !( $checkAnnee->fetch()['id'] ) ) return 'unknown_year';
|
||||
|
||||
|
||||
// on récupère la liste des groupes
|
||||
$grouplist = DataBase::delNumeric( groupRepo::forYear($semestre_pair, $annee) );
|
||||
|
||||
|
@ -512,9 +506,9 @@ class DataBase{
|
|||
|
||||
// on vérifie que le semestre et que le groupe de destination existent
|
||||
if( !($semestreInfo=semestreRepo::info($semestre)) ) return 'unknown_semestre';
|
||||
if( !($destGroupeUID=groupRepo::UID($groupe)) ) return 'unknown_newgroup';
|
||||
if( !($destGroupeInfo=groupRepo::info($groupe)) ) return 'unknown_newgroup';
|
||||
|
||||
if( groupRepo::ajouterMembre($etudiant, $destGroupeUID, $semestreInfo['id']) )
|
||||
if( groupRepo::ajouterMembre($etudiant, $destGroupeInfo['id'], $semestreInfo['id']) )
|
||||
return 'success';
|
||||
else
|
||||
return 'error';
|
||||
|
@ -523,6 +517,27 @@ class DataBase{
|
|||
|
||||
|
||||
|
||||
/* retourne la liste exhaustive des groupes de la BDD
|
||||
*
|
||||
* @return grouplist<Array> la liste de tous les groupes de la BDD
|
||||
*
|
||||
*/
|
||||
public function getExhaustiveGroupList(){
|
||||
$grouplist = groupRepo::getAllGroups();
|
||||
|
||||
// on essaie de supposer le semestre en fonction du nom
|
||||
foreach($grouplist as $i=>$group)
|
||||
if( preg_match('/^(?:.+)?S(\d)(?:.+)?$/', $group['nom'], $m) ) // si le semestre est dans le nom
|
||||
$grouplist[$i]['rang'] = intval($m[1]); // on récupère le rang
|
||||
else
|
||||
$grouplist[$i]['rang'] = null; // sinon rang = null
|
||||
|
||||
|
||||
return $grouplist;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -231,12 +231,11 @@ require_once __ROOT__.'/manager/database.php';
|
|||
case 'move': if( permission('admin') ){
|
||||
|
||||
$areSetParam = isset($request->etudiant) && isset($request->groupe) && isset($request->semestre); // les arguments existent
|
||||
$typeOkParam = $areSetParam && is_string($request->etudiant) && is_string($request->groupe); // si c'est des strings
|
||||
$nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && strlen($request->groupe) > 0 && is_numeric($request->semestre); // d'au moins 1 caractère
|
||||
$typeOkParam = $areSetParam && is_string($request->etudiant) && is_numeric($request->groupe); // si c'est des strings
|
||||
$nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && is_numeric($request->semestre); // d'au moins 1 caractère
|
||||
$etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // etudiant (username) bon format
|
||||
$groupeCheck = $etudiantCheck && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe); // groupe (nom) bon format
|
||||
|
||||
if( $groupeCheck ){ // si param ok
|
||||
if( $etudiantCheck ){ // si param ok
|
||||
$answer->request = DataBase::getInstance()->deplacerEtudiant($request->etudiant, $request->groupe, $request->semestre);
|
||||
}else
|
||||
$answer->request = 'param_error';
|
||||
|
@ -247,6 +246,21 @@ require_once __ROOT__.'/manager/database.php';
|
|||
|
||||
|
||||
|
||||
/******************************************/
|
||||
/* la liste de TOUS les groupes de la BDD */
|
||||
/******************************************/
|
||||
case 'exhaustiveList': if( permission('admin') ){
|
||||
|
||||
$answer->grouplist = DataBase::getInstance()->getExhaustiveGroupList();
|
||||
$answer->request = 'success';
|
||||
|
||||
}else
|
||||
$answer->request = 'permission_error';
|
||||
break;
|
||||
|
||||
|
||||
|
||||
|
||||
/*******************************************/
|
||||
/* intégration des élèves pour un semestre */
|
||||
/*******************************************/
|
||||
|
@ -262,6 +276,11 @@ require_once __ROOT__.'/manager/database.php';
|
|||
$answer->request = 'permission_error';
|
||||
break;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***********/
|
||||
/* DEFAULT */
|
||||
/***********/
|
||||
|
|
|
@ -41,7 +41,7 @@ class groupRepo extends DBAccess{
|
|||
*/
|
||||
public static function info($groupeUID){
|
||||
// on considère que le groupe existe
|
||||
$getGroupeInfo = DataBase::getPDO()->prepare("SELECT id_groupe as id, nom, libelle FROM groupe WHERE id_groupe = :groupeUID");
|
||||
$getGroupeInfo = DataBase::getPDO()->prepare("SELECT id_groupe as id, nom FROM groupe WHERE id_groupe = :groupeUID");
|
||||
$getGroupeInfo->execute(array( ':groupeUID' => $groupeUID ));
|
||||
|
||||
return DataBase::delNumeric( $getGroupeInfo->fetch(), true );
|
||||
|
@ -121,7 +121,7 @@ class groupRepo extends DBAccess{
|
|||
*
|
||||
*/
|
||||
public static function ajouterMembre($etudiant, $groupe, $semestre){
|
||||
debug();
|
||||
|
||||
/* [1] On vérifie si l'utilisateur appartient à un groupe pour ce semestre
|
||||
===========================================================================*/
|
||||
if( $appartenanceUID = groupRepo::forStudent($etudiant, $semestre)['id_appartenance'] ){ // si c'est le cas
|
||||
|
@ -143,11 +143,7 @@ class groupRepo extends DBAccess{
|
|||
==============================*/
|
||||
// création et exécution de la requête de création d'appartenance
|
||||
$ajouterMembres = DataBase::getPDO()->prepare("INSERT INTO appartenance(id_etudiant, id_groupe, id_semestre)
|
||||
VALUES(
|
||||
(SELECT identifiant FROM utilisateur WHERE identifiant = :etudiant),
|
||||
(SELECT id_groupe FROM groupe WHERE id_groupe = :groupe),
|
||||
(SELECT id_semestre FROM semestre WHERE id_semestre = :semestre)
|
||||
)");
|
||||
VALUES(:etudiant, :groupe, :semestre)");
|
||||
$ajouterMembres->execute(array(
|
||||
':etudiant' => $etudiant,
|
||||
':groupe' => $groupe,
|
||||
|
@ -179,7 +175,7 @@ class groupRepo extends DBAccess{
|
|||
WHERE s.id_formation = f.id_formation
|
||||
AND u.identifiant = app.id_etudiant
|
||||
AND g.id_groupe = app.id_groupe
|
||||
AND app.id_semestre = app.id_semestre
|
||||
AND app.id_semestre = s.id_semestre
|
||||
|
||||
AND g.id_groupe = :groupeUID
|
||||
AND s.id_semestre = :semestreUID
|
||||
|
@ -325,6 +321,17 @@ class groupRepo extends DBAccess{
|
|||
|
||||
|
||||
|
||||
/* retourne la liste exhaustive des groupes
|
||||
*
|
||||
* @return groupes<Array> retourne la liste des groupes de la BDD
|
||||
*
|
||||
*/
|
||||
public static function getAllGroups(){
|
||||
$getGroupList = DataBase::getPDO()->query("SELECT id_groupe as id, nom FROM groupe ORDER BY nom ASC");
|
||||
// $getGroupList = DataBase::getPDO()->query("SELECT id_groupe as id, nom FROM groupe WHERE length(nom) <= 6 ORDER BY nom ASC");
|
||||
|
||||
return DataBase::delNumeric( $getGroupList->fetchAll() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -362,18 +362,23 @@ if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un
|
|||
/****************************/
|
||||
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();
|
||||
$requestAllGroups = new stdClass(); $answerAllGroups = new stdClass();
|
||||
// on récupère la liste de tous les groupes (pour le déplacement)
|
||||
$requestAllGroups->level_1 = 'exhaustiveList';
|
||||
|
||||
groups_switch_level_1($requestAllGroups, $answerAllGroups);
|
||||
|
||||
// on récupère les groupes affichés sur la page
|
||||
$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
|
||||
if( $answer->request == 'success' && $answerAllGroups->request == 'success' ){ // si pas d'erreur
|
||||
//////////////////////////////////////////////////////////////
|
||||
echo "<section name='movestudents' data-title='Tous les groupes' class='basic'>";
|
||||
|
||||
|
@ -466,7 +471,7 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm
|
|||
|
||||
if( count($group['userlist']) > 0 ){ // s'il y a des utilisateurs
|
||||
|
||||
echo "<table class='basic col4'>";
|
||||
echo "<table class='basic col5'>";
|
||||
|
||||
echo '<thead>';
|
||||
echo '<tr>';
|
||||
|
@ -487,20 +492,21 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm
|
|||
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>'.$group['nom'].'</td>';
|
||||
echo '<td>';
|
||||
echo "<select data-stre='".$group['id_semestre']."' class='deplacement_groupe'>";
|
||||
|
||||
foreach($answer->grouplist as $groupemodif) // pour tous les groupes
|
||||
if( $groupemodif['id_semestre'] == $group['id_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>";
|
||||
/* CHANGEMENT DE GROUPE */
|
||||
echo "<select data-stre='".$group['id_semestre']."' class='deplacement_groupe'>";
|
||||
// on affiche le groupe courant
|
||||
echo "<option value='".$group['id']."' selected>".$group['nom']."</option>";
|
||||
|
||||
foreach($answerAllGroups->grouplist as $groupemodif) // pour tous les groupes
|
||||
if( $groupemodif['rang'] == $group['rang'] && $groupemodif['id'] != $group['id'] ) // si c'est un groupe du même rang et pas le groupe actuel
|
||||
echo "<option value='".$groupemodif['id']."'>".$groupemodif['nom']."</option>";
|
||||
|
||||
echo '</select>';
|
||||
echo "<div class='confirm'>déplacer</div>";
|
||||
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
|
@ -519,7 +525,6 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm
|
|||
////////////////////////////////////////////////////////
|
||||
}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>";
|
||||
}
|
||||
|
||||
} ?>
|
||||
|
||||
|
|
32
test.php
32
test.php
|
@ -46,30 +46,30 @@ require_once __ROOT__.'/manager/security.php';
|
|||
|
||||
debug();
|
||||
|
||||
$_SESSION['annee'] = 2018;
|
||||
$_SESSION['annee'] = 2019;
|
||||
|
||||
require_once __ROOT__.'/manager/phpExcel.php';
|
||||
require_once __ROOT__.'/manager/groups.php';
|
||||
// require_once __ROOT__.'/manager/phpExcel.php';
|
||||
// require_once __ROOT__.'/manager/groups.php';
|
||||
|
||||
$r1 = new stdClass(); $a1 = new stdClass();
|
||||
$r1->level_1 = 'import_inscrits';
|
||||
$r1->docPath = __ROOT__.'/src/files/modele_import_inscrits.xlsx';
|
||||
// $r1 = new stdClass(); $a1 = new stdClass();
|
||||
// $r1->level_1 = 'import_inscrits';
|
||||
// $r1->docPath = __ROOT__.'/src/files/modele_import_inscrits.xlsx';
|
||||
|
||||
xlsx_switch_lvl1($r1, $a1);
|
||||
// xlsx_switch_lvl1($r1, $a1);
|
||||
|
||||
|
||||
if( $a1->request == 'success' ){
|
||||
// if( $a1->request == 'success' ){
|
||||
|
||||
$r2 = new stdClass(); $a2 = new stdClass();
|
||||
$r2->level_1 = 'addUserlist';
|
||||
$r2->rang = 1;
|
||||
$r2->annee = 2018;
|
||||
$r2->formationList = $a1->formationList;
|
||||
// $r2 = new stdClass(); $a2 = new stdClass();
|
||||
// $r2->level_1 = 'addUserlist';
|
||||
// $r2->rang = 1;
|
||||
// $r2->annee = 2018;
|
||||
// $r2->formationList = $a1->formationList;
|
||||
|
||||
groups_switch_level_1($r2, $a2);
|
||||
// groups_switch_level_1($r2, $a2);
|
||||
|
||||
var_dump( $a2 );
|
||||
}
|
||||
// var_dump( $a2 );
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue