Premier puch de la branche ced

This commit is contained in:
Cedric 2015-11-19 10:18:43 +01:00
parent 2e6e2f1ef1
commit 6452d91b83
7 changed files with 182 additions and 60 deletions

View File

@ -26,7 +26,14 @@
padding: 0;
}
a{ text-decoration: none; color: inherit; }
/***************************
** LIEN DE TELECHARGEMENT **
****************************/
a {
text-decoration: none;
color: inherit;
}
/* on initialise le body avec les valeurs par défaut [compatibilité] */
body{

View File

@ -168,9 +168,20 @@ require_once __ROOT__.'/manager/database.php';
$anneeCheck = $areSetParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
$enseignantCheck = $anneeCheck && preg_match('/^[\w -]{3,50}$/i', $request->enseignant); // enseignant (annee) bon format
// paramètres optionnels
$optionalSemestre = isset($request->semestre) && is_string($request->semestre) && preg_match('/^S[0-9]{1}$/i', $request->semestre);
$optionalGroupe = isset($request->groupe) && is_string($request->groupe) && strlen($request->groupe) > 1 && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe);
// définition (ou pas) des paramètres optionnels
if( $optionalSemestre ) $semestre = $request->semestre;
else $semestre = null;
if( $optionalGroupe ) $groupe = $request->groupe;
else $groupe = null;
if( $enseignantCheck ){
$grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesEnseignant($request->annee, $_SESSION['semestre_pair'], $request->enseignant);
$grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesEnseignant($request->annee, $_SESSION['semestre_pair'], $request->enseignant, $semestre, $groupe);
if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs
$answer->grouplist = $grouplist;
@ -194,10 +205,24 @@ require_once __ROOT__.'/manager/database.php';
$typeOkParam = $areSetParam && is_numeric($request->annee); // si c'est des strings
$anneeCheck = $areSetParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
// paramètres optionnels
$optionalSemestre = isset($request->semestre) && is_string($request->semestre) && preg_match('/^S[0-9]{1}$/i', $request->semestre);
$optionalGroupe = isset($request->groupe) && is_string($request->groupe) && strlen($request->groupe) > 1 && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe);
// définition (ou pas) des paramètres optionnels
if( $optionalSemestre ) $semestre = $request->semestre;
else $semestre = null;
if( $optionalGroupe ) $groupe = $request->groupe;
else $groupe = null;
if( $anneeCheck ){
// $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, $_SESSION['semestre_pair']);
$grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, null);
// $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, $_SESSION['semestre_pair'], $semestre, $groupe);
$grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, null, $semestre, $groupe);
if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs
$answer->grouplist = $grouplist;
@ -242,14 +267,14 @@ require_once __ROOT__.'/manager/database.php';
/************************************************/
case 'move': if( permission('admin') ){
$areSetParam = isset($request->etudiant) && isset($request->groupe) && isset($request->semestre); // les arguments existent
$areSetParam = isset($request->etudiant) && isset($request->groupe); // 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
$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
$groupeCheck = $etudiantCheck && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe); // groupe (nom) bon format
if( $groupeCheck ){ // si param ok
$answer->request = DataBase::getInstance()->deplacerEtudiant($request->etudiant, $request->groupe, $request->semestre);
$answer->request = DataBase::getInstance()->deplacerEtudiant($request->etudiant, $request->groupe, $_SESSION['annee']);
}else
$answer->request = 'param_error';

View File

@ -12,58 +12,120 @@ function xlsx_switch_lvl1($request, $answer){
//EXPORTATION DES LISTE D'ELEVE DE L'ANNEEE EN FORMAT EXCEL
case 'export_userlist_group':
//On crée une instance du fichier xls, ainsi que de la feuille active
$workbook = new PHPExcel();
$sheet = $workbook->getActiveSheet();
$writer = new PHPExcel_Writer_Excel2007($workbook);
//on prépare le tableau
$sheet->setCellValue('A1', 'IAE Etape');
$sheet->setCellValue('B1', 'Nom');
$sheet->setCellValue('C1', 'Prénom');
$sheet->setCellValue('D1', 'Identifiant');
$sheet->setCellValue('E1', 'Sexe');
$sheet->setCellValue('F1', 'Mail étudiant');
//Si on a bien les listes de groupes
if(isset($request->grouplist) && $request->grouplist != null){
//On crée une instance du fichier xls, ainsi que de la feuille active
$workbook = new PHPExcel();
$sheet = $workbook->getActiveSheet();
$writer = new PHPExcel_Writer_Excel2007($workbook);
//on récupère l'ensemble des étudiants
$req = new stdClass();
$ans = new stdClass();
//on défini les paramètresdu document
$workbook->getProperties()->setCreator($_SESSION['identifiant']);
$workbook->getProperties()->setLastModifiedBy('ACGA');
$workbook->getProperties()->setTitle('Liste étudiants '.$_SESSION['annee']);
$req->level_1 = 'grouplistForYear';
$req->annee = $_SESSION['annee'];
groups_switch_level_1($req, $ans);
//On définit les
$sheet->getColumnDimension('B')->setWidth(20);
$sheet->getColumnDimension('C')->setWidth(20);
$sheet->getColumnDimension('D')->setWidth(15);
$sheet->getColumnDimension('E')->setWidth(8);
$sheet->getColumnDimension('F')->setWidth(35);
$sheet->getColumnDimension('G')->setWidth(12);
$sheet->getColumnDimension('H')->setWidth(12);
//Si l'execution s'est proprement effectuée
$index = 2;
if($ans->req == 'success') {
foreach ($ans->grouplist as $group) {
//on prépare le tableau
$sheet->setCellValue('B1', "GROUPE DES ETUDIANTS DE L'ANNEE ".$_SESSION['annee']);
$sheet->setCellValue('A2', date("d/m/Y G:m"));
$sheet->setCellValue('A4', 'Numéro');
$sheet->setCellValue('B4', 'Nom');
$sheet->setCellValue('C4', 'Prénom');
$sheet->setCellValue('D4', 'Identifiant');
$sheet->setCellValue('E4', 'Sexe');
$sheet->setCellValue('F4', 'Mail étudiant');
$sheet->setCellValue('G4', 'Code IAE');
$sheet->setCellValue('H4', 'IAE Etape');
//On remplie le tableau des valeurs récupérée dans la requ^te
$index = 5;
foreach ($request->grouplist as $group) {
$groupeName = $group['nom'];
foreach ($group->userlist as $student) {
$sheet->setCellValue('A'.$index, $groupeName);
$formation = $group['formation'];
foreach ($group['userlist'] as $student) {
$sheet->setCellValue('A'.$index, $index-4);
$sheet->setCellValue('B'.$index, $student['nom']);
$sheet->setCellValue('C'.$index, $student['prenom']);
$sheet->setCellValue('D'.$index, $student['identifiant']);
//$sheet->setCellValue('E'.$index, $student['sexe']);
$sheet->setCellValue('F'.$index, $student['mail']);
$sheet->setCellValue('G'.$index, $formation);
$sheet->setCellValue('H'.$index, $groupeName);
$index++;
}
}
//On enregistre ce nouveau fichier, et on lance son téléchargement
$docPath = DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("page", "excelTemplates",
"Liste Etudiant ".$_SESSION['annee'].".xlsx"));
if(file_exists (__ROOT__.$docPath)){
$index = 1;
$titleLen = strlen($docPath) - 5;
while(file_exists (__ROOT__.$docPath)){
$docPath = mb_strimwidth($docPath, 0, $titleLen, "")." (".$index.").xlsx";
$index++;
}
}
$writer->save(__ROOT__.$docPath);
$answer->docPath = $docPath;
}
//On lance le téléchargement du fichier
header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="file.xls"');
$writer->save('php://output');
}
break;
default:
# code...
break;
}
//Si on a pas le tableau
else {
$answer->request = 'param_error';
}
break;
// IMPORTATION DES LISTE D'ELEVE DE L'ANNEEE EN FORMAT EXCEL
case 'import_userlist_group':
break;
// EXPORTATION DE NOTES POUR UN CONTROLE DONNEE, UNE FORMATION DONNEE ET UN GROUPE DONNE
case 'export_notes':
//vérificationd es paramètres en entrée
if(isset($request->formation) && isset($request->groupe) && isset($request->controle)){
}
//Si il y a un problème dans les paramètres
else {
$answer->request='param_error';
}
break;
// IMPORTATION DE NOTES POUR UN CONTROLE DONNEE, UNE FORMATION DONNEE ET UN GROUPE DONNE
case 'import_notes':
//code
break;
// DEFAULT
default:
$answer->request = 'unknown_level_1';
break;
}
}
?>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -201,7 +201,7 @@ if( permission('student') ){ // si l'utilisateur est connecté et que c'est un
* PROFESSEUR -> les groupes inscrits aux modules qu'il enseigne
*
*/
if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un élève
if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un enseignant
$request = new stdClass(); $answer = new stdClass();
@ -527,35 +527,63 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm
}
}
?>
<!-- IMPORTATION ET EXPORTATION FICHIER EXCEL -->
<?php
/*********************************/
/*** IMPORTATION FICHIER EXCEL ***/
/*********************************/
if( permission('admin') ){
debug();
require_once __ROOT__.DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("manager", "xlsx.php"));
echo "<section name='importexcel' title='Importation/Export' class='basic'></section>";
echo "<section name='importexcel' data-title='Importation/Export' class='basic'>";
$answer = new stdClass();
$request = new stdClass();
//affichage sur la page
echo "<p>Vous pouvez ici exporter et importer les listes des étudiants de l'année en cours";
$request->level_1 = 'export_userlist_group';
//on récupère l'ensemble des étudiants
$req = new stdClass();
$ans = new stdClass();
xlsx_switch_lvl1($request, $answer);
$req->level_1 = 'grouplistForYear';
$req->annee = $_SESSION['annee'];
groups_switch_level_1($req, $ans);
//on envoie les résultats
if($ans->request = 'success'){
$listeGroupes = $ans->grouplist;
$req = new stdClass();
$ans = new stdClass();
$req->level_1 = 'export_userlist_group';
$req->grouplist = $listeGroupes;
xlsx_switch_lvl1($req, $ans);
}
if ($ans->request = 'success') {
//Lien vers le fichier correspondant
$ans->docPath = mb_strimwidth($ans->docPath, 1, strlen($ans->docPath));
echo "<br><a href='".$ans->docPath."'>Fichier excel de liste des étudiatns de l'année</a></p>";
}
//Importation des listes d'élèves
/*echo "<form id='importXLSX' action='' method='POST'>";
echo "<input type='file' name='importXLSX'>";
echo "<input type='submit' value='Envoyer' name='import'>";
echo "</form>";*/
if(false){
}
echo "</section>";
}
?>