Intégration+déploiement de la création de semestre/formation
This commit is contained in:
parent
9a013ef071
commit
1272d1a4cd
|
@ -219,6 +219,52 @@ require_once __ROOT__.'/manager/database.php';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**************************/
|
||||||
|
/* création d'un semestre */
|
||||||
|
/**************************/
|
||||||
|
/*
|
||||||
|
* CRÉATION DU SEMESTRE D'UNE FORMATION DONNÉE
|
||||||
|
* - si code formation non référencé => on créé la formation
|
||||||
|
* - si rang+annee+formation du semestre non référencé => on créé le semestre
|
||||||
|
* + sinon on modifie juste le nom (même si identique)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
case 'creerSemestre': if( permission('admin') ){
|
||||||
|
|
||||||
|
$areSetParam = isset($request->annee) && isset($request->formation) && isset($request->nom_formation) && isset($request->semestre) && isset($request->rang); // les arguments existent
|
||||||
|
$typeOkParam = $areSetParam && is_string($request->formation) && is_string($request->nom_formation) && is_string($request->semestre); // si c'est des strings
|
||||||
|
$nEmptyParam = $typeOkParam && strlen($request->formation) > 0 && strlen($request->nom_formation) > 0 && strlen($request->semestre) > 0 && is_numeric($request->annee) && is_numeric($request->rang); // des bon types
|
||||||
|
$anneeCheck = $nEmptyParam && preg_match('/[0-4]/i', $request->annee); // l'année est au bon format
|
||||||
|
$formationCheck = $anneeCheck && preg_match('/[\w]{0,10}/i', $request->formation); // le code de la formation est au bon format
|
||||||
|
$nomFormationCheck = $formationCheck && preg_match('/[\w ]{0,100}/i', $request->nom_formation); // le nom de la formation est au bon format
|
||||||
|
$semestreCheck = $nomFormationCheck && preg_match('/[\w -]{0,10}/i', $request->semestre); // le nom du semestre est au bon format
|
||||||
|
$rangCheck = $semestreCheck && preg_match('/\d/i', $request->rang); // l'année est au bon format
|
||||||
|
|
||||||
|
|
||||||
|
if( $rangCheck ){ // si tout les paramètres sont bons
|
||||||
|
$creationOk = DataBase::getInstance()->creerSemestre($request->formation, $request->nom_formation, $request->semestre, $request->rang, $request->annee);
|
||||||
|
if( $creationOk )
|
||||||
|
$answer->request = 'success';
|
||||||
|
else
|
||||||
|
$answer->request = 'error';
|
||||||
|
|
||||||
|
}else
|
||||||
|
$answer->request = 'param_error';
|
||||||
|
|
||||||
|
}else
|
||||||
|
$answer->request = 'permission_error';
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***********/
|
/***********/
|
||||||
/* DEFAULT */
|
/* DEFAULT */
|
||||||
/***********/
|
/***********/
|
||||||
|
|
|
@ -145,6 +145,28 @@ class DataBase{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* créé un semestre/formation dans la BDD
|
||||||
|
*
|
||||||
|
* @codeFormation<String> le code/nom de la formation
|
||||||
|
* @nomFormation<String> le libellé de la formation
|
||||||
|
* @nomSemestre<String> le nom/libellé du semestre
|
||||||
|
* @rangSemestre<int> le rang du semestre dans la formation
|
||||||
|
* @annee<int> l'année du semestre
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @return cree<Boolean> retourne VRAI si les éléments existaient ou ont bien été créés
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function creerSemestre($codeFormation, $nomFormation, $nomSemestre, $rangSemestre, $annee){
|
||||||
|
// si on a tout créé ou que tout existe "creer" retourne l'UID du semestre,
|
||||||
|
// si on a un boolean c'est FALSE => erreur
|
||||||
|
//
|
||||||
|
if( !is_bool(semestreRepo::creer($codeFormation, $nomFormation, $nomSemestre, $rangSemestre, $annee)) )
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************************/
|
/*************************************************************************************/
|
||||||
|
|
|
@ -218,4 +218,86 @@ class semestreRepo extends DBAccess{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* retourne l'UID d'un semestre s'il existe sinon créé tout ce qui a besoin et on retourne l'UID
|
||||||
|
*
|
||||||
|
* @codeFormation<String> le code/nom de la formation
|
||||||
|
* @nomFormation<String> le libellé de la formation
|
||||||
|
* @nomSemestre<String> le nom/libellé du semestre
|
||||||
|
* @rangSemestre<int> le rang du semestre dans la formation
|
||||||
|
* @annee<int> l'année du semestre
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @return UID<int> retourne l'UID du semestre si tout s'est bien passé
|
||||||
|
* @return FALSE<Boolean> retourne FALSE s'il y a eu une erreur
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function creer($codeFormation, $nomFormation, $nomSemestre, $rangSemestre, $annee){
|
||||||
|
$count = 0; $maxLoop = 2;
|
||||||
|
|
||||||
|
/* [1] On vérifie l'existence de la formation (code uniquement)
|
||||||
|
====================================================================================*/
|
||||||
|
$getFormationUID = DataBase::getPDO()->prepare("SELECT f.id_formation as id
|
||||||
|
FROM formation as f
|
||||||
|
WHERE f.code = :code");
|
||||||
|
$getFormationUID->execute(array( ':code' => $codeFormation ));
|
||||||
|
|
||||||
|
|
||||||
|
while( !($formationUID=$getFormationUID->fetch()['id']) ){
|
||||||
|
/* [2] on créé la formation car elle n'existe pas
|
||||||
|
================================================================================*/
|
||||||
|
$creerFormation = DataBase::getPDO()->prepare("INSERT INTO formation(id_formation, code, nom, nb_semestres)
|
||||||
|
VALUES(DEFAULT, :code, :nom, 2)");
|
||||||
|
$creerFormation->execute(array( ':code' => $codeFormation, ':nom' => $nomFormation ));
|
||||||
|
|
||||||
|
if( $count >= $maxLoop ) return false;
|
||||||
|
$count++;
|
||||||
|
|
||||||
|
$getFormationUID = DataBase::getPDO()->prepare("SELECT f.id_formation as id
|
||||||
|
FROM formation as f
|
||||||
|
WHERE f.code = :code");
|
||||||
|
$getFormationUID->execute(array( ':code' => $codeFormation ));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* [3] On vérifie l'existence du semestre (rang, annee, nom, formation)
|
||||||
|
====================================================================================*/
|
||||||
|
$getSemestreUID = DataBase::getPDO()->prepare("SELECT s.id_semestre as id
|
||||||
|
FROM semestre as s, formation as f
|
||||||
|
WHERE s.id_formation = f.id_formation
|
||||||
|
AND f.id_formation = :formationUID
|
||||||
|
AND s.nom = :nom
|
||||||
|
AND s.rang = :rang
|
||||||
|
AND s.annee = :annee");
|
||||||
|
$getSemestreUID->execute(array( ':formationUID' => $formationUID, ':nom' => $nomSemestre, ':rang' => $rangSemestre, ':annee' => $annee ));
|
||||||
|
|
||||||
|
while( !($semestreUID = $getSemestreUID->fetch()['id']) ){
|
||||||
|
/* [4] on créé le semestre car il n'existe pas
|
||||||
|
================================================================================*/
|
||||||
|
$creerSemestre = DataBase::getPDO()->prepare("INSERT INTO semestre(id_semestre, id_formation, nom, rang, annee)
|
||||||
|
VALUES(DEFAULT, :formationUID, :nom, :rang, :annee)");
|
||||||
|
$creerSemestre->execute(array( ':formationUID' => $formationUID, ':nom' => $nomSemestre, ':rang' => $rangSemestre, ':annee' => $annee ));
|
||||||
|
|
||||||
|
if( $count >= $maxLoop ) return false;
|
||||||
|
$count++;
|
||||||
|
|
||||||
|
$getSemestreUID = DataBase::getPDO()->prepare("SELECT s.id_semestre as id
|
||||||
|
FROM semestre as s, formation as f
|
||||||
|
WHERE s.id_formation = f.id_formation
|
||||||
|
AND f.id_formation = :formationUID
|
||||||
|
AND s.nom = :nom
|
||||||
|
AND s.rang = :rang
|
||||||
|
AND s.annee = :annee");
|
||||||
|
$getSemestreUID->execute(array( ':formationUID' => $formationUID, ':nom' => $nomSemestre, ':rang' => $rangSemestre, ':annee' => $annee ));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return $semestreUID;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -189,9 +189,11 @@ if( importMcc != null ){
|
||||||
var creerSemestre = document.getElementById('creer_semestre');
|
var creerSemestre = document.getElementById('creer_semestre');
|
||||||
creerSemestre.addEventListener('click', function(e){
|
creerSemestre.addEventListener('click', function(e){
|
||||||
|
|
||||||
|
addClass( creerSemestre, 'loading' );
|
||||||
|
|
||||||
var form = creerSemestre.parentNode;
|
var form = creerSemestre.parentNode;
|
||||||
var fAnnee = form.children[2].value;
|
var fAnnee = form.children[2].value;
|
||||||
var fCursus = form.children[4].value;
|
var fFormation = form.children[4].value;
|
||||||
var fLibelle = form.children[6].value;
|
var fLibelle = form.children[6].value;
|
||||||
var fSemestre = form.children[8].value;
|
var fSemestre = form.children[8].value;
|
||||||
var fRang = form.children[10].value;
|
var fRang = form.children[10].value;
|
||||||
|
@ -200,14 +202,15 @@ creerSemestre.addEventListener('click', function(e){
|
||||||
level_0: 'career',
|
level_0: 'career',
|
||||||
level_1: 'creerSemestre',
|
level_1: 'creerSemestre',
|
||||||
annee: fAnnee,
|
annee: fAnnee,
|
||||||
formation: fCursus,
|
formation: fFormation,
|
||||||
nom_formation: fLibelle,
|
nom_formation: fLibelle,
|
||||||
semestre: fSemestre,
|
semestre: fSemestre,
|
||||||
rang: fRang
|
rang: fRang
|
||||||
}
|
}
|
||||||
|
|
||||||
API.send(request, function(e){
|
API.send(request, function(e){
|
||||||
console.log( e );
|
if( e.request == 'success' )
|
||||||
|
reload();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue