Affichage des notes pour profs : Etape 1
This commit is contained in:
parent
53a6683b94
commit
04f254564e
|
@ -36,7 +36,7 @@ require_once __ROOT__.'/manager/database.php';
|
||||||
/***************************/
|
/***************************/
|
||||||
/* liste des notes par UEs */
|
/* liste des notes par UEs */
|
||||||
/***************************/
|
/***************************/
|
||||||
case 'getNotesByUEs': if( connected() ){
|
case 'getNotesEtudiant': if( permission('student') ){
|
||||||
|
|
||||||
$areSetParam = isset($request->etudiant) && isset($request->semestre) && isset($request->annee); // les arguments existent
|
$areSetParam = isset($request->etudiant) && isset($request->semestre) && isset($request->annee); // les arguments existent
|
||||||
$typeOkParam = $areSetParam && is_string($request->etudiant) && is_string($request->semestre) && is_string($request->annee); // si c'est des strings
|
$typeOkParam = $areSetParam && is_string($request->etudiant) && is_string($request->semestre) && is_string($request->annee); // si c'est des strings
|
||||||
|
@ -46,7 +46,7 @@ require_once __ROOT__.'/manager/database.php';
|
||||||
$anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
|
$anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
|
||||||
|
|
||||||
if( $anneeCheck ){ // si tout les paramètres sont bons
|
if( $anneeCheck ){ // si tout les paramètres sont bons
|
||||||
$UEs = DataBase::getInstance()->getNotesByUEs($request->etudiant, $request->semestre, $request->annee);
|
$UEs = DataBase::getInstance()->getNotesEtudiant($request->etudiant, $request->semestre, $request->annee);
|
||||||
|
|
||||||
if( is_array($UEs) ){ // si on a bien un tableau
|
if( is_array($UEs) ){ // si on a bien un tableau
|
||||||
$answer->UEs = $UEs; // on renvoie dans answer->note
|
$answer->UEs = $UEs; // on renvoie dans answer->note
|
||||||
|
@ -62,6 +62,34 @@ require_once __ROOT__.'/manager/database.php';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***************************/
|
||||||
|
/* liste des conetroles */
|
||||||
|
/***************************/
|
||||||
|
case 'getControlesEnseignant': if( permission('teacher') ){
|
||||||
|
|
||||||
|
$areSetParam = isset($request->enseignant) && isset($request->annee); // les arguments existent
|
||||||
|
$typeOkParam = $areSetParam && is_string($request->enseignant) && is_string($request->annee); // si c'est des strings
|
||||||
|
$nEmptyParam = $typeOkParam && strlen($request->enseignant) > 0 && is_numeric($request->annee); // des bon types
|
||||||
|
$enseignantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->enseignant); // nom bon format
|
||||||
|
$anneeCheck = $enseignantCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
|
||||||
|
|
||||||
|
if( $anneeCheck ){ // si tout les paramètres sont bons
|
||||||
|
$UEs = DataBase::getInstance()->getControlesEnseignant($request->enseignant, $_SESSION['semestre_pair'], $request->annee);
|
||||||
|
|
||||||
|
if( is_array($UEs) ){ // si on a bien un tableau
|
||||||
|
$answer->UEs = $UEs; // on renvoie dans answer->UEs
|
||||||
|
$answer->request = 'success'; // et on renvoie success
|
||||||
|
}else // sinon si c'est pas un tableau
|
||||||
|
$answer->request = $UEs; // on retourne l'erreur
|
||||||
|
}else
|
||||||
|
$answer->request = 'param_error';
|
||||||
|
|
||||||
|
}else
|
||||||
|
$answer->request = 'permission_error';
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***********/
|
/***********/
|
||||||
/* DEFAULT */
|
/* DEFAULT */
|
||||||
|
|
|
@ -598,10 +598,10 @@ class DataBase{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*********************************/
|
/****************************************/
|
||||||
/*** retourne les notes par UE ***/
|
/*** retourne les notes d'un étudiant ***/
|
||||||
/*********************************/
|
/****************************************/
|
||||||
public function getNotesByUEs($etudiant, $semestre, $annee){
|
public function getNotesEtudiant($etudiant, $semestre, $annee){
|
||||||
// on vérifie que le semestre exist et que l'étudiant est inscrit à ce semestre
|
// on vérifie que le semestre exist et que l'étudiant est inscrit à ce semestre
|
||||||
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||||
if( !($etudiantUID=userRepo::UID($etudiant, $semestreUID)) ) return 'unknown_user';
|
if( !($etudiantUID=userRepo::UID($etudiant, $semestreUID)) ) return 'unknown_user';
|
||||||
|
@ -625,6 +625,32 @@ class DataBase{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************/
|
||||||
|
/*** retourne les notes d'un enseignant ***/
|
||||||
|
/*******************************************/
|
||||||
|
public function getControlesEnseignant($enseignant, $semestre_pair, $annee){
|
||||||
|
// on vérifie que le semestre existe et que l'enseignant y enseigne
|
||||||
|
if( !($enseignantUID=userRepo::UID($enseignant, null, $semestre_pair, $annee)) ) return 'unknown_teacher';
|
||||||
|
|
||||||
|
|
||||||
|
$UEList = ueRepo::forTeacher($enseignantUID, $semestre_pair, $annee);
|
||||||
|
|
||||||
|
foreach($UEList as $iter_ue=>$a){
|
||||||
|
$UEList[$iter_ue]['modules'] = moduleRepo::forTeacher($enseignantUID, $UEList[$iter_ue]['id'], $UEList[$iter_ue]['id_semestre']);
|
||||||
|
|
||||||
|
foreach($UEList[$iter_ue]['modules'] as $iter_mod=>$b){
|
||||||
|
$UEList[$iter_ue]['modules'][$iter_mod]['controles'] = controleRepo::forTeacher($enseignantUID, $UEList[$iter_ue]['modules'][$iter_mod]['id'], $UEList[$iter_ue]['id_semestre']);
|
||||||
|
|
||||||
|
foreach($UEList[$iter_ue]['modules'][$iter_mod]['controles'] as $iter_ct=>$c)
|
||||||
|
$UEList[$iter_ue]['modules'][$iter_mod]['controles'][$iter_ct]['notes'] = noteRepo::forStudent($enseignantUID, $UEList[$iter_ue]['modules'][$iter_mod]['controles'][$iter_ct]['id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return $UEList;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************/
|
/**************************************/
|
||||||
/*** retourne les notes d'un module ***/
|
/*** retourne les notes d'un module ***/
|
||||||
|
|
|
@ -57,4 +57,33 @@ class controleRepo extends DBAccess{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* RENVOIE LES CONTROLES QU'UN ENSEIGNANT PEUT CORRIGER POUR UN MODULE ET SEMESTRE PARTICULIER
|
||||||
|
*
|
||||||
|
* @enseignant<String> l'identifiant de l'enseignant
|
||||||
|
* @module<int> l'UID du module concerné
|
||||||
|
* @semestre<int> l'UID du semestre concerné
|
||||||
|
*
|
||||||
|
* @return controles<Array> retourne les controles q'un enseignant peut corriger pour un module d'un semestre
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function forTeacher($enseignant, $module, $semestre){
|
||||||
|
$getControleList = DataBase::getPDO()->prepare("SELECT DISTINCT ctrl.id_controle as id, ctrl.id_mcc_module, ctrl.intitule, ctrl.base, ctrl.coefficient, ctrl.date_publication ".
|
||||||
|
"FROM enseignement as ens, mcc_module as mcc_m, mcc_ue, controle as ctrl ".
|
||||||
|
"WHERE ens.id_mcc_module = mcc_m.id_mcc_module ".
|
||||||
|
"AND mcc_m.id_mcc_module = ctrl.id_mcc_module ".
|
||||||
|
"AND mcc_ue.id_mcc_ue = mcc_m.id_mcc_ue ".
|
||||||
|
|
||||||
|
"AND ens.id_enseignant = :enseignant ".
|
||||||
|
"AND mcc_m.id_module = :module ".
|
||||||
|
"AND mcc_ue.id_semestre = :semestre");
|
||||||
|
$getControleList->execute(array( ':enseignant' => $enseignant, ':module' => $module, ':semestre' => $semestre ));
|
||||||
|
|
||||||
|
return DataBase::delNumeric( $getControleList->fetchAll() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -75,6 +75,35 @@ class moduleRepo extends DBAccess{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* RENVOIE LA LISTE DES MODULES QU'ENSEIGNE UN ENSEIGNANT POUR UN UE D'UNE ANNEE
|
||||||
|
*
|
||||||
|
* @enseignant<String> Identifiant de l'enseignant
|
||||||
|
* @UEUID<int> L'UID de l'UE en question
|
||||||
|
* @semestre<int> L'UID du semestre en question
|
||||||
|
*
|
||||||
|
* @return Modules<Array> retourne un tableau contenant les modules de l'enseignant pour ce semestre et cet UE
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function forTeacher($enseignant, $UEUID, $semestre){
|
||||||
|
|
||||||
|
// on récupère les modules
|
||||||
|
$getModulesForTeacher = DataBase::getPDO()->prepare("SELECT DISTINCT m.id_module as id, m.nom, m.libelle ".
|
||||||
|
"FROM module as m, mcc_module as mcc_m, mcc_ue, enseignement as ens ".
|
||||||
|
"WHERE ens.id_mcc_module = mcc_m.id_mcc_module ".
|
||||||
|
"AND mcc_m.id_module = m.id_module ".
|
||||||
|
"AND mcc_m.id_mcc_ue = mcc_ue.id_mcc_ue ".
|
||||||
|
|
||||||
|
"AND ens.id_enseignant = :enseignant ".
|
||||||
|
"AND mcc_ue.id_ue = :UEUID ".
|
||||||
|
"AND mcc_ue.id_semestre = :semestre ".
|
||||||
|
"ORDER BY m.nom, m.libelle");
|
||||||
|
$getModulesForTeacher->execute(array( ':enseignant' => $enseignant, ':UEUID' => $UEUID, ':semestre' => $semestre ));
|
||||||
|
|
||||||
|
return DataBase::delNumeric( $getModulesForTeacher->fetchAll() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RENVOIE LA LISTE DES MODULES D'UN UE D'UNE ANNEE COURANTE (SEMESTRES COURANTS)
|
/* RENVOIE LA LISTE DES MODULES D'UN UE D'UNE ANNEE COURANTE (SEMESTRES COURANTS)
|
||||||
*
|
*
|
||||||
|
|
|
@ -111,5 +111,30 @@ class noteRepo extends DBAccess{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* RENVOIE LES NOTES DES ETUDIANTS POUR UN CONTROLE PARTICULIER
|
||||||
|
*
|
||||||
|
* @controle<int> l'UID du controle concerné
|
||||||
|
*
|
||||||
|
* @return notes<Array> retourne les notes des étudiants pour un controle particulier
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function forTeacher($enseignant, $controle){
|
||||||
|
$getNoteList = DataBase::getPDO()->prepare("SELECT DISTINCT n.id_note as id, n.id_appartenance, n.id_controle, n.valeur ".
|
||||||
|
"FROM note as n, appartenance as app, semestre as s, controle as ctrl, mcc_ue, mcc_module as mcc_m ".
|
||||||
|
"WHERE n.id_appartenance = app.id_appartenance ".
|
||||||
|
"AND app.id_semestre = s.id_semestre ".
|
||||||
|
"AND s.id_semestre = mcc_ue.id_semestre ".
|
||||||
|
"AND mcc_ue.id_mcc_ue = mcc_m.id_mcc_ue ".
|
||||||
|
"AND mcc_m.id_mcc_module = ctrl.id_mcc_module ".
|
||||||
|
"AND n.id_controle = ctrl.id_controle ".
|
||||||
|
|
||||||
|
"AND ctrl.id_controle = :controle ".
|
||||||
|
"ORDER BY app.identifiant, n.valeur ASC");
|
||||||
|
$getNoteList->execute(array( ':controle' => $controle ));
|
||||||
|
|
||||||
|
return DataBase::delNumeric( $getNoteList->fetchAll() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -84,7 +84,7 @@ class ueRepo extends DBAccess{
|
||||||
*/
|
*/
|
||||||
public static function forTeacher($enseignant, $semestre_pair, $annee){
|
public static function forTeacher($enseignant, $semestre_pair, $annee){
|
||||||
// on récupère les modules
|
// on récupère les modules
|
||||||
$getUesForTeacher = DataBase::getPDO()->prepare("SELECT DISTINCT ue.id_ue as id, s.annee, s.rang, ue.nom, ue.libelle ".
|
$getUesForTeacher = DataBase::getPDO()->prepare("SELECT DISTINCT ue.id_ue as id, s.id_semestre, s.annee, ue.nom, ue.libelle ".
|
||||||
"FROM enseignement as ens, semestre as s, ue, mcc_ue, mcc_module as mcc_m ".
|
"FROM enseignement as ens, semestre as s, ue, mcc_ue, mcc_module as mcc_m ".
|
||||||
"WHERE ens.id_mcc_module = mcc_m.id_mcc_module ".
|
"WHERE ens.id_mcc_module = mcc_m.id_mcc_module ".
|
||||||
"AND ens.correcteur = 1 ". // si l'enseignant est correcteur uniquement
|
"AND ens.correcteur = 1 ". // si l'enseignant est correcteur uniquement
|
||||||
|
@ -115,7 +115,7 @@ class ueRepo extends DBAccess{
|
||||||
*/
|
*/
|
||||||
public static function forYear($semestre_pair, $annee){
|
public static function forYear($semestre_pair, $annee){
|
||||||
// on récupère les modules
|
// on récupère les modules
|
||||||
$getUEsForYear = DataBase::getPDO()->prepare("SELECT DISTINCT ue.id_ue as id, ue.nom, ue.libelle ".
|
$getUEsForYear = DataBase::getPDO()->prepare("SELECT DISTINCT ue.id_ue as id, s.id_semestre, s.annee, ue.nom, ue.libelle ".
|
||||||
"FROM ue, mcc_ue, semestre as s ".
|
"FROM ue, mcc_ue, semestre as s ".
|
||||||
"WHERE ue.id_ue = mcc_ue.id_ue ".
|
"WHERE ue.id_ue = mcc_ue.id_ue ".
|
||||||
"AND mcc_ue.id_semestre = s.id_semestre ".
|
"AND mcc_ue.id_semestre = s.id_semestre ".
|
||||||
|
|
114
page/career.php
114
page/career.php
|
@ -32,7 +32,7 @@ if( permission('student') ){ // si l'utilisateur est connecté et que c'est un
|
||||||
$request = new stdClass(); $answer = new stdClass();
|
$request = new stdClass(); $answer = new stdClass();
|
||||||
debug();
|
debug();
|
||||||
|
|
||||||
$request->level_1 = 'getNotesByUEs';
|
$request->level_1 = 'getNotesEtudiant';
|
||||||
$request->etudiant = $_SESSION['identifiant'];
|
$request->etudiant = $_SESSION['identifiant'];
|
||||||
$request->semestre = $_SESSION['semestre'];
|
$request->semestre = $_SESSION['semestre'];
|
||||||
$request->annee = $_SESSION['annee'];
|
$request->annee = $_SESSION['annee'];
|
||||||
|
@ -78,4 +78,114 @@ if( permission('student') ){ // si l'utilisateur est connecté et que c'est un
|
||||||
}else
|
}else
|
||||||
echo "<section name='marksbyue' title='Mes Notes' class='basic'><table class=basic><tbody><tr><td>Aucune note trouvée</td></tr></tbody></table></section>";
|
echo "<section name='marksbyue' title='Mes Notes' class='basic'><table class=basic><tbody><tr><td>Aucune note trouvée</td></tr></tbody></table></section>";
|
||||||
|
|
||||||
} ?>
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************/
|
||||||
|
/*** LES UE (version enseignant) ***/
|
||||||
|
/***********************************/
|
||||||
|
if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un élève
|
||||||
|
|
||||||
|
$request = new stdClass(); $answer = new stdClass();
|
||||||
|
debug();
|
||||||
|
|
||||||
|
$request->level_1 = 'getControlesEnseignant';
|
||||||
|
$request->enseignant = $_SESSION['identifiant'];
|
||||||
|
$request->semestre = $_SESSION['semestre'];
|
||||||
|
$request->annee = $_SESSION['annee'];
|
||||||
|
|
||||||
|
career_switch_level_1($request, $answer);
|
||||||
|
|
||||||
|
if( $answer->request == 'success' ){ // si on a bien récupéré les UE/notes
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
echo "<section name='controlesbyue' title='Contrôles' class='basic'>";
|
||||||
|
|
||||||
|
if( count($answer->UEs) > 0 ){ // si au moins un UE
|
||||||
|
|
||||||
|
foreach($answer->UEs as $UE){ // pour chaque UE
|
||||||
|
echo "<table class='basic col4'>";
|
||||||
|
echo "<thead>";
|
||||||
|
echo '<tr>';
|
||||||
|
echo "<th colspan=5 style='font-size:1.5em; text-align:center;'>".$UE['nom'].' - '.$UE['libelle'].'</th>';
|
||||||
|
echo '</tr>';
|
||||||
|
|
||||||
|
echo '</thead></table>';
|
||||||
|
if( count($UE['modules']) > 0 ){ // s'il y a au moins un module
|
||||||
|
|
||||||
|
foreach($UE['modules'] as $module){ // pour chaque module
|
||||||
|
echo '<table class=basic><thead>';
|
||||||
|
echo '<tr><th colspan=5>'.$module['nom'].' - '.$module['libelle'].'</th></tr></thead><tbody>';
|
||||||
|
|
||||||
|
if( count($module['controles']) > 0 ){ // s'il y a au moins un contrôle pour ce module
|
||||||
|
|
||||||
|
foreach($module['controles'] as $controle){ // pour chaque contrôle
|
||||||
|
echo '<tr>';
|
||||||
|
echo '<td><span class=link>'.$controle['intitule'].'</span></td>';
|
||||||
|
|
||||||
|
if( count($controle['notes']) > 0 ) // si ce contrôle est noté, on
|
||||||
|
echo '<td><span class=unstressed>Noté</span></td>';
|
||||||
|
else
|
||||||
|
echo '<td><span class=unstressed>Pas noté</span></td>';
|
||||||
|
|
||||||
|
|
||||||
|
echo "<td>".$module['nom']." - ".$module['libelle']."</td>";
|
||||||
|
echo '<td>Coefficient '.number_format($controle['coefficient'], 2).'</td>';
|
||||||
|
echo '</tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
}else // si aucun contrôle pour ce module
|
||||||
|
echo "<tr><td colspan=5>Aucun contrôle trouvé</td></tr>";
|
||||||
|
|
||||||
|
echo '</tbody>';
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
echo '</table>';
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
echo '</section>';
|
||||||
|
}else
|
||||||
|
echo "<section name='controlesbyue' title='Contrôles' class='basic'><table class=basic><tbody><tr><td>Aucun contrôle trouvé</td></tr></tbody></table></section>";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
Loading…
Reference in New Issue