diff --git a/manager/excel.php b/manager/excel.php index cddb33a..117fa2b 100755 --- a/manager/excel.php +++ b/manager/excel.php @@ -50,8 +50,7 @@ class excelManager{ $sheet->getColumnDimension('G')->setWidth(10); // [4] Écriture des colonnes du tableau - $sheet->setCellValue('B1', ""); - $sheet->setCellValue('A2', date("d/m/Y G:m")); + $sheet->setCellValue('A1', date("d/m/Y")); $sheet->setCellValue('A4', 'Identifiant'); $sheet->setCellValue('B4', 'Prénom'); $sheet->setCellValue('C4', 'Nom'); @@ -415,6 +414,73 @@ class excelManager{ break; + + + /**********************************************/ + /* Export la liste des étudiants pour le jury */ + /**********************************************/ + case 'export_jury': + + // Vérification de la présence des groupes + + if( isset($request->grouplist) ){ + + // [1] On crée une instance du fichier xls, activation de la feuille + $workbook = new PHPExcel(); + $sheet = $workbook->getActiveSheet(); + $writer = new PHPExcel_Writer_Excel2007($workbook); + + // [2] Définition des paramètres du document + $workbook->getProperties()->setCreator($_SESSION['identifiant']); + $workbook->getProperties()->setLastModifiedBy('ACGA'); + $workbook->getProperties()->setTitle('Liste étudiants jury'); + + // [3] Définition du format des cellules (document Excel) + $sheet->getColumnDimension('A')->setWidth(15); + $sheet->getColumnDimension('B')->setWidth(15); + $sheet->getColumnDimension('C')->setWidth(15); + $sheet->getColumnDimension('D')->setWidth(15); + + // [4] Écriture des colonnes du tableau + $sheet->setCellValue('B1', "" ); + $sheet->setCellValue('A2', date("d/m/Y G:m") ); + $sheet->setCellValue('A4', 'Identifiant' ); + $sheet->setCellValue('B4', 'Formation' ); + $sheet->setCellValue('C4', 'Groupe' ); + $sheet->setCellValue('D4', 'Mention' ); + + // [5] Écriture des valeurs dans le document Excel + $index = 5; + foreach($request->grouplist as $group){ + $index++; + + foreach($group->userlist as $student){ + $sheet->setCellValue('A'.$index, $student->identifiant); + $sheet->setCellValue('B'.$index, $group->formation); + $sheet->setCellValue('C'.$index, $group->nom); + $sheet->setCellValue('D'.$index, 'À compléter'); + $index++; + } + } + + // [6] On enregistre ce nouveau fichier, et on lance son téléchargement + $filePath = __EXCEL_PATH__.$_SESSION['identifiant'].'_export_jury.xlsx'; + $writer->save( $filePath ); + + + // [7] On retourne l'état du traitement 'success' + $answer->request = 'success'; + + // [8] On retourne le chemin relatif du serveur + $answer->pathfile = '/src/files/'.$_SESSION['identifiant'].'_export_jury.xlsx'; + } + + // [7] On retourne l'état du traitement 'param_error' + else + $answer->request = 'param_error'; + break; + + /************************************/ /* Importation des résulats du jury */ /************************************/ @@ -428,12 +494,12 @@ class excelManager{ // Chargement du fichier - $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); + $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); // Placement du curseur sur la première case - $sheet = $objPHPExcel->getSheet(0); - $mccData = $sheet->rangeToArray('A2:'.$sheet->getHighestColumn().''.$sheet->getHighestRow()); + $sheet = $objPHPExcel->getSheet(0); + $mccData = $sheet->rangeToArray('A2:'.$sheet->getHighestColumn().''.$sheet->getHighestRow()); // Varaible stack pour les résultats du jury @@ -441,8 +507,6 @@ class excelManager{ // Boucle sur le format suivant : ligne[0] : [IDETUDIANT] / ligne[1] : [DECISION JURY] - // / ! \ LES RESULTATS NE DOIVENT PAS ETRE NOMINATIFs, UTILISER LES IDENTIFIANTS DES ÉTUDIANTS / ! \ - $i = 0; foreach($mccData as $line) { @@ -464,62 +528,6 @@ class excelManager{ - // /************************************/ - // /* Exportation des résulats du jury */ - // /************************************/ - // case 'export_fiche_resultat_jury': - - // //vérificationd du paramètre en entrée - - // if(isset($request->formation) && isset($request->semestre)){ - - // // Création / Activation de la feuille - - // $workbook = new PHPExcel(); - // $sheet = $workbook->getActiveSheet(); - // $writer = new PHPExcel_Writer_Excel2007($workbook); - - // $workbook->getProperties()->setTitle("ResultatJury"." ".$request->formation." ".$request->semestre.date("d/m/Y G:m")); - - // $sheet->getColumnDimension('A')->setWidth(20); - // $sheet->getColumnDimension('B')->setWidth(20); - // $sheet->getColumnDimension('C')->setWidth(20); - // $sheet->getColumnDimension('D')->setWidth(20); - - // // Écriture de l'en-tête du document - - // $sheet->setCellValue('A1', 'Résultats jury'); - // $sheet->setCellValue('B1',$request->formation); - // $sheet->setCellValue('C1',$request->semestre); - // $sheet->setCellValue('D1', date("d/m/Y G:m")); - // $sheet->setCellValue('A3',"Id Étudiant"); - // $sheet->setCellValue('B3',"Avis jury"); - - - // $i = 6; - - // while(// TANT QUE IL Y A UN ELEVE) { - - // $sheet->setCellValue('A'.$i,// ID ELEVE); - // $sheet->setCellValue('B'.$i,// AVIS JURY); - // $i++; - // } - - // // Sauvegarde du fichier sous le format .xlsx - - // $writer->save("ResultatJury"." ".$request->formation." ".$request->semestre.date("d/m/Y G:m").'xlsx' ); - // $answer->request = 'success'; - // } - - // //Si il y a un problème dans les paramètre(s) - - // else { - - // $answer->request='param_error'; - // } - - // break; - diff --git a/page/_JS/career.js b/page/_JS/career.js index 6aaf264..5a6da22 100755 --- a/page/_JS/career.js +++ b/page/_JS/career.js @@ -428,6 +428,72 @@ if( document.querySelector('#CONTAINER section[name=allcontroles]') != null ){ / +/*******************************/ +/* GESTION DE L'EXPORT DE JURY */ +/*******************************/ +var exportJury = document.getElementById('export_jury'); +if( exportJury != null ){ + + exportJury.addEventListener('click', function(e){ + var selectedSemestre = document.querySelector("#CONTAINER > section[name] > .p > div.partlist[name] > span[data-stre][data-year].active"); + + // on récupère l'année et le semestre selectionnés + var fSemestre = (selectedSemestre!=null) ? selectedSemestre.dataset.stre : null; + var fAnnee = (selectedSemestre!=null) ? selectedSemestre.dataset.year : null; + + console.log(fSemestre); + console.log(fAnnee); + + /* [1] On récupère la liste des groupes en question (groupManager) + ===================================================================*/ + /* (1) Tous les semestres */ + var request1; + if( fSemestre == '*' ){ + request1 = { + level_0: 'groups', + level_1: 'grouplistForYear', + annee: fAnnee, + }; + }else{ + request1 = { + level_0: 'groups', + level_1: 'grouplist', + semestre: fSemestre, + }; + } + + API.send(request1, function(answer1){ + // si on a bien récupéré les étudiants + if( answer1.request == 'success' ){ + console.log( answer1.grouplist ); + + /* [2] On génère le fichier associé (excelManager) + ===================================================================*/ + var request2 = { + level_0: 'excel', + level_1: 'export_jury', + grouplist: answer1.grouplist // on envoie la liste qu'on vient de récupérer + }; + + API.send(request2, function(answer2){ + if( answer2.request == 'success' ){ // le fichier a bien été généré, on lance le téléchargement + document.location = answer2.pathfile; + reload(); + } + }); + } + }); + + + + }, false); + +} + + + + + /* GESTION DE PUBLICATION DES NOTES D'UN CONTRÔLE */ diff --git a/page/career.php b/page/career.php index fa6d601..567548f 100755 --- a/page/career.php +++ b/page/career.php @@ -858,7 +858,7 @@ if( permission('master') || permission('admin') ){ /**********************/ /* AFFINAGE PAR ANNEE */ /**********************/ - echo "Exportation des MCC d'un semestre
"; + echo "Exportation des feuilles jury d'un semestre
"; echo "(Format compatible Microsoft Office, Open Office et Libre Office)
"; /* AFFINAGE POUR LES 5 ANNEES SUIVANTES */ @@ -929,8 +929,7 @@ if( permission('master') || permission('admin') ){ - echo "
Générer le fichier
"; - echo "
Télécharger le fichier
"; + echo "
Télécharger le fichier
"; echo ""; @@ -952,8 +951,8 @@ if( permission('master') || permission('admin') ){ $anneeOpt = intval($anneeOpt); // on met l'année en (int) echo "
"; - echo "Importation des MCC d'un semestre
"; - echo "(Fichier .xlsx suivant le modèle : modèle de fichier)
"; + echo "Importation des mentions jury d'un semestre
"; + echo "(Fichier .xlsx suivant le modèle : modèle de fichier)
"; /**********************/ @@ -996,9 +995,9 @@ if( permission('master') || 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/groups.php b/page/groups.php index c844084..7c8a478 100755 --- a/page/groups.php +++ b/page/groups.php @@ -635,7 +635,6 @@ if( permission('master') || permission('admin') ){ } - echo "
Générer le fichier
"; echo "
Télécharger le fichier
"; diff --git a/src/files/admin2_export_jury.xlsx b/src/files/admin2_export_jury.xlsx new file mode 100644 index 0000000..aa912f5 Binary files /dev/null and b/src/files/admin2_export_jury.xlsx differ diff --git a/src/files/admin2_export_liste_etudiants.xlsx b/src/files/admin2_export_liste_etudiants.xlsx index 8c78c8c..35be9bb 100644 Binary files a/src/files/admin2_export_liste_etudiants.xlsx and b/src/files/admin2_export_liste_etudiants.xlsx differ