$tab_demande_supprimer[$item_id] = $item_id; } } } unset($tab_post[$item_id]); } } // Il reste dans $tab_post les données à ajouter (mises dans $tab_nouveau_ajouter) et les données qui ne servent pas (non enregistrées et non saisies) $tab_nouveau_ajouter = array_filter($tab_post, 'sans_rien'); // // Il n'y a plus qu'à mettre à jour la base // // L'information associée à la note comporte le nom de l'évaluation + celui du professeur (c'est une information statique, conservée sur plusieurs années) $info = $devoir_description . ' (' . afficher_identite_initiale($_SESSION['USER_NOM'], FALSE, $_SESSION['USER_PRENOM'], TRUE, $_SESSION['USER_GENRE']) . ')'; foreach ($tab_nouveau_ajouter as $item_id => $note) { DB_STRUCTURE_PROFESSEUR::DB_ajouter_saisie($devoir_proprio_id, $_SESSION['USER_ID'], $devoir_id, $item_id, $devoir_date_mysql, $note, $info, $date_visible_mysql); } foreach ($tab_nouveau_modifier as $item_id => $note) { DB_STRUCTURE_PROFESSEUR::DB_modifier_saisie($devoir_proprio_id, $_SESSION['USER_ID'], $devoir_id, $item_id, $note, $info); } foreach ($tab_nouveau_supprimer as $item_id) { DB_STRUCTURE_PROFESSEUR::DB_supprimer_saisie($_SESSION['USER_ID'], $devoir_id, $item_id); } foreach ($tab_demande_supprimer as $item_id) { DB_STRUCTURE_DEMANDE::DB_supprimer_demande_precise_eleve_item($_SESSION['USER_ID'], $item_id); } // Ajout aux flux RSS des profs concernés $tab_profs_rss = array_merge(array($devoir_proprio_id), DB_STRUCTURE_ELEVE::DB_lister_devoir_profs_droit_saisie($devoir_id)); $titre = 'Autoévaluation effectuée par ' . afficher_identite_initiale($_SESSION['USER_NOM'], FALSE, $_SESSION['USER_PRENOM'], TRUE); $texte = $_SESSION['USER_PRENOM'] . ' ' . $_SESSION['USER_NOM'] . ' s\'auto-évalue sur le devoir "' . $devoir_description . '".' . "\r\n"; $texte .= $msg_data ? 'Commentaire :' . "\r\n" . $msg_data . "\r\n" : 'Pas de commentaire saisi.' . "\r\n";
// Dans le cas d'une évaluation sur une liste d'élèves sélectionnés if($qui=='select') { // Il faut ajouter tous les élèves choisis DB_STRUCTURE_PROFESSEUR::DB_modifier_liaison_devoir_user($devoir_id,$devoir_groupe_id,$tab_user_id,'ajouter'); // ($devoir_groupe_id et non $groupe_id qui correspond à la classe d'origine des élèves...) } // Maintenant on peut modifier les items de l'évaluation DB_STRUCTURE_PROFESSEUR::DB_modifier_liaison_devoir_item($devoir_id,$tab_item_id,'ajouter'); // Insérer les scores 'REQ' pour indiquer au prof les demandes dans le tableau de saisie $date_mysql = convert_date_french_to_mysql($date); $date_visible_mysql = convert_date_french_to_mysql($date_visible); $info = 'Demande en attente ('.$_SESSION['USER_NOM'].' '.$_SESSION['USER_PRENOM']{0}.'.)'; foreach($tab_user_item as $key) { list($eleve_id,$item_id) = explode('x',$key); DB_STRUCTURE_PROFESSEUR::DB_ajouter_saisie($_SESSION['USER_ID'],$eleve_id,$devoir_id,$item_id,$date_mysql,'REQ',$info,$date_visible_mysql); } // Pour terminer, on change le statut des demandes ou on les supprime $listing_demande_id = implode(',',$tab_demande_id); if($suite=='changer') { DB_STRUCTURE_PROFESSEUR::DB_modifier_statut_demandes($listing_demande_id,'prof'); } else { DB_STRUCTURE_PROFESSEUR::DB_supprimer_demandes_devoir($listing_demande_id); } exit('ok'); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
} } // On enregistre les modifications. $info = $description . ' (' . afficher_identite_initiale($_SESSION['USER_NOM'], FALSE, $_SESSION['USER_PRENOM'], TRUE, $_SESSION['USER_GENRE']) . ')'; if (!$presence_item) { // 'ajouter' plutôt que 'creer' car en cas d'ajout puis de suppression d'une note à un élève, un item peut se retrouver déjà affecté à un devoir sans qu'il n'y ait de note trouvée DB_STRUCTURE_PROFESSEUR::DB_modifier_liaison_devoir_item($devoir_id, array($item_id), 'ajouter'); } if (!$presence_eleve) { // 'ajouter' plutôt que 'creer' car en cas d'ajout puis de suppression d'une note à un élève, un élève peut se retrouver déjà affecté à un devoir sans qu'il n'y ait de note trouvée DB_STRUCTURE_PROFESSEUR::DB_modifier_liaison_devoir_eleve($devoir_id, $groupe_id, array($eleve_id), 'ajouter'); } $notif_eleve = FALSE; if ($presence_saisie == FALSE) { if ($note_val != 'X') { DB_STRUCTURE_PROFESSEUR::DB_ajouter_saisie($_SESSION['USER_ID'], $eleve_id, $devoir_id, $item_id, TODAY_MYSQL, $note_val, $info, TODAY_MYSQL); $notif_eleve = TRUE; } } else { if ($note_val == 'X') { DB_STRUCTURE_PROFESSEUR::DB_supprimer_saisie($eleve_id, $devoir_id, $item_id); $notif_eleve = TRUE; } elseif ($presence_saisie != $note_val) { DB_STRUCTURE_PROFESSEUR::DB_modifier_saisie($_SESSION['USER_ID'], $eleve_id, $devoir_id, $item_id, $note_val, $info); $notif_eleve = TRUE; } } // Notifications (rendues visibles ultérieurement) ; le mode discret ne d'applique volontairement pas ici car les modifications sont chirurgicales if ($notif_eleve) { $abonnement_ref = 'devoir_saisie'; $listing_eleves = (string) $eleve_id;