From 5b3efd460174c160141ce8eaecc736c2dd8edb85 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Sat, 21 Nov 2015 11:41:32 +0100 Subject: [PATCH] =?UTF-8?q?Interface=20graphique=20=C3=A9tape1=20>=20impor?= =?UTF-8?q?t/export=20des=20MCC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- page/_JS/modules.js | 41 +++++++++- page/groups.php | 2 - page/modules.php | 185 ++++++++++++++++++++++++++++++++++++++++---- test.php | 6 +- 4 files changed, 215 insertions(+), 19 deletions(-) diff --git a/page/_JS/modules.js b/page/_JS/modules.js index 3229198..578043a 100755 --- a/page/_JS/modules.js +++ b/page/_JS/modules.js @@ -5,7 +5,11 @@ /********************************/ /* GESTION DE L'AFFINAGE PAR UE */ /********************************/ -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]"); +var selectList = document.querySelectorAll("#CONTAINER > section[name] > .p > select[name=annee]"); +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]"); for( var i = 0 ; i < partList.length ; i++ ){ @@ -29,9 +33,41 @@ 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') ) + 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]) ) + if( document.querySelector('#CONTAINER > section[name] > table.partlist[name=formation] td[data-value].active') != null ) + pageM.vars[1] = 'f:'+document.querySelector('#CONTAINER > section[name] > table.partlist[name=formation] td[data-value].active').dataset.value; + + // si on a '*' comme valeur, on l'enlève + if( /\*$/.test(pageM.vars[2]) ) + pageM.vars.pop(); + + reload(); + + }, false); + +} + + + + + + +// GESTION DE L'AFFINAGE PAR ANNEE // +for( var i = 0 ; i < selectList.length ; i++ ){ + + selectList[i].addEventListener('change', function(e){ + + if( e.target.tagName == 'SELECT' ){ + + if( e.target.getAttribute('name') == 'annee' ) + pageM.vars[1] = 'a:'+e.target.value; // si la formation n'est pas définie, on l'active - if( !/^f:/.test(pageM.vars[1]) ) + if( !/^[fa]:/.test(pageM.vars[1]) ) if( document.querySelector('#CONTAINER > section[name] > table.partlist[name=formation] td[data-value].active') != null ) pageM.vars[1] = 'f:'+document.querySelector('#CONTAINER > section[name] > table.partlist[name=formation] td[data-value].active').dataset.value; @@ -41,6 +77,7 @@ for( var i = 0 ; i < partList.length ; i++ ){ reload(); } + }, false); } diff --git a/page/groups.php b/page/groups.php index a9710cd..3671bde 100755 --- a/page/groups.php +++ b/page/groups.php @@ -532,8 +532,6 @@ function anneeScolaire($year){ return $year.' - '.($year+1); } /*********************************/ if( permission('admin') ){ echo "
"; - debug(); - /* [1] Exportation ==========================================*/ diff --git a/page/modules.php b/page/modules.php index 8886d51..313b50d 100755 --- a/page/modules.php +++ b/page/modules.php @@ -10,6 +10,7 @@ require_once __ROOT__.'/manager/modules.php'; $ueOpt = null; $semestreOpt = null; $formationOpt = null; + $anneeOpt = null; // on cherche dans toutes les variables _get si on trouve des paramètres foreach($_POST as $k=>$v){ @@ -23,11 +24,16 @@ require_once __ROOT__.'/manager/modules.php'; if( preg_match('/^f:(.+)$/', $k, $m) ) // f:codeFormation $formationOpt = $m[1]; + if( preg_match('/^a:(.+)$/', $k, $m) ) // a:annee + $anneeOpt = $m[1]; + + } $ueOpt = ($ueOpt == null || $ueOpt == '*') ? null : $ueOpt; $semestreOpt = ($semestreOpt == null || $semestreOpt == '*') ? null : $semestreOpt; $formationOpt = ($formationOpt == null || $formationOpt == '*') ? null : $formationOpt; + $anneeOpt = ($anneeOpt == null || $anneeOpt == '*') ? null : $anneeOpt; /**************************************** @@ -491,34 +497,187 @@ if( permission('admin') ){ // si l'utilisateur est un admin if( permission('admin') ){ - require_once __ROOT__.'/manager/phpExcel.php'; - require_once __ROOT__.'/manager/database.php'; +function anneeScolaire($year){ return $year.' - '.($year+1); } + // require_once __ROOT__.'/manager/phpExcel.php'; + // require_once __ROOT__.'/manager/database.php'; - $request = new stdClass(); $answer = new stdClass(); + // $request = new stdClass(); $answer = new stdClass(); - $request->level_1 = 'import_mcc'; - $request->docPath = __ROOT__.'/src/excelTemplates/mcc.xlsx'; + // $request->level_1 = 'import_mcc'; + // $request->docPath = __ROOT__.'/src/excelTemplates/mcc.xlsx'; // $request->docPath = __ROOT__.'/src/nouveau_modele.xlsx'; - xlsx_switch_lvl1($request, $answer); + // xlsx_switch_lvl1($request, $answer); + // var_dump( DataBase::getInstance()->setMCC($semestre, $answer->mcc) ); + + + + echo "
"; + + /* [1] Exportation + ==========================================*/ + + // si annéeOpt n'est pas définie, on le fait + if( $anneeOpt == null ) $anneeOpt = $_SESSION['annee']; + + /* ON RÉCUPÈRE LA LISTE DES SEMESTRES EN FONCTION DE L'ANNEE */ + $request = new stdClass(); $answer = new stdClass(); + $request->level_1 = 'getSemestres'; + groups_switch_level_1($request, $answer); // on fait la requête pour les groupes en fonction des filtres si définis + + if( $answer->request == 'success' ){ // si pas d'erreur + echo "
"; + + $anneesListe = array(); + $semestresListe = array(); + + /**********************/ + /* AFFINAGE PAR ANNEE */ + /**********************/ + echo "Exportation des MCC d'un semestre
"; + echo "(Format compatible Microsoft Office, Open Office et Libre Office)
"; + + /* AFFINAGE POUR LES 5 ANNEES SUIVANTES */ + echo "

"; - // si aucune erreur - if( $answer->request == 'success' ){ - echo "
"; - $semestre = 1; + /*************************/ + /* AFFINAGE PAR SEMESTRE */ + /*************************/ + foreach($answer->yearList as $annee){ if( $anneeOpt == $annee['annee'] ){ // on récupère la liste des ids + foreach($annee['semestres'] as $semestre){ if( !in_array($semestre['id'], $semestresListe) ){ + array_push($semestresListe, $semestre['id']); + }} + }} - var_dump( DataBase::getInstance()->setMCC($semestre, $answer->mcc) ); + // si semestreOpt n'est pas cohérent (pas pour cette année) + if( !in_array($semestreOpt, $semestresListe) ) $semestreOpt = null; + + echo "
"; + if( $semestreOpt == null ) echo "Tous"; + else echo "Tous"; + + /* On récupère la liste des SEMESTRES en accord avec l'ANNEE sélectionnée */ + foreach($answer->yearList as $annee){ if( $anneeOpt == $annee['annee'] ){ + 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'].''; + else // sinon on affiche normalement + echo "".$semestre['formation']." - ".$semestre['nom'].''; + }} + }} + echo "


"; + + + // si on a selectionné un semestre + if( $semestreOpt != null ) + foreach($answer->yearList as $annee){ if( $anneeOpt == $annee['annee'] ){ foreach($annee['semestres'] as $semestre){ if( $semestreOpt == $semestre['id'] ){ + echo "".$semestre['nb_etudiants']." étudiants

"; + }}}} + else{ // si on a selectionné "Tous" + $nbTotal = 0; + foreach($answer->yearList as $annee){ if( $anneeOpt == $annee['annee'] ){ foreach($annee['semestres'] as $semestre){ + $nbTotal += $semestre['nb_etudiants']; + }}} + echo "".$nbTotal." étudiants

"; + } + + + echo "
Générer le fichier
"; + echo "
Télécharger le fichier
"; + + + echo "
"; - echo "
"; }else - echo "
Données erronées
"; + echo "

Erreur interne

"; + + + + + + /* [2] Importation + ==========================================*/ + + // si annéeOpt n'est pas définie, on le fait + if( $anneeOpt == null || $anneeOpt < $_SESSION['annee'] ) $anneeOpt = $_SESSION['annee']; + + /* ON RÉCUPÈRE LA LISTE DES SEMESTRES EN FONCTION DE L'ANNEE */ + // $request = new stdClass(); $answer = new stdClass(); + // $request->level_1 = 'getSemestres'; + // groups_switch_level_1($request, $answer); // on fait la requête pour les groupes en fonction des filtres si définis + + // if( $answer->request == 'success' ){ // si pas d'erreur + echo "
"; + + $anneesListe = array(); + + /**********************/ + /* AFFINAGE PAR ANNEE */ + /**********************/ + echo "Importation des MCC d'un semestre
"; + echo "(Fichier .xlsx suivant le modèle : modèle de fichier)
"; + + /* AFFINAGE POUR LES 5 ANNEES SUIVANTES */ + echo "
"; + + + /*************************/ + /* AFFINAGE PAR SEMESTRE */ + /*************************/ + echo "
"; + if( $semestreOpt == null ) echo "Tous"; + else echo "Tous"; + + /* On récupère la liste des SEMESTRES en accord avec l'ANNEE sélectionnée */ + foreach($answer->yearList as $annee){ if( $anneeOpt == $annee['annee'] ){ + 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'].''; + else // sinon on affiche normalement + echo "".$semestre['formation']." - ".$semestre['nom'].''; + }} + }} + echo "


"; + + + + + + echo "
Importer les MCC
"; + + echo "
"; + + // }else + // echo "

Erreur interne

"; + + echo "
"; + + } ?> diff --git a/test.php b/test.php index c4c8fd4..e9a00a7 100755 --- a/test.php +++ b/test.php @@ -47,8 +47,10 @@ require_once __ROOT__.'/manager/security.php'; require_once __ROOT__.'/manager/database.php'; debug(); -$_SESSION['semestre_pair'] = !$_SESSION['semestre_pair']; -var_dump( $_SESSION['semestre_pair'] ); +// $_SESSION['semestre_pair'] = !$_SESSION['semestre_pair']; +// var_dump( $_SESSION['semestre_pair'] ); + +// var_dump( utf8_decode( utf8_decode('Introduction aux systèmes informatiques')) ); // on affiche les modules d'un étudiant // var_dump( DataBase::getInstance()->getModulesByUEByEtudiant(