From 58255ea41d126587dddffec7c5cbf8c1d7a2a7a8 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Wed, 25 Nov 2015 18:17:34 +0100 Subject: [PATCH] =?UTF-8?q?Correction=20et=20fin=20de=20l'impl=C3=A9mentat?= =?UTF-8?q?ion|d=C3=A9ploiement|int=C3=A9gration=20de=20la=20liste=20d'?= =?UTF-8?q?=C3=A9tudiants?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manager/database.php | 6 +- manager/import.php | 11 ++- manager/phpExcel.php | 27 +++-- page/_JS/groups.js | 6 +- page/_JS/modules.js | 6 +- page/groups.php | 30 +++--- page/modules.php | 143 ++++++++++++++------------- src/files/admin_import_inscrits.xlsx | Bin 8 files changed, 128 insertions(+), 101 deletions(-) mode change 100644 => 100755 src/files/admin_import_inscrits.xlsx diff --git a/manager/database.php b/manager/database.php index 9430207..c1b4595 100755 --- a/manager/database.php +++ b/manager/database.php @@ -164,7 +164,7 @@ class DataBase{ foreach($formationList as $form){ - $formationUID = semestreRepo::includeFormation($form['nom'], $form['libelle']); // on récupère l'UID de la formation en la créant si nécessaire + $formationUID = semestreRepo::includeFormation($form->nom, $form->libelle); // on récupère l'UID de la formation en la créant si nécessaire if( is_numeric($formationUID) ){ // si la formation est ok, alors on cherche le semestre @@ -172,9 +172,9 @@ class DataBase{ if( is_numeric($semestreUID) ){ // si le semestre est ok, alors on ajoute les utilisateurs - foreach($form['userlist'] as $user){ + foreach($form->userlist as $user){ // on récupère l'UID utilisateur en le créant si nécessaire - $utilisateurUID = userRepo::includeEtudiant($user['identifiant'], $user['prenom'], $user['nom'], $user['sexe'], $user['mail']); + $utilisateurUID = userRepo::includeEtudiant($user->identifiant, $user->prenom, $user->nom, $user->sexe, $user->mail); if( is_string($utilisateurUID) ) // si l'utilisateur est ok, alors on créé l'appartenance groupRepo::includeAppartenance($utilisateurUID, $semestreUID); // on ajoute l'utilisateur au groupeVide de chaque semestre (s'il n'a pas déjà un groupe) diff --git a/manager/import.php b/manager/import.php index fa8674f..de8178d 100755 --- a/manager/import.php +++ b/manager/import.php @@ -3,10 +3,17 @@ if( isset($_FILES['file']) && isset($_POST['filename']) ){ $path = __ROOT__.'/src/files/'; - $targetFile = $_SESSION['identifiant'].'_'.$_POST['filename'].'.xlsx'; + $fileName = $_SESSION['identifiant'].'_'.$_POST['filename'].'.xlsx'; + + // on se place dans /.../src/files + chdir( $path ); - if( move_uploaded_file($_FILES["file"]["tmp_name"], $path.$targetFile) ) + + if( move_uploaded_file($_FILES["file"]["tmp_name"], $path.$fileName) ){ + // on modifie les droits du fichier + chmod($path.$fileName, 0774); echo "success"; + } else echo "error"; diff --git a/manager/phpExcel.php b/manager/phpExcel.php index 9453345..f0f4a30 100755 --- a/manager/phpExcel.php +++ b/manager/phpExcel.php @@ -1,11 +1,13 @@ request = 'read_permission'; return; } + // Chargement du fichier $objPHPExcel = PHPExcel_IOFactory::load($filePath); @@ -124,6 +129,7 @@ function xlsx_switch_lvl1($request, $answer){ $sheet = $objPHPExcel->getSheet(0); $userlistData = $sheet->rangeToArray('B2:'.$sheet->getHighestColumn().''.$sheet->getHighestRow()); + // Variables stack pour la liste de élèves $listeFormations = array(); @@ -179,8 +185,13 @@ function xlsx_switch_lvl1($request, $answer){ }} - $answer->formationList = $listeFormations; - $answer->request = 'success'; + + // on vérifie qu'on a récupéré qqch + if( count($listeFormations) > 0 ){ + $answer->formationList = $listeFormations; + $answer->request = 'success'; + }else + $answer->request = 'corrupted_format'; break; @@ -297,10 +308,8 @@ function xlsx_switch_lvl1($request, $answer){ $filePath = __ROOT__.'/src/files/'.$_SESSION['identifiant'].'_import_mcc.xlsx'; - // file_put_contents($filePath, $file['file']); - - // // $inputFileType = 'Excel2007'; - // $inputFileName = $request->docPath; + // si on a pas le droit d'écriture, on quitte // + if( !is_readable($filePath) ){ $answer->request = 'read_permission'; return; } // Charger le fichier en tant que document Excel $objPHPExcel = PHPExcel_IOFactory::load($filePath); diff --git a/page/_JS/groups.js b/page/_JS/groups.js index 4a424b7..1544a84 100755 --- a/page/_JS/groups.js +++ b/page/_JS/groups.js @@ -76,7 +76,7 @@ if( document.querySelector('#CONTAINER section[name=movestudents]') != null ){ / var selectList = document.querySelectorAll("#CONTAINER > section[name] > select[name=groupe], #CONTAINER > section[name] > .p > select[name=annee]"); var partList = document.querySelectorAll("#CONTAINER > section[name] > table.partlist[name=semestre], "+ "#CONTAINER > section[name] > table.partlist[name=formation], "+ - "#CONTAINER > section[name] > .p > div.partlist[name=semestre] > span[data-stre]"); + "#CONTAINER > section[name] > .p > div.partlist[name=semestre] > span[data-stre][data-frm]"); // GESTION DE L'AFFINAGE PAR FORMATION/SEMESTRE // for( var i = 0 ; i < partList.length ; i++ ){ @@ -99,8 +99,10 @@ for( var i = 0 ; i < partList.length ; i++ ){ pageM.vars[2] = 's:'+e.target.dataset.value; // affinage par semestre (exportation) - }else if( e.target.parentNode.getAttribute('name') == 'semestre' && e.target.dataset.hasOwnProperty('stre') ) + }else if( e.target.parentNode.getAttribute('name') == 'semestre' && e.target.dataset.hasOwnProperty('stre') && e.target.dataset.hasOwnProperty('frm') ){ + pageM.vars[1] = 'f:'+e.target.dataset.frm; pageM.vars[2] = 's:'+e.target.dataset.stre; + } // si la formation n'est pas définie, on l'active if( !/^[fa]:/.test(pageM.vars[1]) ) diff --git a/page/_JS/modules.js b/page/_JS/modules.js index a3a7e3d..3c7a9e9 100755 --- a/page/_JS/modules.js +++ b/page/_JS/modules.js @@ -9,7 +9,7 @@ var selectList = document.querySelectorAll("#CONTAINER > section[name] > .p > se var partList = document.querySelectorAll("#CONTAINER > section[name] > table.partlist[name=UE], "+ "#CONTAINER > section[name] > table.partlist[name=semestre], "+ "#CONTAINER > section[name] > table.partlist[name=formation], "+ - "#CONTAINER > section[name] > .p > div.partlist[name=semestre] > span[data-stre]"); + "#CONTAINER > section[name] > .p > div.partlist[name=semestre] > span[data-stre][data-frm]"); for( var i = 0 ; i < partList.length ; i++ ){ @@ -33,8 +33,10 @@ for( var i = 0 ; i < partList.length ; i++ ){ if( tableauParent.getAttribute('name') == 'UE' ) pageM.vars[2] = 'u:'+e.target.dataset.value; - }else if( e.target.parentNode.getAttribute('name') == 'semestre' && e.target.dataset.hasOwnProperty('stre') ) + }else if( e.target.parentNode.getAttribute('name') == 'semestre' && e.target.dataset.hasOwnProperty('stre') && e.target.dataset.hasOwnProperty('frm') ){ + pageM.vars[1] = 'f:'+e.target.dataset.frm; pageM.vars[2] = 's:'+e.target.dataset.stre; + } // si la formation n'est pas définie, on l'active if( !/^[fa]:/.test(pageM.vars[1]) ) diff --git a/page/groups.php b/page/groups.php index 5954708..9783e34 100755 --- a/page/groups.php +++ b/page/groups.php @@ -221,8 +221,9 @@ if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un 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]; + $MyGroupsFormationOpt = $formationOpt; + if( $MyGroupsFormationOpt == null || !in_array($MyGroupsFormationOpt, $verificationUIDFormations) ) + $MyGroupsFormationOpt = $verificationUIDFormations[0]; @@ -234,7 +235,7 @@ if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un 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 + if( $groupe['id_formation'] == $MyGroupsFormationOpt ) // si c'est la formation séléctionnée echo "".$groupe['formation'].''; else // sinon on affiche normalement echo "".$groupe['formation'].''; @@ -256,7 +257,7 @@ if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un else echo "Tous"; /* 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) ){ + foreach($answer->grouplist as $groupe){ if( $groupe['id_formation'] == $MyGroupsFormationOpt && !in_array($groupe['id_semestre'], $ListeUIDSemestres) ){ if( $groupe['id_semestre'] == $semestreOpt ) // si c'est le groupe séléctionné echo "".$groupe['semestre'].''; @@ -281,7 +282,7 @@ if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un else echo ""; /* 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) ){ + foreach($answer->grouplist as $groupe){ if( $groupe['id_formation'] == $MyGroupsFormationOpt && in_array($groupe['id_semestre'], $ListeUIDSemestres) && !in_array($groupe['id'], $ListeUIDGroupes) ){ if( $groupe['id'] == $groupeOpt ) // si c'est le groupe séléctionné echo "'; @@ -310,7 +311,7 @@ if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un 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( $group['id_formation'] == $MyGroupsFormationOpt && ($semestreOpt==null || $semestreOpt==$group['id_semestre']) && ($groupeOpt==null || $groupeOpt==$group['id']) ){ if( count($group['userlist']) > 0 ){ // s'il y a des utilisateurs @@ -387,9 +388,10 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm if( !in_array($groupe['id_formation'], $verificationUIDFormations) ) array_push($verificationUIDFormations, $groupe['id_formation']); + $moveStudentsFormationOpt = $formationOpt; // 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]; + if( $moveStudentsFormationOpt == null || !in_array($moveStudentsFormationOpt, $verificationUIDFormations) ) + $moveStudentsFormationOpt = $verificationUIDFormations[0]; @@ -401,7 +403,7 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm 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 "".$groupe['formation'].''; + if( $groupe['id_formation'] == $moveStudentsFormationOpt ) echo "".$groupe['formation'].''; else echo "".$groupe['formation'].''; // on ajoute la formation à la liste pour ne pas la répéter @@ -420,7 +422,7 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm else echo "Tous"; /* 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) ){ + foreach($answer->grouplist as $groupe){ if( $groupe['id_formation'] == $moveStudentsFormationOpt && !in_array($groupe['id_semestre'], $ListeUIDSemestres) ){ // si c'est le semestre séléctionné if( $groupe['id_semestre'] == $semestreOpt ) echo "".$groupe['semestre'].''; @@ -443,7 +445,7 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm else echo ""; /* 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) ){ + foreach($answer->grouplist as $groupe){ if( $groupe['id_formation'] == $moveStudentsFormationOpt && in_array($groupe['id_semestre'], $ListeUIDSemestres) && !in_array($groupe['id'], $ListeUIDGroupes) ){ // si c'est le groupe sélectionné if( $groupe['id'] == $groupeOpt ) echo "'; @@ -460,7 +462,7 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm 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( $group['id_formation'] == $moveStudentsFormationOpt && ($semestreOpt==null || $semestreOpt==$group['id_semestre']) && ($groupeOpt==null || $groupeOpt==$group['id']) ){ if( count($group['userlist']) > 0 ){ // s'il y a des utilisateurs @@ -591,9 +593,9 @@ if( permission('admin') ){ foreach($annee['semestres'] as $semestre){ if( in_array($semestre['id'], $semestresListe) ){ if( $semestre['id'] == $semestreOpt ) // si c'est le semestre séléctionné - echo "".$semestre['formation']." - ".$semestre['nom'].''; + echo "".$semestre['formation']." - ".$semestre['nom'].''; else // sinon on affiche normalement - echo "".$semestre['formation']." - ".$semestre['nom'].''; + echo "".$semestre['formation']." - ".$semestre['nom'].''; }} }} echo "

"; diff --git a/page/modules.php b/page/modules.php index 0f1b338..e285f80 100755 --- a/page/modules.php +++ b/page/modules.php @@ -166,10 +166,11 @@ if( permission('teacher') ){ // si l'utilisateur est un prof if( !in_array($semestre['id_formation'], $verificationUIDFormations) ) array_push($verificationUIDFormations, $semestre['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]; + $MyModulesFormationOpt = $formationOpt; + // si la formation optionnelle n'est pas définie ou incohérente, on le fait (première valeur trouvée) + if( $MyModulesFormationOpt == null || !in_array($MyModulesFormationOpt, $verificationUIDFormations) ) + $MyModulesFormationOpt = $verificationUIDFormations[0]; /**************************/ /* AFFINAGE PAR FORMATION */ @@ -178,7 +179,7 @@ if( permission('teacher') ){ // si l'utilisateur est un prof foreach($answer->semestres as $semestre){ if( !in_array($semestre['id_formation'], $ListeUIDFormations) ){ - if( $semestre['id_formation'] == $formationOpt ) // si c'est la formation séléctionnée + if( $semestre['id_formation'] == $MyModulesFormationOpt ) // si c'est la formation séléctionnée echo "".$semestre['formation'].''; else // sinon on affiche normalement echo "".$semestre['formation'].''; @@ -190,8 +191,6 @@ if( permission('teacher') ){ // si l'utilisateur est un prof echo ""; - - /*************************/ /* AFFINAGE PAR SEMESTRE */ /*************************/ @@ -200,7 +199,7 @@ if( permission('teacher') ){ // si l'utilisateur est un prof else echo "Tous"; /* On récupère la liste des SEMESTRES en accord avec la FORMATION sélectionnée */ - foreach($answer->semestres as $semestre){ if( $semestre['id_formation'] == $formationOpt && !in_array($semestre['id'], $ListeUIDSemestres) ){ + foreach($answer->semestres as $semestre){ if( $semestre['id_formation'] == $MyModulesFormationOpt && !in_array($semestre['id'], $ListeUIDSemestres) ){ if( $semestre['id'] == $semestreOpt ) // si c'est le semestre séléctionné echo "".$semestre['nom'].''; @@ -225,7 +224,7 @@ if( permission('teacher') ){ // si l'utilisateur est un prof else echo "Tous"; /* On récupère la liste des UEs en accord avec la FORMATION et le SEMESTRE sélectionnés */ - foreach($answer->semestres as $semestre){ if( $semestre['id_formation'] == $formationOpt && in_array($semestre['id'], $ListeUIDSemestres) ){ + foreach($answer->semestres as $semestre){ if( $semestre['id_formation'] == $MyModulesFormationOpt && in_array($semestre['id'], $ListeUIDSemestres) ){ foreach($semestre['UElist'] as $UE){ if( !in_array($UE['id'], $ListeUIDUE) ){ if( $UE['id'] == $ueOpt ) // si c'est l'UE séléctionnée echo "".$UE['nom'].''; @@ -238,41 +237,44 @@ if( permission('teacher') ){ // si l'utilisateur est un prof }} echo ""; + if( count($ListeUIDUE) > 0 ){ // s'il y a plus d'un semestre, on les affiche + foreach($answer->semestres as $semestre){ - foreach($answer->semestres as $semestre){ + if( ($semestreOpt == null || $semestre['id'] == $semestreOpt) && ($MyModulesFormationOpt == null || $semestre['id_formation'] == $MyModulesFormationOpt) ){ // on affiche les semestres en fonction de l'affinage - if( ($semestreOpt == null || $semestre['id'] == $semestreOpt) && ($formationOpt == null || $semestre['id_formation'] == $formationOpt) ){ // on affiche les semestres en fonction de l'affinage + foreach($semestre['UElist'] as $UE){ - foreach($semestre['UElist'] as $UE){ - - if( $ueOpt == null || $UE['id'] == $ueOpt ){ // on affiche les UEs en fonction de l'affinage - - echo ""; - echo ""; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - foreach($UE['modules'] as $MODULE){ - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - } + if( $ueOpt == null || $UE['id'] == $ueOpt ){ // on affiche les UEs en fonction de l'affinage - echo ''; - echo '
'.$semestre['nom_formation'].' - '.$semestre['nom'].'
'.$MODULE['nom'].''.$MODULE['libelle'].''.$UE['nom'].' - '.$UE['libelle'].'
'; + echo ""; + echo ""; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + foreach($UE['modules'] as $MODULE){ + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + } + + echo ''; + echo '
'.$semestre['nom_formation'].' - '.$semestre['nom'].'
'.$MODULE['nom'].''.$MODULE['libelle'].''.$UE['nom'].' - '.$UE['libelle'].'
'; + } } + } } - } + }else // si aucun UE + echo "
Aucun module trouvé
"; //////////////////////////////////////////////////////////////////////////////// echo ''; }else @@ -389,8 +391,6 @@ if( permission('admin') ){ // si l'utilisateur est un admin echo ""; - - /*******************/ /* AFFINAGE PAR UE */ /*******************/ @@ -412,56 +412,61 @@ if( permission('admin') ){ // si l'utilisateur est un admin }} echo ""; + if( count($ListeUIDUE) > 0 ){ // s'il y a plus d'un UE, on les affiche - foreach($answer->semestres as $semestre){ - if( ($semestreOpt == null || $semestre['id'] == $semestreOpt) && ($formationOpt == null || $semestre['id_formation'] == $formationOpt) ){ // on affiche les semestres en fonction de l'affinage + foreach($answer->semestres as $semestre){ - foreach($semestre['UElist'] as $UE){ + if( ($semestreOpt == null || $semestre['id'] == $semestreOpt) && ($formationOpt == null || $semestre['id_formation'] == $formationOpt) ){ // on affiche les semestres en fonction de l'affinage - if( $ueOpt == null || $UE['id'] == $ueOpt ){ // on affiche les UEs en fonction de l'affinage - - echo ""; - echo ""; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - foreach($UE['modules'] as $MODULE){ + foreach($semestre['UElist'] as $UE){ + + if( $ueOpt == null || $UE['id'] == $ueOpt ){ // on affiche les UEs en fonction de l'affinage + + echo "
'.$semestre['nom_formation'].' - '.$semestre['nom'].'
"; + echo ""; echo ''; - echo ''; - echo ''; - echo ''; + echo ''; echo ''; - } + echo ''; + echo ''; + foreach($UE['modules'] as $MODULE){ + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + } - // require_once __ROOT__.'/manager/database.php'; + // require_once __ROOT__.'/manager/database.php'; - // $completeModuleList = DataBase::getInstance()->getExhaustiveModuleList(); - // // saisie d'un nouveau module - // echo ""; + // $completeModuleList = DataBase::getInstance()->getExhaustiveModuleList(); + // // saisie d'un nouveau module + // echo ""; - echo ''; - echo '
'.$MODULE['nom'].''.$MODULE['libelle'].''.$UE['nom'].' - '.$UE['libelle'].''.$semestre['nom_formation'].' - '.$semestre['nom'].'
'.$MODULE['nom'].''.$MODULE['libelle'].''.$UE['nom'].' - '.$UE['libelle'].'
"; - // echo ""; - // echo ""; - // echo ""; - // echo ""; - // echo ""; - // echo "
Ajouter le module
"; - // echo "
"; + // echo ""; + // echo ""; + // echo ""; + // echo ""; + // echo ""; + // echo "
Ajouter le module
"; + // echo "
'; + echo ''; + echo ''; + } } + } } - } + }else // si aucun UE + echo "
Aucun module trouvé
"; //////////////////////////////////////////////////////////////////////////////// echo ''; }else @@ -559,9 +564,9 @@ if( permission('admin') ){ if( $semestre['id'] == $semestreOpt ) // si c'est le semestre séléctionné - echo "".$semestre['formation']." - ".$semestre['nom'].''; + echo "".$semestre['formation']." - ".$semestre['nom'].''; else // sinon on affiche normalement - echo "".$semestre['formation']." - ".$semestre['nom'].''; + echo "".$semestre['formation']." - ".$semestre['nom'].''; }} }} diff --git a/src/files/admin_import_inscrits.xlsx b/src/files/admin_import_inscrits.xlsx old mode 100644 new mode 100755