Ajout de la fonctionnalité de selection semestre(ou)groupe pour la section COMPOSITION + correction de la fonction "MOVE" qui vérifie maintenant qu'on ne passe pas d'un semestre à un autre
This commit is contained in:
parent
954698d2b0
commit
dcf23ef06a
|
@ -1035,49 +1035,31 @@ class DataBase{
|
||||||
/******************************************************/
|
/******************************************************/
|
||||||
/***** déplace un étudiant d'un groupe à un autre *****/
|
/***** déplace un étudiant d'un groupe à un autre *****/
|
||||||
/******************************************************/
|
/******************************************************/
|
||||||
public function deplacerEtudiant($etudiant, $groupe, $semestre, $annee){
|
public function deplacerEtudiant($etudiant, $groupe, $annee){
|
||||||
/*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/
|
|
||||||
$getSemestreUID = $this->pdo->prepare("SELECT id_semestre as id FROM semestre WHERE rang = :rang AND annee = :annee");
|
|
||||||
$getSemestreUID->execute(array(
|
|
||||||
':rang' => $semestre,
|
|
||||||
':annee' => $annee
|
|
||||||
));
|
|
||||||
|
|
||||||
// si on trouve, on le définit, sinon on retourne "unknown_group"
|
|
||||||
if( $semestreUID = $getSemestreUID->fetch()['id'] )
|
|
||||||
$semestreUID = (int) $semestreUID;
|
|
||||||
else
|
|
||||||
return 'unknown_semestre';
|
|
||||||
|
|
||||||
|
|
||||||
/*** on cherche un utilisateur avec cet identifiant ***/
|
|
||||||
$getEtudiantUID = $this->pdo->prepare("SELECT identifiant as id FROM utilisateur as u, appartenance as app ".
|
|
||||||
"WHERE u.identifiant = app.id_etudiant ".
|
|
||||||
"AND u.identifiant = :etudiant ".
|
|
||||||
"AND app.id_semestre = :semestreUID");
|
|
||||||
$getEtudiantUID->execute(array(
|
|
||||||
':etudiant' => $etudiant,
|
|
||||||
':semestreUID' => $semestreUID
|
|
||||||
));
|
|
||||||
|
|
||||||
// si on trouve, on le définit, sinon on retourne "unknown_user"
|
|
||||||
if( $etudiantUID = $getEtudiantUID->fetch()['id'] )
|
|
||||||
$etudiantUID = $etudiantUID;
|
|
||||||
else
|
|
||||||
return 'unknown_user';
|
|
||||||
|
|
||||||
|
|
||||||
/*** on cherche le nouveau groupe pour cet utilisateur ***/
|
/*** on cherche le nouveau groupe pour cet utilisateur ***/
|
||||||
$getNouveauGroupeUID = $this->pdo->prepare("SELECT g.id_groupe as id ".
|
$getNouveauGroupeUID = $this->pdo->prepare("SELECT DISTINCT s.id_semestre as semestre, g.id_groupe as id, u.identifiant as etuUID ".
|
||||||
"FROM groupe as g ".
|
"FROM groupe as g, appartenance as app, appartenance as myapp, utilisateur as u, semestre as s ".
|
||||||
"WHERE g.nom = :groupe");
|
"WHERE g.nom = :groupe ".
|
||||||
|
"AND u.identifiant = :etudiant ".
|
||||||
|
|
||||||
|
"AND myapp.id_etudiant = u.identifiant ".
|
||||||
|
"AND myapp.id_semestre = s.id_semestre ".
|
||||||
|
|
||||||
|
"AND app.id_groupe = g.id_groupe ".
|
||||||
|
"AND app.id_semestre = s.id_semestre");
|
||||||
$getNouveauGroupeUID->execute(array(
|
$getNouveauGroupeUID->execute(array(
|
||||||
':groupe' => $groupe
|
':groupe' => $groupe,
|
||||||
|
':etudiant' => $etudiant
|
||||||
));
|
));
|
||||||
|
|
||||||
// si on trouve, on le définit, sinon on retourne "unknown_user"
|
// si on trouve, on le définit, sinon on retourne "unknown_user"
|
||||||
if( $nouveauGroupeUID = $getNouveauGroupeUID->fetch()['id'] )
|
if( $data = $getNouveauGroupeUID->fetch() ){
|
||||||
$nouveauGroupeUID = $nouveauGroupeUID;
|
$nouveauGroupeUID = (int) $data['id'];
|
||||||
|
$semestreUID = $data['semestre'];
|
||||||
|
$etudiantUID = $data['etuUID'];
|
||||||
|
}
|
||||||
else
|
else
|
||||||
return 'unknown_newgroup';
|
return 'unknown_newgroup';
|
||||||
|
|
||||||
|
|
|
@ -210,16 +210,14 @@ require_once __ROOT__.'/manager/database.php';
|
||||||
/* déplace un étudiant de son groupe à un autre */
|
/* déplace un étudiant de son groupe à un autre */
|
||||||
/************************************************/
|
/************************************************/
|
||||||
case 'move':
|
case 'move':
|
||||||
$areSetParam = isset($request->etudiant) && isset($request->groupe) && isset($request->semestre) && isset($request->annee); // les arguments existent
|
$areSetParam = isset($request->etudiant) && isset($request->groupe); // les arguments existent
|
||||||
$typeOkParam = $areSetParam && is_string($request->etudiant) && is_string($request->groupe) && is_numeric($request->semestre) && is_numeric($request->annee); // si c'est des strings
|
$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; // d'au moins 1 caractère
|
$nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && strlen($request->groupe) > 0; // d'au moins 1 caractère
|
||||||
$etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // etudiant (username) bon format
|
$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
|
$groupeCheck = $etudiantCheck && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe); // groupe (nom) bon format
|
||||||
$semestreCheck = $groupeCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format
|
|
||||||
$anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
|
|
||||||
|
|
||||||
if( $groupeCheck ){ // si param ok
|
if( $groupeCheck ){ // si param ok
|
||||||
$answer->request = DataBase::getInstance()->deplacerEtudiant($request->etudiant, $request->groupe, $request->semestre, $request->annee);
|
$answer->request = DataBase::getInstance()->deplacerEtudiant($request->etudiant, $request->groupe, $_SESSION['annee']);
|
||||||
}else
|
}else
|
||||||
$answer->answer = 'param_error';
|
$answer->answer = 'param_error';
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -57,9 +57,7 @@ if( document.querySelector('#CONTAINER section[name=movestudents]') != null ){ /
|
||||||
level_0: 'groups',
|
level_0: 'groups',
|
||||||
level_1: 'move',
|
level_1: 'move',
|
||||||
etudiant: id_etudiant,
|
etudiant: id_etudiant,
|
||||||
groupe: nom_groupe,
|
groupe: nom_groupe
|
||||||
semestre: 2,
|
|
||||||
annee: 2015
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// l'ordre n'est pas alphabétique mais va à la fin
|
// l'ordre n'est pas alphabétique mais va à la fin
|
||||||
|
@ -81,7 +79,21 @@ if( document.querySelector('#CONTAINER section[name=movestudents]') != null ){ /
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
/*** GESTION DES SELECT POUR AFFINER LES GROUPES ***/
|
/*** GESTION DES SELECT POUR AFFINER LES GROUPES ***/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
var selectGroupes = document.querySelectorAll("#CONTAINER > section[name] > select");
|
var selectList = document.querySelectorAll("#CONTAINER > section[name] > select");
|
||||||
for( var i = 0 ; i < selectGroupes.length ; i++ )
|
|
||||||
selectGroupes[i].associatedSection = selectGroupes[i].parentNode.getAttribute('name');
|
|
||||||
console.log( selectGroupes );
|
// GESTION DE LA PRISE EN COMPTE DES SELECT //
|
||||||
|
DOM.CONTAINER.addEventListener('change', function(e){
|
||||||
|
if( e.target.tagName == 'SELECT' && ['semestre', 'groupe'].indexOf(e.target.getAttribute('name')) > -1 ){
|
||||||
|
if( e.target.getAttribute('name') == 'semestre' ){ // si modifie le semestre
|
||||||
|
pageM.vars[1] = e.target.value; // on selectionne semestre
|
||||||
|
pageM.vars[2] = '*'; // on désactive le groupe
|
||||||
|
}else{
|
||||||
|
pageM.vars[1] = '*'; // on désactive le semestre
|
||||||
|
pageM.vars[2] = e.target.value; // on active le groupe
|
||||||
|
}
|
||||||
|
|
||||||
|
selectSection( document.querySelector('#MENU > span[data-link='+pageM.page+']') );
|
||||||
|
// console.log(e.target.getAttribute('name')+' = '+e.target.value);
|
||||||
|
}
|
||||||
|
}, false);
|
|
@ -24,14 +24,12 @@ require_once __ROOT__.'/manager/groups.php';
|
||||||
array_push($postVars, $k);
|
array_push($postVars, $k);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* GESTION SEMESTRE OPTIONNEL */
|
/* GESTION SEMESTRE OPTIONNEL */
|
||||||
if( isset($postVars[1]) && is_numeric($postVars[1]) )
|
if( isset($postVars[1]) && is_numeric($postVars[1]) )
|
||||||
$semestreOpt = $postVars[1];
|
$semestreOpt = $postVars[1];
|
||||||
else
|
else
|
||||||
$semestreOpt = null;
|
$semestreOpt = null;
|
||||||
|
|
||||||
echo 'semestre '.$semestreOpt;
|
|
||||||
|
|
||||||
/* GESTION GROUPES OPTIONNEL */
|
/* GESTION GROUPES OPTIONNEL */
|
||||||
if( isset($postVars[2]) && is_string($postVars[2]) && strlen($postVars[2]) > 1 )
|
if( isset($postVars[2]) && is_string($postVars[2]) && strlen($postVars[2]) > 1 )
|
||||||
|
@ -39,8 +37,6 @@ require_once __ROOT__.'/manager/groups.php';
|
||||||
else
|
else
|
||||||
$groupeOpt = null;
|
$groupeOpt = null;
|
||||||
|
|
||||||
echo 'groupe '.$groupeOpt;
|
|
||||||
|
|
||||||
|
|
||||||
/************************/
|
/************************/
|
||||||
/*** TOUS LES GROUPES ***/
|
/*** TOUS LES GROUPES ***/
|
||||||
|
@ -128,6 +124,8 @@ if( $_SESSION['identifiant'] != null && ($_SESSION['droits'] == 'teacher' || $_S
|
||||||
|
|
||||||
$request->level_1 = 'grouplistForYear';
|
$request->level_1 = 'grouplistForYear';
|
||||||
$request->annee = $_SESSION['annee'];
|
$request->annee = $_SESSION['annee'];
|
||||||
|
if ( $semestreOpt != null ) $request->semestre = $semestreOpt;
|
||||||
|
elseif( $groupeOpt != null ) $request->groupe = $groupeOpt;
|
||||||
|
|
||||||
groups_switch_level_1($request, $answer);
|
groups_switch_level_1($request, $answer);
|
||||||
|
|
||||||
|
@ -137,11 +135,15 @@ if( $_SESSION['identifiant'] != null && ($_SESSION['droits'] == 'teacher' || $_S
|
||||||
/* select pour SEMESTRES */
|
/* select pour SEMESTRES */
|
||||||
$lastSemestre = null;
|
$lastSemestre = null;
|
||||||
|
|
||||||
echo "<select>";
|
echo "<select name='semestre'>";
|
||||||
echo "<option>Choix du semestre</option>";
|
echo "<option value='*'>Tous les semestres</option>";
|
||||||
foreach($answer->grouplist as $group){
|
foreach($answer->grouplist as $group){
|
||||||
if( $lastSemestre == null || $lastSemestre != $group->semestre ){
|
if( $lastSemestre == null || $lastSemestre != $group->semestre ){
|
||||||
echo '<option>'.$group->semestre.'</option>';
|
|
||||||
|
if( $group->semestre[1] == $semestreOpt ) // si c'est le semestre séléctionné
|
||||||
|
echo "<option value='".$group->semestre[1]."' selected>".$group->semestre.'</option>';
|
||||||
|
else // sinon on affiche normalement
|
||||||
|
echo "<option value='".$group->semestre[1]."'>".$group->semestre.'</option>';
|
||||||
$lastSemestre = $group->semestre;
|
$lastSemestre = $group->semestre;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -150,11 +152,16 @@ if( $_SESSION['identifiant'] != null && ($_SESSION['droits'] == 'teacher' || $_S
|
||||||
/* select pour GROUPES */
|
/* select pour GROUPES */
|
||||||
$lastGroupe = null;
|
$lastGroupe = null;
|
||||||
|
|
||||||
echo "<select>";
|
echo "<select name='groupe'>";
|
||||||
echo "<option>Choix du groupe</option>";
|
echo "<option value='*'>Tous les groupes</option>";
|
||||||
foreach($answer->grouplist as $group){
|
foreach($answer->grouplist as $group){
|
||||||
if( $lastGroupe == null || $lastGroupe != $group->nom ){
|
if( $lastGroupe == null || $lastGroupe != $group->nom ){
|
||||||
echo '<option>'.$group->nom.'</option>';
|
|
||||||
|
if( $group->nom == $groupeOpt ) // si c'est le groupe séléctionné
|
||||||
|
echo "<option value='".$group->nom."' selected>".$group->nom.'</option>';
|
||||||
|
else
|
||||||
|
echo "<option value='".$group->nom."'>".$group->nom.'</option>';
|
||||||
|
|
||||||
$lastGroupe = $group->nom;
|
$lastGroupe = $group->nom;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -307,6 +314,9 @@ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'teacher' ){ // s
|
||||||
$request->level_1 = 'grouplistForTeacher'; /******************************************************************************************************** A FAIRE **/
|
$request->level_1 = 'grouplistForTeacher'; /******************************************************************************************************** A FAIRE **/
|
||||||
$request->enseignant = $_SESSION['identifiant'];
|
$request->enseignant = $_SESSION['identifiant'];
|
||||||
$request->annee = $_SESSION['annee'];
|
$request->annee = $_SESSION['annee'];
|
||||||
|
if ( $semestreOpt != null ) $request->semestre = $semestreOpt;
|
||||||
|
elseif( $groupeOpt != null ) $request->groupe = $groupeOpt;
|
||||||
|
|
||||||
groups_switch_level_1($request, $answer);
|
groups_switch_level_1($request, $answer);
|
||||||
|
|
||||||
if( $answer->request == 'success' ){ // si on a bien récupéré les membres du groupe
|
if( $answer->request == 'success' ){ // si on a bien récupéré les membres du groupe
|
||||||
|
@ -315,11 +325,16 @@ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'teacher' ){ // s
|
||||||
/* select pour SEMESTRES */
|
/* select pour SEMESTRES */
|
||||||
$lastSemestre = null;
|
$lastSemestre = null;
|
||||||
|
|
||||||
echo "<select>";
|
echo "<select name='semestre'>";
|
||||||
echo "<option>Choix du semestre</option>";
|
echo "<option value='*'>Tous les semestres</option>";
|
||||||
foreach($answer->grouplist as $group){
|
foreach($answer->grouplist as $group){
|
||||||
if( $lastSemestre == null || $lastSemestre != $group->semestre ){
|
if( $lastSemestre == null || $lastSemestre != $group->semestre ){
|
||||||
echo '<option>'.$group->semestre.'</option>';
|
|
||||||
|
if( $group->semestre[1] == $semestreOpt ) // si c'est le semestre séléctionné
|
||||||
|
echo "<option value='".$group->semestre[1]."' selected>".$group->semestre.'</option>';
|
||||||
|
else // sinon on affiche normalement
|
||||||
|
echo "<option value='".$group->semestre[1]."'>".$group->semestre.'</option>';
|
||||||
|
|
||||||
$lastSemestre = $group->semestre;
|
$lastSemestre = $group->semestre;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -328,11 +343,16 @@ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'teacher' ){ // s
|
||||||
/* select pour GROUPES */
|
/* select pour GROUPES */
|
||||||
$lastGroupe = null;
|
$lastGroupe = null;
|
||||||
|
|
||||||
echo "<select>";
|
echo "<select name='groupe'>";
|
||||||
echo "<option>Choix du groupe</option>";
|
echo "<option value='*'>Tous les groupes</option>";
|
||||||
foreach($answer->grouplist as $group){
|
foreach($answer->grouplist as $group){
|
||||||
if( $lastGroupe == null || $lastGroupe != $group->nom ){
|
if( $lastGroupe == null || $lastGroupe != $group->nom ){
|
||||||
echo '<option>'.$group->nom.'</option>';
|
|
||||||
|
if( $group->nom == $groupeOpt ) // si c'est le groupe séléctionné
|
||||||
|
echo "<option value='".$group->nom."' selected>".$group->nom.'</option>';
|
||||||
|
else
|
||||||
|
echo "<option value='".$group->nom."'>".$group->nom.'</option>';
|
||||||
|
|
||||||
$lastGroupe = $group->nom;
|
$lastGroupe = $group->nom;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -404,14 +424,54 @@ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'admin' ){ // si
|
||||||
$answer = new stdClass();
|
$answer = new stdClass();
|
||||||
|
|
||||||
$request->level_1 = 'grouplistForYear';
|
$request->level_1 = 'grouplistForYear';
|
||||||
$request->semestre = $i;
|
|
||||||
$request->annee = $_SESSION['annee'];
|
$request->annee = $_SESSION['annee'];
|
||||||
|
if ( $semestreOpt != null ) $request->semestre = $semestreOpt;
|
||||||
|
elseif( $groupeOpt != null ) $request->groupe = $groupeOpt;
|
||||||
|
|
||||||
groups_switch_level_1($request, $answer);
|
groups_switch_level_1($request, $answer);
|
||||||
|
|
||||||
if( $answer->request == 'success' ){ // si pas d'erreur
|
if( $answer->request == 'success' ){ // si pas d'erreur
|
||||||
//////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
/* select pour SEMESTRES */
|
||||||
|
$lastSemestre = null;
|
||||||
|
|
||||||
|
echo "<select name='semestre'>";
|
||||||
|
echo "<option value='*'>Tous les semestres</option>";
|
||||||
|
foreach($answer->grouplist as $group){
|
||||||
|
if( $lastSemestre == null || $lastSemestre != $group->semestre ){
|
||||||
|
|
||||||
|
if( $group->semestre[1] == $semestreOpt ) // si c'est le semestre séléctionné
|
||||||
|
echo "<option value='".$group->semestre[1]."' selected>".$group->semestre.'</option>';
|
||||||
|
else // sinon on affiche normalement
|
||||||
|
echo "<option value='".$group->semestre[1]."'>".$group->semestre.'</option>';
|
||||||
|
|
||||||
|
$lastSemestre = $group->semestre;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo "<select>";
|
||||||
|
|
||||||
|
/* select pour GROUPES */
|
||||||
|
$lastGroupe = null;
|
||||||
|
|
||||||
|
echo "<select name='groupe'>";
|
||||||
|
echo "<option value='*'>Tous les groupes</option>";
|
||||||
|
foreach($answer->grouplist as $group){
|
||||||
|
if( $lastGroupe == null || $lastGroupe != $group->nom ){
|
||||||
|
|
||||||
|
if( $group->nom == $groupeOpt ) // si c'est le groupe séléctionné
|
||||||
|
echo "<option value='".$group->nom."' selected>".$group->nom.'</option>';
|
||||||
|
else
|
||||||
|
echo "<option value='".$group->nom."'>".$group->nom.'</option>';
|
||||||
|
|
||||||
|
$lastGroupe = $group->nom;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo "<select>";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
foreach($answer->grouplist as $group){ // pour chaque groupe
|
foreach($answer->grouplist as $group){ // pour chaque groupe
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue