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 */
|
||||
/***********/
|
||||
|
|
|
@ -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,25 +189,28 @@ if( importMcc != null ){
|
|||
var creerSemestre = document.getElementById('creer_semestre');
|
||||
creerSemestre.addEventListener('click', function(e){
|
||||
|
||||
addClass( creerSemestre, 'loading' );
|
||||
|
||||
var form = creerSemestre.parentNode;
|
||||
var fAnnee = form.children[2].value;
|
||||
var fCursus = form.children[4].value;
|
||||
var fLibelle = form.children[6].value;
|
||||
var fSemestre = form.children[8].value;
|
||||
var fRang = form.children[10].value;
|
||||
var fAnnee = form.children[2].value;
|
||||
var fFormation = form.children[4].value;
|
||||
var fLibelle = form.children[6].value;
|
||||
var fSemestre = form.children[8].value;
|
||||
var fRang = form.children[10].value;
|
||||
|
||||
var request = {
|
||||
level_0: 'career',
|
||||
level_1: 'creerSemestre',
|
||||
annee: fAnnee,
|
||||
formation: fCursus,
|
||||
formation: fFormation,
|
||||
nom_formation: fLibelle,
|
||||
semestre: fSemestre,
|
||||
rang: fRang
|
||||
}
|
||||
|
||||
API.send(request, function(e){
|
||||
console.log( e );
|
||||
if( e.request == 'success' )
|
||||
reload();
|
||||
});
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue