Import du MCC en cours (phase de déploiement)

This commit is contained in:
xdrm-brackets 2015-11-21 18:09:03 +01:00
parent 6cb50fdac6
commit f9f79e1e49
12 changed files with 226 additions and 100 deletions

View File

@ -61,6 +61,14 @@ require_once __ROOT__.'/manager/security.php';
case 'modules': case 'modules':
if( isset($request->level_1) ){ require_once __ROOT__.'/manager/modules.php'; modules_switch_level_1($request, $answer); } if( isset($request->level_1) ){ require_once __ROOT__.'/manager/modules.php'; modules_switch_level_1($request, $answer); }
else { $answer->request = 'missing_level_1'; } 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; break;

View File

@ -279,9 +279,26 @@ td select > option{ padding: 0; }
/* extra */ /* extra */
cursor: pointer; 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 */ /* @all */

View File

@ -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 */ /* DEFAULT */
/***********/ /***********/

View File

@ -123,7 +123,7 @@ class DataBase{
* @mcc<Array> contient toutes les données du MCC * @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){ foreach($mcc as $ue){

16
manager/import.php Executable file
View File

@ -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';
?>

View File

@ -276,13 +276,16 @@ function xlsx_switch_lvl1($request, $answer){
/**********************/ /**********************/
case 'import_mcc': case 'import_mcc':
if(isset($request->docPath)) {
// $inputFileType = 'Excel2007'; $filePath = __ROOT__.'/src/files/'.$_SESSION['identifiant'].'_import_mcc.xlsx';
$inputFileName = $request->docPath;
// file_put_contents($filePath, $file['file']);
// // $inputFileType = 'Excel2007';
// $inputFileName = $request->docPath;
// Charger le fichier en tant que document Excel // Charger le fichier en tant que document Excel
$objPHPExcel = PHPExcel_IOFactory::load($inputFileName); $objPHPExcel = PHPExcel_IOFactory::load($filePath);
// Get sur la première case // Get sur la première case
$sheet = $objPHPExcel->getSheet(0); $sheet = $objPHPExcel->getSheet(0);
@ -366,9 +369,6 @@ function xlsx_switch_lvl1($request, $answer){
} }
} }
} }
} }
@ -385,10 +385,6 @@ function xlsx_switch_lvl1($request, $answer){
$answer->mcc = $mcc; $answer->mcc = $mcc;
$answer->request = 'success'; $answer->request = 'success';
}else
$answer->request = 'param_error';
break; break;

View File

@ -93,4 +93,75 @@ creerSemestre.addEventListener('click', function(e){
}, false); }, 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);
--> -->

View File

@ -529,7 +529,6 @@ if( permission('admin') ){
echo "<div class='p center'>"; echo "<div class='p center'>";
$anneesListe = array(); $anneesListe = array();
$semestresListe = array();
/**********************/ /**********************/
/* AFFINAGE PAR ANNEE */ /* AFFINAGE PAR ANNEE */
@ -554,6 +553,7 @@ if( permission('admin') ){
/*************************/ /*************************/
/* AFFINAGE PAR SEMESTRE */ /* 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($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) ){ foreach($annee['semestres'] as $semestre){ if( !in_array($semestre['id'], $semestresListe) ){
array_push($semestresListe, $semestre['id']); array_push($semestresListe, $semestre['id']);
@ -561,8 +561,7 @@ if( permission('admin') ){
}} }}
// si semestreOpt n'est pas cohérent (pas pour cette année) // 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; $count = 0;
echo "<div class='partlist' name='semestre'>"; echo "<div class='partlist' name='semestre'>";
@ -571,7 +570,6 @@ if( permission('admin') ){
foreach($annee['semestres'] as $semestre){ if( in_array($semestre['id'], $semestresListe) ){ foreach($annee['semestres'] as $semestre){ if( in_array($semestre['id'], $semestresListe) ){
$count++; $count++;
if( $semestreOpt == null ) $semestreOpt = $semestre['id'];
if( $semestre['id'] == $semestreOpt ) // si c'est le semestre séléctionné 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>'; 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 // if( $answer->request == 'success' ){ // si pas d'erreur
echo "<div class='p center'>"; echo "<div class='p center'>";
echo "Importation des MCC d'un semestre<br>"; 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'>"; echo "<div class='partlist' name='semestre'>";
foreach($annee['semestres'] as $semestre){ if( in_array($semestre['id'], $semestresListe) ){ 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é 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>'; echo "<span data-year='".$annee['annee']."' data-stre='".$semestre['id']."' class='active'>".$semestre['formation']." - ".$semestre['nom'].'</span>';
else // sinon on affiche normalement 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>"; echo "</div>";
@ -742,12 +738,12 @@ if( permission('admin') ){
echo "<option value='".($_SESSION['annee']+$i)."'>".anneeScolaire($_SESSION['annee']+$i)."</option>"; echo "<option value='".($_SESSION['annee']+$i)."'>".anneeScolaire($_SESSION['annee']+$i)."</option>";
echo "</select><br>"; 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='libellé, ex: DUT INFORMATIQUE 1A'><br>";
echo "<input type='text' placeholder='semestre, ex: S1'><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 "<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>";

View File

BIN
src/import_mcc.xlsx Executable file

Binary file not shown.

0
src/loader.gif Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 847 B

After

Width:  |  Height:  |  Size: 847 B

0
xdoc/empty.sql Normal file → Executable file
View File