/** Les données de l'évaluation prises dans cn_devoirs * * @param int $id_eval L'id de l'évaluation * @return array mixed Les données de l'évaluation * @see peut_noter_groupe() */ function donnee_evaluation($id_eval) { // L'enseignant fait parti du groupe ? if (!peut_noter_groupe($_SESSION[PREFIXE]['id_groupe_session'])) { return FALSE; } $table_eval = array(); $sql = "SELECT de.*\n FROM cn_devoirs de\n WHERE de.id ='" . $id_eval . "' "; $query_devoirs = mysql_query($sql); if (0 != mysql_num_rows($query_devoirs)) { $table_eval = mysql_fetch_array($query_devoirs, MYSQL_ASSOC); } mysql_free_result($query_devoirs); return $table_eval; }
/** Renvoie les évaluations modifiables * * Une évaluation est modifiable si : C'est le groupe actif, elle est dans une période ouverte, * l'enseignant peut la noter * * Renvoie un tableau des évaluation valides * *'id', 'nom_court', 'referentiel', 'date', 'coef', 'display_parents', 'conteneur', 'tab_notes', 'note_sur' * SELECT cn_devoirs.id, cn_devoirs.date, cn_devoirs.nom_court, cn_devoirs.ramener_sur_referentiel, * cn_conteneurs.nom_court AS conteneur, cn_devoirs.display_parents, cn_devoirs.coef, cn_devoirs.note_sur * * @return array les évaluation valides * @see eval_du_groupe() * @see eval_dans_periode() * @see statistique() */ function evaluations_modifiables() { // L'enseignant fait parti du groupe ? if (!peut_noter_groupe($_SESSION[PREFIXE]['id_groupe_session'])) { charge_message("Vous n'appartenez pas au groupe " . $_SESSION[PREFIXE]['id_groupe_session']); return FALSE; } $table_evaluations = array(); // tableau de toutes les évaluations valides $periode_ouverte = FALSE; $devoirs_groupe = array(); $devoirs_groupe = eval_du_groupe($_SESSION[PREFIXE]["id_devoir"], $_SESSION[PREFIXE]['id_groupe_session']); if (!$devoirs_groupe) { charge_message("Vous avez sélectionné des devoirs qui n'appartiennent pas à ce groupe\n <br />ceci ne devrait jamais arrivé"); charge_message("groupe : " . $_SESSION[PREFIXE]['id_groupe_session']); charge_message("devoir :"); foreach ($_SESSION[PREFIXE]["id_devoir"] as $montre_devoir) { charge_message($montre_devoir); } return FALSE; } unset($_SESSION[PREFIXE]["id_devoir"]); if (!count($devoirs_groupe)) { charge_message("Aucun devoir disponible"); return FALSE; } else { $_SESSION[PREFIXE]["id_devoir"] = $devoirs_groupe; } // On recherche les périodes ouvertes des classes du groupe $sql_periodes = "SELECT cl.id_classe, pe.nom_periode, pe.verouiller, UNIX_TIMESTAMP(pe.date_verrouillage) AS date_verrouillage\n FROM periodes pe, j_groupes_classes cl\n WHERE cl.id_groupe = '" . $_SESSION[PREFIXE]['id_groupe_session'] . "'\n AND pe.id_classe = cl.id_classe\n AND pe.verouiller = 'N'\n ORDER BY cl.id_classe, pe.num_periode ;"; $query_periodes = mysql_query($sql_periodes); if (mysql_num_rows($query_periodes) == 0) { // il n'y a pas de période ouverte charge_message("Il n'y a pas de période ouverte"); mysql_free_result($query_periodes); return FALSE; } mysql_free_result($query_periodes); unset($devoirs_groupe); $devoirs_groupe = array(); // On vérifie que les devoirs sont bien dans la période ouverte $devoirs_groupe = eval_dans_periode($_SESSION[PREFIXE]["id_devoir"], $_SESSION[PREFIXE]['periode_num']); if (!$devoirs_groupe) { charge_message("Aucun devoir choisi n'est dans la période ouverte"); return FALSE; } // On a des devoirs, le prof peut noter, on renvoie les id_devoir unset($_SESSION[PREFIXE]["id_devoir"]); if (!count($devoirs_groupe)) { charge_message("Aucun devoir disponible"); return FALSE; } else { $_SESSION[PREFIXE]["id_devoir"] = $devoirs_groupe; } if (isset($_SESSION[PREFIXE]["id_devoir"]) && count($_SESSION[PREFIXE]["id_devoir"]) > 0) { // On renvoie les infos des évaluations foreach ($_SESSION[PREFIXE]["id_devoir"] as $devoir) { $sql_eval = "SELECT de.id, UNIX_TIMESTAMP(de.date) as date, \n de.nom_court, \n de.ramener_sur_referentiel AS referentiel, \n cn.nom_court AS conteneur, \n de.display_parents, \n de.coef, \n de.note_sur\n FROM cn_devoirs de , cn_conteneurs cn\n WHERE de.id = '" . $devoir . "'\n AND de.id_conteneur = cn.id ;"; $query_eval = mysql_query($sql_eval); if (0 != mysql_num_rows($query_eval)) { while ($row = mysql_fetch_array($query_eval, MYSQL_ASSOC)) { $date = date("d/m/Y", $row['date']); $stat = statistique($row['id']); $table_evaluations[] = array('id' => $row['id'], 'nom_court' => $row['nom_court'], 'referentiel' => $row['referentiel'], 'date' => $date, 'coef' => $row['coef'], 'display_parents' => $row['display_parents'], 'conteneur' => $row['conteneur'], 'tab_notes' => $stat, 'note_sur' => $row['note_sur']); } } mysql_free_result($query_eval); } unset($devoir); } return $table_evaluations; }
} // on vérifie qu'il y a bien quelque chose à afficher if (!isset($_SESSION[PREFIXE]["id_devoir"])) { charge_message("Aucun devoir sélectionné"); $_SESSION[PREFIXE]['contexte_module'] = EVALUATIONS; $_SESSION[PREFIXE]['contexte_action'] = VOIR; header("Location: index.php"); } else { if (!count($_SESSION[PREFIXE]["id_devoir"])) { charge_message("Vous devez choisir un devoir"); $_SESSION[PREFIXE]['contexte_module'] = EVALUATIONS; $_SESSION[PREFIXE]['contexte_action'] = VOIR; header("Location: index.php"); } else { // on vérifie que le prof peut évaluer le groupe ? if (!isset($_SESSION[PREFIXE]['id_groupe_session']) || !peut_noter_groupe($_SESSION[PREFIXE]['id_groupe_session'])) { charge_message("Vous n'avez pas les droits suffisant sur ce groupe"); $_SESSION[PREFIXE]['contexte_module'] = EVALUATIONS; $_SESSION[PREFIXE]['contexte_action'] = VOIR; header("Location: index.php"); } else { // Récupérer tous les devoirs disponibles $eval_possibles = evaluations_disponibles(); // Récupérer les devoirs non choisis $eval_disponibles = eval_non_choisies($eval_possibles); $tableau_notes = array(); // Récupérer les devoirs qu'on veut modifier $eval_valides = evaluations_modifiables(); if ($eval_valides) { // Récupérer les éleves du groupe $eleves_groupe = trouveEleves();