Import du MCC en cours (phase de déploiement)
This commit is contained in:
parent
6cb50fdac6
commit
f9f79e1e49
8
API.php
8
API.php
|
@ -61,6 +61,14 @@ require_once __ROOT__.'/manager/security.php';
|
|||
case 'modules':
|
||||
if( isset($request->level_1) ){ require_once __ROOT__.'/manager/modules.php'; modules_switch_level_1($request, $answer); }
|
||||
else { $answer->request = 'missing_level_1'; }
|
||||
break;
|
||||
|
||||
/**********/
|
||||
/* MODULE */
|
||||
/**********/
|
||||
case 'phpExcel':
|
||||
if( isset($request->level_1) ){ require_once __ROOT__.'/manager/phpExcel.php'; xlsx_switch_lvl1($request, $answer); }
|
||||
else { $answer->request = 'missing_level_1'; }
|
||||
break;
|
||||
|
||||
|
||||
|
|
|
@ -279,9 +279,26 @@ td select > option{ padding: 0; }
|
|||
|
||||
/* extra */
|
||||
cursor: pointer;
|
||||
|
||||
/* scroll */
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
.confirm [type=file]{
|
||||
/* position */
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
||||
/* extra */
|
||||
opacity: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* @all */
|
||||
|
|
|
@ -197,6 +197,28 @@ require_once __ROOT__.'/manager/database.php';
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**********************/
|
||||
/* intégration du MCC */
|
||||
/**********************/
|
||||
case 'setMCC': if( permission('admin') ){
|
||||
|
||||
|
||||
if( isset($request->mcc) && isset($request->semestre) && is_numeric($request->semestre) ){ // si tout les paramètres sont bons
|
||||
DataBase::getInstance()->setMCC($request->semestre, $request->mcc);
|
||||
$answer->request = 'success';
|
||||
}else
|
||||
$answer->request = 'param_error';
|
||||
|
||||
}else
|
||||
$answer->request = 'permission_error';
|
||||
break;
|
||||
|
||||
|
||||
|
||||
|
||||
/***********/
|
||||
/* DEFAULT */
|
||||
/***********/
|
||||
|
|
|
@ -123,7 +123,7 @@ class DataBase{
|
|||
* @mcc<Array> contient toutes les données du MCC
|
||||
*
|
||||
*/
|
||||
public static function setMCC($semestre, $mcc){debug();
|
||||
public static function setMCC($semestre, $mcc){
|
||||
|
||||
foreach($mcc as $ue){
|
||||
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
<?php define('__ROOT__', dirname(dirname(__FILE__)) ); require_once __ROOT__.'/manager/security.php';
|
||||
|
||||
if( isset($_FILES['file']) && isset($_POST['filename']) ){
|
||||
|
||||
$path = __ROOT__.'/src/files/';
|
||||
$targetFile = $_SESSION['identifiant'].'_'.$_POST['filename'].'.xlsx';
|
||||
|
||||
if( move_uploaded_file($_FILES["file"]["tmp_name"], $path.$targetFile) )
|
||||
echo "success";
|
||||
else
|
||||
echo "error";
|
||||
|
||||
}else
|
||||
echo 'missing_param';
|
||||
|
||||
?>
|
|
@ -276,118 +276,114 @@ function xlsx_switch_lvl1($request, $answer){
|
|||
/**********************/
|
||||
case 'import_mcc':
|
||||
|
||||
if(isset($request->docPath)) {
|
||||
|
||||
// $inputFileType = 'Excel2007';
|
||||
$inputFileName = $request->docPath;
|
||||
|
||||
// Charger le fichier en tant que document Excel
|
||||
$objPHPExcel = PHPExcel_IOFactory::load($inputFileName);
|
||||
|
||||
// Get sur la première case
|
||||
$sheet = $objPHPExcel->getSheet(0);
|
||||
$mccData = $sheet->rangeToArray('A2:'.$sheet->getHighestColumn().''.$sheet->getHighestRow());
|
||||
|
||||
$filePath = __ROOT__.'/src/files/'.$_SESSION['identifiant'].'_import_mcc.xlsx';
|
||||
|
||||
/* permet d'éviter les doublons */
|
||||
$mcc = array(); // contiendra le tableau de retour
|
||||
$ueuid = array();
|
||||
// file_put_contents($filePath, $file['file']);
|
||||
|
||||
/****************************/
|
||||
/* TRAITEMENT SUR LES CASES */
|
||||
/****************************/
|
||||
foreach($mccData as $line){
|
||||
// // $inputFileType = 'Excel2007';
|
||||
// $inputFileName = $request->docPath;
|
||||
|
||||
// Charger le fichier en tant que document Excel
|
||||
$objPHPExcel = PHPExcel_IOFactory::load($filePath);
|
||||
|
||||
// Get sur la première case
|
||||
$sheet = $objPHPExcel->getSheet(0);
|
||||
$mccData = $sheet->rangeToArray('A2:'.$sheet->getHighestColumn().''.$sheet->getHighestRow());
|
||||
|
||||
|
||||
if( $line[0] != null ){
|
||||
/* permet d'éviter les doublons */
|
||||
$mcc = array(); // contiendra le tableau de retour
|
||||
$ueuid = array();
|
||||
|
||||
/****************************/
|
||||
/* TRAITEMENT SUR LES CASES */
|
||||
/****************************/
|
||||
foreach($mccData as $line){
|
||||
|
||||
if( $line[0] != null ){
|
||||
|
||||
|
||||
/* [1] On récupère les données de l'UE, si les champs sont définis
|
||||
/* [1] On récupère les données de l'UE, si les champs sont définis
|
||||
=========================================================================*/
|
||||
if( /*$line[0] != null && */ $line[1] != null && $line[2] != null ){
|
||||
|
||||
if( $line[0] != null && !in_array($line[0], $ueuid) ){ // on créé l'UE dans la liste s'il n'y est pas déjà
|
||||
|
||||
array_push( // on ajoute l'UE
|
||||
$mcc,
|
||||
array(
|
||||
'nom' => $line[0],
|
||||
'libelle' => $line[1],
|
||||
'coefficient' => $line[2],
|
||||
'modules' => array(),
|
||||
'moduid' => array()
|
||||
)
|
||||
);
|
||||
|
||||
array_push($ueuid, $line[0]); // on dis qu'on a déjà enregistré l'ue
|
||||
}
|
||||
|
||||
if( $line[0] != null )
|
||||
$ueIndex = array_search($line[0], $ueuid);
|
||||
|
||||
/* [2] On récupère les données du module, si les champs sont définis
|
||||
=========================================================================*/
|
||||
if( /*$line[0] != null && */ $line[1] != null && $line[2] != null ){
|
||||
|
||||
if( $line[0] != null && !in_array($line[0], $ueuid) ){ // on créé l'UE dans la liste s'il n'y est pas déjà
|
||||
|
||||
if( /*$line[3] != null && */ $line[4] != null && $line[5] != null ){
|
||||
|
||||
if( $line[3] != null && !in_array($line[3], $mcc[$ueIndex]['moduid']) ){ // on créé le module dans la liste de cet UE s'il n'y est pas déjà
|
||||
array_push( // on ajoute l'UE
|
||||
$mcc,
|
||||
$mcc[$ueIndex]['modules'],
|
||||
array(
|
||||
'nom' => $line[0],
|
||||
'libelle' => $line[1],
|
||||
'coefficient' => $line[2],
|
||||
'modules' => array(),
|
||||
'moduid' => array()
|
||||
'nom' => $line[3],
|
||||
'libelle' => $line[4],
|
||||
'coefficient' => $line[5],
|
||||
'controles' => array(),
|
||||
'ctrluid' => array()
|
||||
)
|
||||
);
|
||||
|
||||
array_push($ueuid, $line[0]); // on dis qu'on a déjà enregistré l'ue
|
||||
array_push($mcc[$ueIndex]['moduid'], $line[3]); // on dis qu'on a déjà enregistré le module
|
||||
}
|
||||
|
||||
if( $line[0] != null )
|
||||
$ueIndex = array_search($line[0], $ueuid);
|
||||
|
||||
/* [2] On récupère les données du module, si les champs sont définis
|
||||
=========================================================================*/
|
||||
if( /*$line[3] != null && */ $line[4] != null && $line[5] != null ){
|
||||
|
||||
if( $line[3] != null && !in_array($line[3], $mcc[$ueIndex]['moduid']) ){ // on créé le module dans la liste de cet UE s'il n'y est pas déjà
|
||||
array_push( // on ajoute l'UE
|
||||
$mcc[$ueIndex]['modules'],
|
||||
array(
|
||||
'nom' => $line[3],
|
||||
'libelle' => $line[4],
|
||||
'coefficient' => $line[5],
|
||||
'controles' => array(),
|
||||
'ctrluid' => array()
|
||||
)
|
||||
);
|
||||
|
||||
array_push($mcc[$ueIndex]['moduid'], $line[3]); // on dis qu'on a déjà enregistré le module
|
||||
}
|
||||
}
|
||||
|
||||
if( $line[3] != null )
|
||||
$modIndex = array_search($line[3], $mcc[$ueIndex]['moduid']);
|
||||
|
||||
/* [3] On récupère les contrôles du module, si les champs sont définis
|
||||
=========================================================================*/
|
||||
if( $line[6] != null && $line[7] != null && $line[8] != null ){
|
||||
|
||||
if( !in_array($line[6], $mcc[$ueIndex]['modules'][$modIndex]['ctrluid']) ){ // on créé le contrôle dans la liste de ce module s'il n'y est pas déjà
|
||||
array_push( // on ajoute l'UE
|
||||
$mcc[$ueIndex]['modules'][$modIndex]['controles'],
|
||||
array(
|
||||
'nom' => $line[6],
|
||||
'libelle' => $line[7],
|
||||
'coefficient' => $line[8]
|
||||
)
|
||||
);
|
||||
|
||||
array_push($mcc[$ueIndex]['modules'][$modIndex]['ctrluid'], $line[6]); // on dis qu'on a déjà enregistré le module
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if( $line[3] != null )
|
||||
$modIndex = array_search($line[3], $mcc[$ueIndex]['moduid']);
|
||||
|
||||
/* [3] On récupère les contrôles du module, si les champs sont définis
|
||||
=========================================================================*/
|
||||
if( $line[6] != null && $line[7] != null && $line[8] != null ){
|
||||
|
||||
if( !in_array($line[6], $mcc[$ueIndex]['modules'][$modIndex]['ctrluid']) ){ // on créé le contrôle dans la liste de ce module s'il n'y est pas déjà
|
||||
array_push( // on ajoute l'UE
|
||||
$mcc[$ueIndex]['modules'][$modIndex]['controles'],
|
||||
array(
|
||||
'nom' => $line[6],
|
||||
'libelle' => $line[7],
|
||||
'coefficient' => $line[8]
|
||||
)
|
||||
);
|
||||
|
||||
array_push($mcc[$ueIndex]['modules'][$modIndex]['ctrluid'], $line[6]); // on dis qu'on a déjà enregistré le module
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* [4] Affinage des données, on supprime les données temporaires
|
||||
=========================================================================*/
|
||||
foreach($mcc as $iter_ue=>$ue){
|
||||
unset( $mcc[$iter_ue]['moduid'] );
|
||||
/* [4] Affinage des données, on supprime les données temporaires
|
||||
=========================================================================*/
|
||||
foreach($mcc as $iter_ue=>$ue){
|
||||
unset( $mcc[$iter_ue]['moduid'] );
|
||||
|
||||
foreach($mcc[$iter_ue]['modules'] as $iter_m=>$mod)
|
||||
unset( $mcc[$iter_ue]['modules'][$iter_m]['ctrluid'] );
|
||||
}
|
||||
foreach($mcc[$iter_ue]['modules'] as $iter_m=>$mod)
|
||||
unset( $mcc[$iter_ue]['modules'][$iter_m]['ctrluid'] );
|
||||
}
|
||||
|
||||
|
||||
$answer->mcc = $mcc;
|
||||
$answer->request = 'success';
|
||||
|
||||
|
||||
}else
|
||||
$answer->request = 'param_error';
|
||||
$answer->mcc = $mcc;
|
||||
$answer->request = 'success';
|
||||
|
||||
break;
|
||||
|
||||
|
|
|
@ -93,4 +93,75 @@ creerSemestre.addEventListener('click', function(e){
|
|||
|
||||
}, false);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* GESTION DE L'IMPORT DE MCC */
|
||||
var importMcc = document.getElementById('import_mcc');
|
||||
importMcc.addEventListener('change', function(e){
|
||||
|
||||
addClass( importMcc, 'loading' );
|
||||
|
||||
var file = importMcc.files[0];
|
||||
|
||||
/* IMPORTATION DU FICHIER */
|
||||
var fd = new FormData();
|
||||
fd.append('filename', 'import_mcc');
|
||||
fd.append('file', file, file.name);
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
|
||||
xhr.open('POST', 'manager/import.php', true);
|
||||
|
||||
xhr.onreadystatechange = function(){
|
||||
if( xhr.readyState == 4 )
|
||||
if( [0, 200].indexOf(xhr.status) > -1 )
|
||||
if( xhr.responseText == 'success' ){
|
||||
|
||||
|
||||
var request = {
|
||||
level_0: 'phpExcel',
|
||||
level_1: 'import_mcc'
|
||||
}
|
||||
|
||||
API.send(request, function(e){
|
||||
if( e.request == 'success' ){ // si on a récupéré l'objet MCC, on lance maintenant l'intégration
|
||||
|
||||
requestIntegration = {
|
||||
level_0: 'career',
|
||||
level_1: 'setMCC',
|
||||
semestre: 1,
|
||||
mcc: e.mcc
|
||||
}
|
||||
|
||||
API.send( requestIntegration, function(f){
|
||||
if( f.request == 'success' ){
|
||||
console.log('mcc intégré');
|
||||
reload();
|
||||
}else
|
||||
console.log('Mcc non intégré');
|
||||
});
|
||||
|
||||
}else
|
||||
reload();
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
xhr.send(fd);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}, false);
|
||||
-->
|
|
@ -529,7 +529,6 @@ if( permission('admin') ){
|
|||
echo "<div class='p center'>";
|
||||
|
||||
$anneesListe = array();
|
||||
$semestresListe = array();
|
||||
|
||||
/**********************/
|
||||
/* AFFINAGE PAR ANNEE */
|
||||
|
@ -554,6 +553,7 @@ if( permission('admin') ){
|
|||
/*************************/
|
||||
/* AFFINAGE PAR SEMESTRE */
|
||||
/*************************/
|
||||
$semestresListe = array();
|
||||
foreach($answer->yearList as $annee){ if( in_array($annee['annee'], $anneesListe) ){ // on récupère la liste des ids
|
||||
foreach($annee['semestres'] as $semestre){ if( !in_array($semestre['id'], $semestresListe) ){
|
||||
array_push($semestresListe, $semestre['id']);
|
||||
|
@ -561,8 +561,7 @@ if( permission('admin') ){
|
|||
}}
|
||||
|
||||
// si semestreOpt n'est pas cohérent (pas pour cette année)
|
||||
if( !in_array($semestreOpt, $semestresListe) ) $semestreOpt = null;
|
||||
|
||||
if( $semestreOpt == null || !in_array($semestreOpt, $semestresListe) ) $semestreOpt = $semestresListe[0];
|
||||
|
||||
$count = 0;
|
||||
echo "<div class='partlist' name='semestre'>";
|
||||
|
@ -571,7 +570,6 @@ if( permission('admin') ){
|
|||
foreach($annee['semestres'] as $semestre){ if( in_array($semestre['id'], $semestresListe) ){
|
||||
$count++;
|
||||
|
||||
if( $semestreOpt == null ) $semestreOpt = $semestre['id'];
|
||||
|
||||
if( $semestre['id'] == $semestreOpt ) // si c'est le semestre séléctionné
|
||||
echo "<span data-year='".$annee['annee']."' data-stre='".$semestre['id']."' class='active'>".$semestre['formation']." - ".$semestre['nom'].'</span>';
|
||||
|
@ -632,7 +630,7 @@ if( permission('admin') ){
|
|||
// if( $answer->request == 'success' ){ // si pas d'erreur
|
||||
echo "<div class='p center'>";
|
||||
echo "Importation des MCC d'un semestre<br>";
|
||||
echo "<span style='font-size:.8em;'>(Fichier .xlsx suivant le modèle : <a href='".__ROOT__."/src/import_mcc.xlsx'>modèle de fichier</a>)</span><br>";
|
||||
echo "<span style='font-size:.8em;'>(Fichier .xlsx suivant le modèle : <a href='/src/import_mcc.xlsx'>modèle de fichier</a>)</span><br>";
|
||||
|
||||
|
||||
/**********************/
|
||||
|
@ -662,8 +660,6 @@ if( permission('admin') ){
|
|||
echo "<div class='partlist' name='semestre'>";
|
||||
foreach($annee['semestres'] as $semestre){ if( in_array($semestre['id'], $semestresListe) ){
|
||||
|
||||
if( $semestreOpt == null ) $semestreOpt = $semestre['id'];
|
||||
|
||||
if( $semestre['id'] == $semestreOpt ) // si c'est le semestre séléctionné
|
||||
echo "<span data-year='".$annee['annee']."' data-stre='".$semestre['id']."' class='active'>".$semestre['formation']." - ".$semestre['nom'].'</span>';
|
||||
else // sinon on affiche normalement
|
||||
|
@ -680,7 +676,7 @@ if( permission('admin') ){
|
|||
|
||||
|
||||
|
||||
echo "<div data-year='".$anneeOpt."' class='confirm active center'>Importer les MCC</div>";
|
||||
echo "<div data-year='".$anneeOpt."' data-stre='".$semestreOpt."' class='confirm active center'>Importer les MCC<input type='file' id='import_mcc'></div>";
|
||||
|
||||
echo "</div>";
|
||||
|
||||
|
@ -742,12 +738,12 @@ if( permission('admin') ){
|
|||
echo "<option value='".($_SESSION['annee']+$i)."'>".anneeScolaire($_SESSION['annee']+$i)."</option>";
|
||||
echo "</select><br>";
|
||||
|
||||
echo "<input type='text' placeholder='cursur, ex: ITINN1'><br>";
|
||||
echo "<input type='text' placeholder='cursus, ex: ITINN1'><br>";
|
||||
echo "<input type='text' placeholder='libellé, ex: DUT INFORMATIQUE 1A'><br>";
|
||||
echo "<input type='text' placeholder='semestre, ex: S1'><br>";
|
||||
echo "<input type='number' min=0 max=6 step=1 placeholder='rang, ex: 1'><br>";
|
||||
|
||||
echo "<div class='confirm active center'>Créer le semestre</div>";
|
||||
echo "<div class='confirm active center' id='creer_semestre'>Créer le semestre</div>";
|
||||
|
||||
|
||||
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 847 B After Width: | Height: | Size: 847 B |
Loading…
Reference in New Issue