diff --git a/API.js b/API.js index d5b8def..4111cce 100755 --- a/API.js +++ b/API.js @@ -52,7 +52,7 @@ APIClass.prototype = { /* DEBUG : affiche la réponse BRUTE de API.php */ // console.log('API.php => '+ptrAPI.xhr[i].responseText); - console.log(JSON.parse(ptrAPI.xhr[i].responseText) ); + console.log( JSON.parse(ptrAPI.xhr[i].responseText) ); /* si success de requête */ if( [0,200].indexOf(ptrAPI.xhr[i].status) > -1 ){ // si fichier existe et reçu diff --git a/css/global.css b/css/global.css index ae98d21..7fd7ad4 100755 --- a/css/global.css +++ b/css/global.css @@ -77,6 +77,7 @@ table.basic.col2 tr td, table.basic.col2 tr th{ width: 50%; } table.basic.col3 tr td, table.basic.col3 tr th{ width: 33%; } table.basic.col4 tr td, table.basic.col4 tr th{ width: 25%; } table.basic.col5 tr td, table.basic.col5 tr th{ width: 20%; } +table.basic.col5 tr td, table.basic.col6 tr th{ width: 16%; } /* titre aligné à gauche */ @@ -92,6 +93,7 @@ table.basic:nth-child(4n+3) tr td:first-child{ border-left: 10px solid #2dcc70; + /* @hover */ table.basic tr:hover td{ color: #fff; } @@ -169,9 +171,10 @@ select{ -webkit-appearance:none; -moz-appearance:none; appearance:none; - } +td select{ margin: 0; } + select > option{ /* position */ padding: 1em 0; @@ -187,4 +190,27 @@ select > option{ select > option:nth-child(4n+0){ color: #e63c54; } select > option:nth-child(4n+1){ color: #3c73e6; } select > option:nth-child(4n+2){ color: #e6983c; } -select > option:nth-child(4n+3){ color: #2dcc70; }*/ \ No newline at end of file +select > option:nth-child(4n+3){ color: #2dcc70; }*/ + + + + +.valider_deplacement{ + /* position */ + /*display: inline-block;*/ display: none; + position: absolute; + margin-left: 2em; + margin-top: .5em; + width: 2em; + height: 2em; + + /* background */ + background: transparent center center no-repeat; + background-size: 90% auto; + + /* extra */ + cursor: pointer; +} + +.valider_deplacement.active{ display: inline-block; background-image: url(../src/validate.svg); } +tr:hover td .valider_deplacement.active{ background-image: url(../src/validate@hover.svg); } \ No newline at end of file diff --git a/manager/database.php b/manager/database.php index 6895310..a95d4fd 100755 --- a/manager/database.php +++ b/manager/database.php @@ -223,7 +223,6 @@ class DataBase{ $groupeOpt = '%'; if( $pGroupe != null ) $groupeOpt = $pGroupe; // si le groupe est donné, on le définit - /*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/ $checkAnnee = DataBase::getPDO()->prepare("SELECT id_semestre as id FROM semestre WHERE annee = :annee"); $checkAnnee->execute(array( ':annee' => $annee )); @@ -289,10 +288,7 @@ class DataBase{ "AND app.id_semestre = :semestreUID ". "ORDER BY g.nom"); - $getNomGroupe->execute(array( - ':etudiantUID' => $etudiantUID, - ':semestreUID' => $semestreUID - )); + $getNomGroupe->execute(array( ':etudiantUID' => $etudiantUID, ':semestreUID' => $semestreUID )); // si on a un résultat if( $nomGroupe = $getNomGroupe->fetch()['nom'] ) diff --git a/manager/groups.php b/manager/groups.php index 458e1c0..5dce139 100755 --- a/manager/groups.php +++ b/manager/groups.php @@ -221,7 +221,8 @@ require_once __ROOT__.'/manager/database.php'; if( $anneeCheck ){ - $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, $_SESSION['semestre_pair'], $semestre, $groupe); + // $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, $_SESSION['semestre_pair'], $semestre, $groupe); + $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, null, $semestre, $groupe); if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs $answer->grouplist = $grouplist; diff --git a/manager/repo/group.php b/manager/repo/group.php index 997d930..07cd798 100755 --- a/manager/repo/group.php +++ b/manager/repo/group.php @@ -202,6 +202,34 @@ class groupRepo extends DBAccess{ + + /* RETOURNE LE GROUPE AUQUEL EST INSCRIT UN ETUDIANT POUR UN SEMESTRE DONNÉ + * + * @etudiant l'UID de l'étudiant en question + * @semestre l'UID du semestre en question + * + * @return trouve FAUX si aucun groupe ne correspond aux critères + * @return groupe retourne l'UID du groupe correspondant + * + */ + public static function forStudent($etudiant, $semestre){ + $getGroupe = DataBase::getPDO()->prepare("SELECT g.id_groupe as id, g.nom, g.libelle ". + "FROM utilisateur as u, groupe as g, appartenance as app ". + "WHERE app.id_etudiant = u.identifiant ". + "AND app.id_groupe = g.id_groupe ". + "AND u.identifiant = :etudiantUID ". + + "AND app.id_semestre = :semestreUID ". + "ORDER BY g.nom"); + $getGroupe->execute(array( ':etudiantUID' => $etudiantUID, ':semestreUID' => $semestreUID )); + + return DataBase::delNumeric( $getGroupe->fetch() ); + } + + + + + /* RETOURNE TOUS LES GROUPES QUI ONT UN ENSEIGNANT PARTICULIER POUR UNE ANNEE DONNEE * * @enseignant l'UID de l'enseignant recherché @@ -234,6 +262,7 @@ class groupRepo extends DBAccess{ "AND mcc_m.id_mcc_module = ens.id_mcc_module ". "AND ens.id_enseignant = u.identifiant ". + "AND ens.correcteur = 1 ". // uniquement les groupes pour lesquels il est correcteur "AND app.id_etudiant = eleve.identifiant ". "AND app.id_semestre = s.id_semestre ". @@ -272,7 +301,10 @@ class groupRepo extends DBAccess{ // si le groupe est donné, on cherche uniquement celui-ci, sinon on les affiche tous $groupeOpt = '%'; if( $pGroupe != null ){ $groupeOpt = $pGroupe; } - + + $semestrePair0 = '0'; $semestrePair1 = '1'; + if( is_bool($semestre_pair) ){ $semestrePair0 = $semestre_pair; $semestrePair1 = $semestre_pair; } + $getGroupeList = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe as id, g.nom, s.rang, s.id_semestre, s.nom as semestre ". "FROM groupe as g, semestre as s, appartenance as app ". "WHERE g.id_groupe = app.id_groupe ". @@ -280,10 +312,10 @@ class groupRepo extends DBAccess{ "AND g.nom LIKE '".$groupeOpt."' ". "AND s.nom LIKE '".$semestreOpt."' ". - "AND s.rang % 2 = :semestre_pair ". + "AND (s.rang % 2 = :semestre_pair0 OR s.rang % 2 = :semestre_pair1) ". "AND s.annee = :annee ". "ORDER BY g.nom"); - $getGroupeList->execute(array( ':semestre_pair' => ($semestre_pair) ? '0' : '1', ':annee' => $annee )); + $getGroupeList->execute(array( ':semestre_pair0' => $semestrePair0, ':semestre_pair1' => $semestrePair1, ':annee' => $annee )); return DataBase::delNumeric( $getGroupeList->fetchAll() ); } diff --git a/manager/repo/ue.php b/manager/repo/ue.php index 7ffbdc8..d00a2d3 100755 --- a/manager/repo/ue.php +++ b/manager/repo/ue.php @@ -87,6 +87,7 @@ class ueRepo extends DBAccess{ $getUesForTeacher = DataBase::getPDO()->prepare("SELECT DISTINCT ue.id_ue as id, s.annee, s.rang, ue.nom, ue.libelle ". "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 ". + "AND ens.correcteur = 1 ". // si l'enseignant est correcteur uniquement "AND mcc_m.id_mcc_ue = mcc_ue.id_mcc_ue ". "AND mcc_ue.id_semestre = s.id_semestre ". "AND mcc_ue.id_ue = ue.id_ue ". diff --git a/page/career.php b/page/career.php index 96b0422..673ea67 100755 --- a/page/career.php +++ b/page/career.php @@ -45,25 +45,31 @@ if( permission('student') ){ // si l'utilisateur est connecté et que c'est un foreach($answer->UEs as $UE){ // pour chaque UE echo ""; - echo ""; + echo ""; echo ''; - echo ''; + echo "'; echo ''; - echo ''; - echo ''; - foreach($UE['modules'] as $module) // pour chaque module - foreach($module['controles'] as $controle) // pour chaque contrôle - foreach($controle['notes'] as $note){ // pour chaque note - echo ''; - echo ''; - echo ''; - echo ""; - echo ''; - echo ''; - } + echo '
'.$UE['nom'].' - '.$UE['libelle'].'".$UE['nom'].' - '.$UE['libelle'].'
'.$controle['intitule'].''.number_format($note['valeur'], 2).' / '.$controle['base'].'".$module['nom']." - ".$module['libelle']."Coefficient '.number_format($controle['coefficient'], 2).'
'; + foreach($UE['modules'] as $module){ // pour chaque module + echo ''; + echo ''; - echo ''; + foreach($module['controles'] as $controle){ // pour chaque contrôle + echo ''; + echo ''; + + if( count($controle['notes']) == 0 ) // si aucune note pour ce controle on affiche 'Pas de note' + echo ''; + else // si une note, alors on l'affiche + echo ''; + + echo ""; + echo ''; + echo ''; + } + echo ''; + } echo '
'.$module['nom'].' - '.$module['libelle'].'
'.$controle['intitule'].'Pas de note'.number_format($controle['notes'][0]['valeur'], 2).' / '.$controle['base'].'".$module['nom']." - ".$module['libelle']."Coefficient '.number_format($controle['coefficient'], 2).'
'; } diff --git a/page/groups.php b/page/groups.php index 291f9c3..9ee5d76 100755 --- a/page/groups.php +++ b/page/groups.php @@ -43,7 +43,6 @@ require_once __ROOT__.'/manager/groups.php'; /************************/ /* * UTILISATEUR -> affichage du même semestre -* * */ if( permission('student') ){ // si connecté && utilisateur @@ -115,7 +114,7 @@ if( permission('student') ){ // si connecté && utilisateur * * */ -if( permission('teacher') ){ // si connecté && prof +if( false && permission('teacher') ){ // si connecté && prof $request = new stdClass(); $answer = new stdClass(); @@ -318,7 +317,7 @@ if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un groups_switch_level_1($request, $answer); - if( $answer->request == 'success' ){ // si on a bien récupéré les membres du groupe + if( $answer->request == 'success' && count($answer->grouplist) > 0 ){ // si on a bien récupéré les membres du groupe //////////////////////////////////////////////////////////////////////////////// echo "
"; @@ -475,7 +474,7 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm if( count($group['userlist']) > 0 ){ // s'il y a des utilisateurs - echo ""; + echo "
"; echo ''; echo ''; @@ -498,6 +497,18 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm echo ''; echo ''; echo ''; + // changement de groupe + echo ''; echo ''; } diff --git a/rdv1.client b/rdv1.client old mode 100644 new mode 100755 index f8f8ed8..95400fb --- a/rdv1.client +++ b/rdv1.client @@ -4,13 +4,13 @@ Utilisateur [*] PARCOURS UE MODULE - CONTROLE (même si pas de note) - NOTES + [fait] CONTROLE (même si pas de note) + NOTES Enseignant [*] GROUPES - ceux à qui j'ai des notes à donner + [fait] ceux à qui j'ai des notes à donner [*] NOTES afficher celles pour les modules ou il est correcteur diff --git a/src/more.svg b/src/more.svg deleted file mode 100755 index b766816..0000000 --- a/src/more.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/userlist.json b/src/userlist.json index 42eeb3e..36383d7 100755 --- a/src/userlist.json +++ b/src/userlist.json @@ -3,6 +3,10 @@ "password" : "password" }, + "agq1929a": { + "password" : "password" + }, + "mrd1609a": { "password" : "password" }, diff --git a/src/validate.svg b/src/validate.svg new file mode 100755 index 0000000..a6082aa --- /dev/null +++ b/src/validate.svg @@ -0,0 +1,59 @@ + +image/svg+xml \ No newline at end of file diff --git a/src/validate@hover.svg b/src/validate@hover.svg new file mode 100755 index 0000000..e212f18 --- /dev/null +++ b/src/validate@hover.svg @@ -0,0 +1,59 @@ + +image/svg+xml \ No newline at end of file diff --git a/test.php b/test.php index db794dd..c4c8fd4 100755 --- a/test.php +++ b/test.php @@ -47,32 +47,32 @@ require_once __ROOT__.'/manager/security.php'; require_once __ROOT__.'/manager/database.php'; debug(); -// $_SESSION['semestre_pair'] = !$_SESSION['semestre_pair']; -// var_dump( $_SESSION['semestre_pair'] ); +$_SESSION['semestre_pair'] = !$_SESSION['semestre_pair']; +var_dump( $_SESSION['semestre_pair'] ); // on affiche les modules d'un étudiant -var_dump( DataBase::getInstance()->getModulesByUEByEtudiant( - $_SESSION['identifiant'], - $_SESSION['semestre'], - $_SESSION['annee'] -) ); +// var_dump( DataBase::getInstance()->getModulesByUEByEtudiant( +// $_SESSION['identifiant'], +// $_SESSION['semestre'], +// $_SESSION['annee'] +// ) ); -// on affiche les controle d'un étudiant pour un module, semestre particulier -$UEList = ueRepo::forStudent($_SESSION['identifiant'], $_SESSION['semestre']); +// // on affiche les controle d'un étudiant pour un module, semestre particulier +// $UEList = ueRepo::forStudent($_SESSION['identifiant'], $_SESSION['semestre']); -foreach($UEList as $iter_ue=>$a){ - $UEList[$iter_ue]['modules'] = moduleRepo::forStudent($UEList[$iter_ue]['id'], $UEList[$iter_ue]['id_semestre']); +// foreach($UEList as $iter_ue=>$a){ +// $UEList[$iter_ue]['modules'] = moduleRepo::forStudent($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::forStudent($UEList[$iter_ue]['modules'][$iter_mod]['id'], $UEList[$iter_ue]['id_semestre']); +// foreach($UEList[$iter_ue]['modules'] as $iter_mod=>$b){ +// $UEList[$iter_ue]['modules'][$iter_mod]['controles'] = controleRepo::forStudent($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($_SESSION['identifiant'], $UEList[$iter_ue]['modules'][$iter_mod]['controles'][$iter_ct]['id']); - } +// foreach($UEList[$iter_ue]['modules'][$iter_mod]['controles'] as $iter_ct=>$c) +// $UEList[$iter_ue]['modules'][$iter_mod]['controles'][$iter_ct]['notes'] = noteRepo::forStudent($_SESSION['identifiant'], $UEList[$iter_ue]['modules'][$iter_mod]['controles'][$iter_ct]['id']); +// } -} -var_dump( $UEList[0]['modules'][0]['controles'][0] ); +// } +// var_dump( $UEList[0]['modules'][0]['controles'][0] );
'.$user['prenom'].''.$user['nom'].''.$group['nom'].''; + echo "'; + echo "
"; + echo '