[x] Import appréciations jury
+ sous-caté sur @career + @excelManager + export (si déjà donné, "ADM/ADJ/...", sinon "[A compléter]") + import pour un semestre + déploiement de l'application de la mention jury
This commit is contained in:
parent
be13fecb9e
commit
4c3d629edb
|
@ -346,26 +346,27 @@ class careerManager{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************/
|
||||||
/****************************************/
|
/* Intégration des mentions jury pour un semestre */
|
||||||
/* Passage de semestre pour un étudiant */
|
/**************************************************/
|
||||||
/****************************************/
|
|
||||||
/*
|
/*
|
||||||
* Cherche si un semestre de même formation
|
*
|
||||||
* et de rang supérieur existe pour cette même année A
|
* @semestre<int> UID du semestre en question
|
||||||
* ou l'année suivante A+1 avec rang+1
|
* @jury<Array> Tableau contenant les étudiants et leurs mentions
|
||||||
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
case 'passageSemestre': if( permission('admin') ){
|
case 'applyJurySemestre': if( permission('admin') ){
|
||||||
|
|
||||||
$areSetParam = isset($request->etudiant) && isset($request->semestre); // les arguments existent
|
$areSetParam = isset($request->semestre) && isset($request->jury); // les arguments existent
|
||||||
$etudiantCheck = $areSetParam && checkParam($request->etudiant, 'utilisateur.identifiant'); // l'identifiant de l'étudiant est au bon format
|
$juryCheck = $areSetParam && checkParam($request->jury, '<array>'); // les mentions jury est au bon format
|
||||||
$semestreCheck = $$etudiantCheck && checkParam($request->semestre, 'auto_increment_id'); // l'id du semestre est au bon format
|
$semestreCheck = $juryCheck && checkParam($request->semestre, 'auto_increment_id'); // le semestre est au bon format
|
||||||
|
|
||||||
|
|
||||||
if( $semestreCheck ){ // si tout les paramètres sont bons
|
if( $semestreCheck ){ // si tout les paramètres sont bons
|
||||||
$passageStatus = DataBase::getInstance()->passageSemestre($request->etudiant, $request->semestre);
|
$integration = DataBase::getInstance()->applyJurySemestre($request->semestre, $request->jury);
|
||||||
if( $creationOk )
|
|
||||||
|
if( $integration )
|
||||||
$answer->request = 'success';
|
$answer->request = 'success';
|
||||||
else
|
else
|
||||||
$answer->request = 'error';
|
$answer->request = 'error';
|
||||||
|
@ -379,8 +380,6 @@ class careerManager{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***********/
|
/***********/
|
||||||
/* DEFAULT */
|
/* DEFAULT */
|
||||||
/***********/
|
/***********/
|
||||||
|
|
|
@ -637,6 +637,26 @@ class DataBase{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Applique les mentions du jury aux étudiants d'un semestre
|
||||||
|
*
|
||||||
|
* @semestre<int> UID du semestre en question
|
||||||
|
* @jury<Array> Tableau contenant les étudiants et leurs mention
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @return success<Boolean> Retourne VRAI si aucune erreur n'occure, sinon retourne FAUX
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function applyJurySemestre($semestre, $jury){
|
||||||
|
$state = true;
|
||||||
|
foreach($jury as $ETU){
|
||||||
|
$state = $state && DataBase::getInstance()->applyJuryTo($ETU->etudiant, $semestre, $ETU->mention) == 'success';
|
||||||
|
}
|
||||||
|
|
||||||
|
return $state;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Applique la mention du jury à un étudiant d'un semestre
|
/* Applique la mention du jury à un étudiant d'un semestre
|
||||||
*
|
*
|
||||||
* @etudiant<String> UID de l'étudiant en question
|
* @etudiant<String> UID de l'étudiant en question
|
||||||
|
@ -654,7 +674,7 @@ class DataBase{
|
||||||
*/
|
*/
|
||||||
public function applyJuryTo($etudiant, $semestre, $mention){
|
public function applyJuryTo($etudiant, $semestre, $mention){
|
||||||
|
|
||||||
// on vérifie que le semestre et que l'étudiant existent
|
// on vérifie que le semestre existe et que l'étudiant est inscrit à ce semestre
|
||||||
if( !($semestreInfo=semestreRepo::info($semestre)) ) return 'unknown_semestre';
|
if( !($semestreInfo=semestreRepo::info($semestre)) ) return 'unknown_semestre';
|
||||||
if( !($etudiantUID=userRepo::UID($etudiant, $semestre)) ) return 'unknown_user';
|
if( !($etudiantUID=userRepo::UID($etudiant, $semestre)) ) return 'unknown_user';
|
||||||
|
|
||||||
|
@ -699,9 +719,9 @@ class DataBase{
|
||||||
$appartenanceUID = groupRepo::includeAppartenance($etudiant, $rdbSemestre);
|
$appartenanceUID = groupRepo::includeAppartenance($etudiant, $rdbSemestre);
|
||||||
}
|
}
|
||||||
|
|
||||||
if( isset($nextSemestre) ) var_dump('nxt: '.$nextSemestre);
|
// if( isset($nextSemestre) ) var_dump('nxt: '.$nextSemestre);
|
||||||
if( isset($rdbSemestre) ) var_dump('rdb: '.$rdbSemestre);
|
// if( isset($rdbSemestre) ) var_dump('rdb: '.$rdbSemestre);
|
||||||
if( isset($appartenanceUID) ) var_dump('app: '.$appartenanceUID);
|
// if( isset($appartenanceUID) ) var_dump('app: '.$appartenanceUID);
|
||||||
return 'success';
|
return 'success';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -189,7 +189,7 @@ class groupRepo{
|
||||||
public static function membres($groupeUID, $semestreUID){
|
public static function membres($groupeUID, $semestreUID){
|
||||||
// si le groupe existe => on récupère ses utilisateurs
|
// si le groupe existe => on récupère ses utilisateurs
|
||||||
// var_dump($groupeUID.' - '.$semestreUID);
|
// var_dump($groupeUID.' - '.$semestreUID);
|
||||||
$getMembres = DataBase::getPDO()->prepare("SELECT u.identifiant, u.prenom, u.nom, u.sexe, u.mail, u.droits, s.nom as semestre, g.id_groupe, g.nom as groupe
|
$getMembres = DataBase::getPDO()->prepare("SELECT u.identifiant, u.prenom, u.nom, u.sexe, u.mail, u.droits, s.nom as semestre, g.id_groupe, g.nom as groupe, app.mention
|
||||||
FROM utilisateur as u, groupe as g, semestre as s, appartenance as app, formation as f
|
FROM utilisateur as u, groupe as g, semestre as s, appartenance as app, formation as f
|
||||||
WHERE s.id_formation = f.id_formation
|
WHERE s.id_formation = f.id_formation
|
||||||
AND u.identifiant = app.id_etudiant
|
AND u.identifiant = app.id_etudiant
|
||||||
|
|
|
@ -245,7 +245,7 @@ class semestreRepo{
|
||||||
));
|
));
|
||||||
|
|
||||||
// on retourne les infos du semestre courant
|
// on retourne les infos du semestre courant
|
||||||
return DataBase::delNumeric( $getSemestreInfos->fetch(), true );
|
return $getSemestreInfos->fetch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -495,6 +495,79 @@ if( exportJury != null ){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************/
|
||||||
|
/* GESTION DE L'IMPORT DE JURY */
|
||||||
|
/*******************************/
|
||||||
|
var importJury = document.querySelector('#import_jury[data-stre]');
|
||||||
|
if( importJury != null ){
|
||||||
|
|
||||||
|
importJury.addEventListener('change', function(e){
|
||||||
|
|
||||||
|
var fileInput = importJury.children[0];
|
||||||
|
|
||||||
|
var semestre = parseInt( importJury.dataset.stre );
|
||||||
|
|
||||||
|
console.log(semestre);
|
||||||
|
|
||||||
|
addClass( importJury, 'loading' );
|
||||||
|
|
||||||
|
var file = fileInput.files[0];
|
||||||
|
|
||||||
|
/* [1] IMPORTATION DU FICHIER
|
||||||
|
=======================================*/
|
||||||
|
var fd = new FormData();
|
||||||
|
fd.append('filename', 'import_jury');
|
||||||
|
fd.append('file', file, file.name);
|
||||||
|
|
||||||
|
var xhr = new XMLHttpRequest();
|
||||||
|
|
||||||
|
xhr.open('POST', 'manager/import.php', true);
|
||||||
|
|
||||||
|
xhr.onreadystatechange = function(){
|
||||||
|
if( xhr.readyState == 4 && [0, 200].indexOf(xhr.status) > -1 )
|
||||||
|
console.log('[1] IMPORT=> '+xhr.responseText);
|
||||||
|
if( xhr.responseText == 'success' ){
|
||||||
|
|
||||||
|
/* [2] LECTURE DU FICHIER
|
||||||
|
=======================================*/
|
||||||
|
var request = { level_0: 'excel', level_1: 'import_jury' };
|
||||||
|
API.send(request, function(e){
|
||||||
|
console.log('[2] PARSE=>'+e.request);
|
||||||
|
if( e.request == 'success' ){
|
||||||
|
|
||||||
|
/* [3] INTÉGRATION À LA BDD
|
||||||
|
=======================================*/
|
||||||
|
requestIntegration = { level_0: 'career', level_1: 'applyJurySemestre', jury: e.jury, semestre: semestre };
|
||||||
|
API.send( requestIntegration, function(f){
|
||||||
|
console.log('[3] INTEGRATION=>'+f.request);
|
||||||
|
if( f.request == 'success' ){
|
||||||
|
console.log('liste intégrée');
|
||||||
|
reload();
|
||||||
|
}else console.log('integration error');
|
||||||
|
});
|
||||||
|
|
||||||
|
}else console.log('import error');
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
xhr.send(fd);
|
||||||
|
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* GESTION DE PUBLICATION DES NOTES D'UN CONTRÔLE */
|
/* GESTION DE PUBLICATION DES NOTES D'UN CONTRÔLE */
|
||||||
var publicationControles = document.querySelectorAll('#CONTAINER > section[name=allcontroles] .confirm.center.active[data-ctrl][data-publication]');
|
var publicationControles = document.querySelectorAll('#CONTAINER > section[name=allcontroles] .confirm.center.active[data-ctrl][data-publication]');
|
||||||
|
|
|
@ -193,8 +193,8 @@ if( exportInscrits != null ){
|
||||||
var fSemestre = (selectedSemestre!=null) ? selectedSemestre.dataset.stre : null;
|
var fSemestre = (selectedSemestre!=null) ? selectedSemestre.dataset.stre : null;
|
||||||
var fAnnee = (selectedSemestre!=null) ? selectedSemestre.dataset.year : null;
|
var fAnnee = (selectedSemestre!=null) ? selectedSemestre.dataset.year : null;
|
||||||
|
|
||||||
console.log(fSemestre);
|
// console.log(fSemestre);
|
||||||
console.log(fAnnee);
|
// console.log(fAnnee);
|
||||||
|
|
||||||
/* [1] On récupère la liste des groupes en question (groupManager)
|
/* [1] On récupère la liste des groupes en question (groupManager)
|
||||||
===================================================================*/
|
===================================================================*/
|
||||||
|
|
|
@ -1009,7 +1009,7 @@ if( permission('master') || permission('admin') ){
|
||||||
|
|
||||||
|
|
||||||
if( $semestreOpt != null )
|
if( $semestreOpt != null )
|
||||||
echo "<div data-stre='".$semestreOpt."' class='confirm active center'>Importer les décisions du jury<input type='file' id='import_jury'></div>";
|
echo "<div id='import_jury' data-stre='".$semestreOpt."' class='confirm active center'>Importer les décisions du jury<input type='file'></div>";
|
||||||
|
|
||||||
echo "</div>";
|
echo "</div>";
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
2
test.php
2
test.php
|
@ -49,7 +49,7 @@ debug();
|
||||||
|
|
||||||
/* [1] On récupère le semestre d'un étudiant
|
/* [1] On récupère le semestre d'un étudiant
|
||||||
=====================================================*/
|
=====================================================*/
|
||||||
// var_dump( DataBase::getInstance()->applyJuryTo('Etud100', 37, 'RDB') );
|
var_dump( DataBase::getInstance()->applyJuryTo('Etud100', 72, 'ADM') );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
1756
xdoc/sid.sql
1756
xdoc/sid.sql
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue