예제 #1
0
  ';
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Formulaire de choix des épreuves pour une recherche de saisies manquantes. -> zone_chx_rubriques
// Paramètres supplémentaires envoyés pour éviter d'avoir à les retrouver à chaque fois. -> form_hidden
// ////////////////////////////////////////////////////////////////////////////////////////////////////
$form_hidden = '';
$tab_checkbox_rubriques = array();
// Lister les matières rattachées au prof
$listing_matieres_id = $_SESSION['USER_PROFIL_TYPE'] == 'professeur' ? DB_STRUCTURE_COMMUN::DB_recuperer_matieres_professeur($_SESSION['USER_ID']) : '';
$form_hidden .= '<input type="hidden" id="f_listing_matieres" name="f_listing_matieres" value="' . $listing_matieres_id . '" />';
$tab_matieres_id = explode(',', $listing_matieres_id);
// Lister les épreuves par série de Brevet en place dans l'établissement
foreach ($tab_brevet_series as $brevet_serie_ref => $brevet_serie_nom) {
    $tab_checkbox_rubriques[$brevet_serie_ref] = '<h3>' . $brevet_serie_nom . '</h3>';
    $DB_TAB = DB_STRUCTURE_BREVET::DB_lister_brevet_epreuves($brevet_serie_ref);
    foreach ($DB_TAB as $DB_ROW) {
        $checked = $_SESSION['USER_PROFIL_TYPE'] != 'professeur' || count(array_intersect(explode(',', $DB_ROW['brevet_epreuve_choix_matieres']), $tab_matieres_id)) ? ' checked' : '';
        $tab_checkbox_rubriques[$brevet_serie_ref] .= '<label for="rubrique_' . $brevet_serie_ref . '_' . $DB_ROW['brevet_epreuve_code'] . '"><input type="checkbox" name="f_rubrique[]" id="rubrique_' . $brevet_serie_ref . '_' . $DB_ROW['brevet_epreuve_code'] . '" value="' . $brevet_serie_ref . '_' . $DB_ROW['brevet_epreuve_code'] . '"' . $checked . ' /> ' . html($DB_ROW['brevet_epreuve_nom']) . '</label><br />';
    }
    $tab_checkbox_rubriques[$brevet_serie_ref] .= '<label for="rubrique_' . $brevet_serie_ref . '_' . CODE_BREVET_EPREUVE_TOTAL . '"><input type="checkbox" name="f_rubrique[]" id="rubrique_' . $brevet_serie_ref . '_' . CODE_BREVET_EPREUVE_TOTAL . '" value="' . $brevet_serie_ref . '_' . CODE_BREVET_EPREUVE_TOTAL . '" /> <i>Avis de synthèse</i></label><br />';
}
?>

<form action="#" method="post" id="zone_chx_rubriques" class="hide">
  <h2>Rechercher des saisies manquantes</h2>
  <div class="astuce">La recherche sera dans tous les cas aussi restreinte aux épreuves où les élèves ont des notes reportées.</div>
  <p><a href="#zone_chx_rubriques" id="rubrique_check_all" class="cocher_tout">Toutes</a>&nbsp;&nbsp;&nbsp;<a href="#zone_chx_rubriques" id="rubrique_uncheck_all" class="cocher_rien">Aucune</a></p>
  <div class="col_liste"><?php 
echo implode('</div><div class="col_liste">', $tab_checkbox_rubriques);
?>
예제 #2
0
if ($ACTION == 'corriger_faute') {
    if (!$appreciation || !$prof_id || $avis_conseil != 'F' && $avis_conseil != 'D' && $epreuve_id == CODE_BREVET_EPREUVE_TOTAL) {
        exit('Erreur avec les données transmises !');
    }
    $avis_et_appreciation = $epreuve_id != CODE_BREVET_EPREUVE_TOTAL ? $appreciation : $avis_conseil . '|' . $appreciation;
    DB_STRUCTURE_BREVET::DB_modifier_brevet_appreciation($serie_ref, $epreuve_id, $eleve_id, $prof_id, $avis_et_appreciation);
    exit('<ok>' . html($appreciation));
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Cas 2 : suppression d'une appréciation
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if ($ACTION == 'supprimer_appr') {
    if ($BILAN_ETAT == '2rubrique' && $epreuve_id == CODE_BREVET_EPREUVE_TOTAL) {
        exit('Erreur avec les données transmises !');
    }
    DB_STRUCTURE_BREVET::DB_modifier_brevet_appreciation($serie_ref, $epreuve_id, $eleve_id, 0, '');
    $ACTION = $epreuve_id != CODE_BREVET_EPREUVE_TOTAL ? '<button type="button" class="ajouter">Ajouter l\'appréciation.</button>' : '<button type="button" class="ajouter">Ajouter l\'avis de synthèse.</button>';
    exit('<div class="hc">' . $ACTION . '</div>');
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Cas 3 & 4 : affichage des données d'un élève (le premier si initialisation ; l'élève indiqué sinon)
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Si besoin, fabriquer le formulaire avec la liste des élèves concernés : soit d'une classe (en général) soit d'une classe ET d'un sous-groupe pour un prof affecté à un groupe d'élèves
$groupe_nom = !$is_sous_groupe ? $classe_nom : $classe_nom . ' - ' . DB_STRUCTURE_COMMUN::DB_recuperer_groupe_nom($groupe_id);
if ($ACTION == 'initialiser') {
    $DB_TAB = !$is_sous_groupe ? DB_STRUCTURE_COMMUN::DB_lister_users_regroupement('eleve', 1, 'classe', $classe_id, 'alpha') : DB_STRUCTURE_COMMUN::DB_lister_eleves_classe_et_groupe($classe_id, $groupe_id);
    if (empty($DB_TAB)) {
        exit('Aucun élève trouvé dans ce regroupement !');
    }
    $tab_eleve_id = array();
    $form_choix_eleve = '<form action="#" method="post" id="form_choix_eleve"><div><b>' . html($classe_nom) . ' :</b> <button id="go_premier_eleve" type="button" class="go_premier">Premier</button> <button id="go_precedent_eleve" type="button" class="go_precedent">Précédent</button> <select id="go_selection_eleve" name="go_selection" class="b">';
예제 #3
0
    exit('Erreur avec les données transmises !');
}
$listing_eleve_id = implode(',', $tab_eleve);
// Récupérer les données élèves
$tab_eleves = array();
// [user_id] => array(nom,prenom,sconet_id) Ordonné par INE.
$DB_TAB = DB_STRUCTURE_BREVET::DB_lister_eleves_cibles_actuels_avec_INE($listing_eleve_id);
if (empty($DB_TAB)) {
    exit('Erreur : les élèves trouvés n\'ont pas d\'Identifiant National Élève (INE) ou sont anciens !');
}
foreach ($DB_TAB as $DB_ROW) {
    $tab_eleves[$DB_ROW['user_id']] = $DB_ROW['user_reference'];
}
// Récupérer les notes enregistrées ; convertir si besoin en nombre de points correspondants
$tab_points = array();
$DB_TAB = DB_STRUCTURE_BREVET::DB_lister_brevet_notes_eleves($listing_eleve_id);
if (count($DB_TAB)) {
    foreach ($DB_TAB as $DB_ROW) {
        if ($DB_ROW['brevet_epreuve_code'] == CODE_BREVET_EPREUVE_TOTAL) {
            $tab_points[$DB_ROW['eleve_id']][$DB_ROW['brevet_epreuve_code']] = $DB_ROW['saisie_note'];
        } elseif ($DB_ROW['brevet_epreuve_point_sup_10']) {
            $tab_points[$DB_ROW['eleve_id']][$DB_ROW['brevet_epreuve_code']] = max(0, $DB_ROW['saisie_note'] - 10);
        } else {
            $tab_points[$DB_ROW['eleve_id']][$DB_ROW['brevet_epreuve_code']] = is_numeric($DB_ROW['saisie_note']) ? $DB_ROW['saisie_note'] * $DB_ROW['brevet_epreuve_coefficient'] : $DB_ROW['saisie_note'];
        }
    }
}
// Fabriquer le fichier csv
$csv_contenu = '';
$csv_separateur = '|';
foreach ($tab_eleves as $eleve_id => $user_reference) {
예제 #4
0
  }
  $tab_brevet_epreuve[$serie_ref][CODE_BREVET_EPREUVE_TOTAL] = 'Avis de synthèse';
}

// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Récupération des saisies déjà effectuées pour le bilan officiel concerné
// ////////////////////////////////////////////////////////////////////////////////////////////////////

// Pour la recherche de saisies manquantes, on peut simplement récupérer ce qui est présent dans la table sacoche_brevet_saisie ; en effet :
// - on ne regarde que les élèves dont les notes sont enregistrées
// - les notes sont toutes enregistrées à la fois, il ne peut pas y avoir de notes manquantes
// - seules les appréciations sont donc à étudier, et elles sont retournées avec les notes, il est donc facile de lister les manques

$tab_resultat_examen = array();
$tab_matiere_epreuve = array();
$DB_TAB = DB_STRUCTURE_BREVET::DB_recuperer_brevet_saisies_eleves( $liste_eleve_id , 0 /*prof_id*/ , FALSE /*with_epreuve_nom*/ , FALSE /*only_total*/ );
foreach($DB_TAB as $DB_ROW)
{
  if( (in_array($DB_ROW['brevet_serie_ref'].'_'.$DB_ROW['brevet_epreuve_code'],$tab_rubrique)) && (!$DB_ROW['saisie_appreciation']) && ($tab_eleve_infos[$DB_ROW['eleve_id']]['eleve_brevet_serie']==$DB_ROW['brevet_serie_ref']) )
  {
    $rubrique_nom = $tab_brevet_serie[$DB_ROW['brevet_serie_ref']].' - '.$tab_brevet_epreuve[$DB_ROW['brevet_serie_ref']][$DB_ROW['brevet_epreuve_code']];
    $tab_resultat_examen[$rubrique_nom][] = 'Absence d\'appréciation pour '.html($tab_eleve_infos[$DB_ROW['eleve_id']]['eleve_nom'].' '.$tab_eleve_infos[$DB_ROW['eleve_id']]['eleve_prenom']);
    $tab_matiere = explode(',',$DB_ROW['matieres_id']);
    foreach($tab_matiere as $matieres_id)
    {
      if($matieres_id) // Pour éviter "Avis de synthèse" qui n'a pas d'identifiant matière
      {
        $tab_matiere_epreuve[$matieres_id][$rubrique_nom] = TRUE;
      }
    }
  }
예제 #5
0
$tab_user          = array();
$tab_select        = array();
$tab_niveau_groupe[0][0] = 'sans classe';
$tab_user[0]             = '';
$tab_select[0]           = '';

// Récupérer la liste des classes
$DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_classes_avec_niveaux($niveau_ordre='DESC');
foreach($DB_TAB as $DB_ROW)
{
  $tab_niveau_groupe[$DB_ROW['niveau_id']][$DB_ROW['groupe_id']] = html($DB_ROW['groupe_nom']);
  $tab_user[  $DB_ROW['groupe_id']] = '';
  $tab_select[$DB_ROW['groupe_id']] = '';
}
// Récupérer la liste des élèves, avec classe, série de brevet, et récupération du total des points (si existant)
$DB_TAB = DB_STRUCTURE_BREVET::DB_lister_brevet_eleves_avec_serie_et_total();
foreach($DB_TAB as $DB_ROW)
{
  $class = ($DB_ROW['saisie_note']===NULL) ? 'non' : 'oui' ;
  $tab_user[  $DB_ROW['eleve_classe_id']] .= '<a class="'.$class.'" id="m_'.$DB_ROW['eleve_classe_id'].'_'.$DB_ROW['user_id'].'_'.$DB_ROW['eleve_brevet_serie'].'" href="#"><img src="./_img/brevet/'.$DB_ROW['eleve_brevet_serie'].'.png" alt="" title="'.$tab_brevet_series[$DB_ROW['eleve_brevet_serie']].'" /><span>'.html($DB_ROW['user_nom'].' '.$DB_ROW['user_prenom']).'</span></a><br />';
  $tab_select[$DB_ROW['eleve_classe_id']] .= '<option value="'.$DB_ROW['eleve_classe_id'].'_'.$DB_ROW['user_id'].'_'.$DB_ROW['eleve_brevet_serie'].'">'.html($DB_ROW['user_nom'].' '.$DB_ROW['user_prenom']).'</option>';
}
// Assemblage du tableau résultant
$TH = array();
$TB = array();
$TF = array();
$select_eleve = '';
foreach($tab_niveau_groupe as $niveau_id => $tab_groupe)
{
  $TH[$niveau_id] = '';
  $TB[$niveau_id] = '';
예제 #6
0
}
//
// Modifier des associations
//
if ($action == 'associer') {
    // liste des élèves
    $listing_user_id = implode(',', $tab_eleve);
    if (!$listing_user_id) {
        exit('Erreur : élève(s) non récupéré(s) !');
    }
    // serie
    if (!$serie || !isset($tab_brevet_series[$serie])) {
        exit('Erreur : serie non transmise ou incorrecte !');
    }
    // go
    DB_STRUCTURE_BREVET::DB_modifier_user_brevet_serie($listing_user_id, $serie);
}
//
// Affichage du bilan des affectations des series aux élèves
//
$tab_niveau_groupe = array();
$tab_user = array();
$tab_niveau_groupe[0][0] = 'sans classe';
$tab_user[0] = '';
// Récupérer la liste des classes
$DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_classes_avec_niveaux($niveau_ordre = 'DESC');
foreach ($DB_TAB as $DB_ROW) {
    $tab_niveau_groupe[$DB_ROW['niveau_id']][$DB_ROW['groupe_id']] = html($DB_ROW['groupe_nom']);
    $tab_user[$DB_ROW['groupe_id']] = '';
}
// Récupérer la liste des élèves / classes
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Cas 3/3 imprimer_donnees_eleves_moyennes : Tableau des notes pour chaque élève
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if ($action == 'imprimer_donnees_eleves_moyennes') {
    // Récupérer les notes enregistrées pour tous les collègues, pour toutes les épreuves
    $tab_saisie = array();
    // [eleve_id][epreuve_code] => note;
    $DB_TAB = DB_STRUCTURE_BREVET::DB_recuperer_brevet_saisies_eleves($liste_eleve_id, 0, FALSE, FALSE);
    foreach ($DB_TAB as $DB_ROW) {
        if ($tab_eleve_infos[$DB_ROW['eleve_id']]['eleve_brevet_serie'] == $DB_ROW['brevet_serie_ref']) {
            $note = is_numeric($DB_ROW['saisie_note']) ? number_format($DB_ROW['saisie_note'], 1, ',', '') : $DB_ROW['saisie_note'];
            $tab_saisie[$DB_ROW['eleve_id']][$DB_ROW['brevet_serie_ref'] . $DB_ROW['brevet_epreuve_code']] = $note;
        }
    }
    // Récupérer les notes enregistrées pour la classe
    $DB_TAB = DB_STRUCTURE_BREVET::DB_recuperer_brevet_saisies_classe($classe_id, 0, FALSE, FALSE);
    foreach ($DB_TAB as $DB_ROW) {
        $note = is_numeric($DB_ROW['saisie_note']) ? number_format($DB_ROW['saisie_note'], 1, ',', '') : $DB_ROW['saisie_note'];
        $tab_saisie[0][$DB_ROW['brevet_serie_ref'] . $DB_ROW['brevet_epreuve_code']] = $note;
    }
    // Pour insérer le groupe classe en dernier
    $tab_eleve_id[] = 0;
    $tab_eleve_infos[0] = array('eleve_nom' => $classe_nom, 'eleve_prenom' => '');
    // Fabrication du PDF ; on a besoin de tourner du texte à 90°
    // Fabrication d'un CSV en parallèle
    $tab_brevet_epreuve[$serie_ref][CODE_BREVET_EPREUVE_TOTAL] = 'Total des points';
    $nb_epreuves = count($tab_brevet_epreuve, COUNT_RECURSIVE) - count($tab_brevet_epreuve);
    $archivage_tableau_PDF = new PDF_archivage_tableau(FALSE, 'portrait', 10, 10, 5, 12, 'non');
    $archivage_tableau_PDF->moyennes_initialiser($nb_eleves + 1, $nb_epreuves);
    $archivage_tableau_CSV = '';
    $separateur = ';';
예제 #8
0
    // (re)calculer les moyennes de classe concernées
    if (count($tab_epreuves_maj)) {
        $listing_epreuves_maj = implode(',', $tab_epreuves_maj);
        $DB_TAB = DB_STRUCTURE_BREVET::DB_lister_brevet_notes_epreuves_classe($serie_ref, $listing_epreuves_maj, $classe_id);
        if (count($DB_TAB)) {
            $tab_notes_considerees = array();
            foreach ($DB_TAB as $DB_ROW) {
                if (is_numeric($DB_ROW['saisie_note'])) {
                    $tab_notes_considerees[$DB_ROW['brevet_epreuve_code']][$DB_ROW['saisie_type']][] = (double) $DB_ROW['saisie_note'];
                }
            }
            foreach ($tab_notes_considerees as $epreuve_code => $tab_saisie_type) {
                if (isset($tab_saisie_type['eleve'])) {
                    $moyenne_classe_epreuve = round(array_sum($tab_saisie_type['eleve']) / count($tab_saisie_type['eleve']), 1);
                    if (!isset($tab_saisie_type['classe'])) {
                        // Ajouter la moyenne de classe
                        DB_STRUCTURE_BREVET::DB_ajouter_brevet_note($serie_ref, $epreuve_code, 'classe', $classe_id, $tab_notes_transmises[$epreuve_code]['matieres_id'], $moyenne_classe_epreuve);
                    } elseif ($tab_saisie_type['classe'][0] != $moyenne_classe_epreuve) {
                        // Mettre à jour la moyenne de classe
                        DB_STRUCTURE_BREVET::DB_modifier_brevet_note($serie_ref, $epreuve_code, 'classe', $classe_id, $tab_notes_transmises[$epreuve_code]['matieres_id'], $moyenne_classe_epreuve);
                    }
                } elseif (isset($tab_saisie_type['classe'])) {
                    // Retirer la moyenne de classe
                    DB_STRUCTURE_BREVET::DB_supprimer_brevet_saisie($serie_ref, $epreuve_code, 'classe', $classe_id);
                }
            }
        }
    }
    // game over
    exit(implode('¤', $tab_td));
}
예제 #9
0
{
  if(test_user_droit_specifique($_SESSION['DROIT_'.$tab_types[$DB_ROW['officiel_type']]['droit'].'_VOIR_ARCHIVE']))
  {
    if(is_file(CHEMIN_DOSSIER_OFFICIEL.$_SESSION['BASE'].DS.fabriquer_nom_fichier_bilan_officiel( $DB_ROW['user_id'] , $DB_ROW['officiel_type'] , $DB_ROW['periode_id'] )))
    {
      $_SESSION['tmp_droit_voir_archive'][$DB_ROW['user_id'].$DB_ROW['officiel_type']] = TRUE; // marqueur mis en session pour vérifier que c'est bien cet utilisateur qui veut voir (et à donc le droit de voir) le fichier, car il n'y a pas d'autre vérification de droit ensuite
      $tab_tbody[$DB_ROW['user_id']][$DB_ROW['periode_id']][] = '<a href="releve_pdf.php?fichier='.$DB_ROW['user_id'].'_'.$DB_ROW['officiel_type'].'_'.$DB_ROW['periode_id'].'" target="_blank">'.$tab_types[$DB_ROW['officiel_type']]['titre'].'</a>' ;
    }
  }
}

// autre boucle pour les fiches brevet (ce n'est pas la même table)
if(test_user_droit_specifique($_SESSION['DROIT_'.$tab_types['brevet']['droit'].'_VOIR_ARCHIVE']))
{
  $bilan_type = 'brevet';
  $DB_TAB = DB_STRUCTURE_BREVET::DB_lister_brevet_fichiers( implode(',',$tab_eleve_id) );
  foreach($DB_TAB as $user_id => $tab)
  {
    if(is_file(CHEMIN_DOSSIER_OFFICIEL.$_SESSION['BASE'].DS.fabriquer_nom_fichier_bilan_officiel( $user_id , $bilan_type , $annee_session_brevet )))
    {
      $_SESSION['tmp_droit_voir_archive'][$user_id.$bilan_type] = TRUE; // marqueur mis en session pour vérifier que c'est bien cet utilisateur qui veut voir (et à donc le droit de voir) le fichier, car il n'y a pas d'autre vérification de droit ensuite
      $tab_tbody[$user_id]['+'.$annee_session_brevet][] = '<a href="releve_pdf.php?fichier='.$user_id.'_'.$bilan_type.'_'.$annee_session_brevet.'" target="_blank">'.$tab_types['brevet']['titre'].'</a>' ;
      $tab_thead['+'.$annee_session_brevet] = '<th class="hc">Année</th>';
    }
  }
}

// Assemblage et affichage du tableau.

echo'<p>Ces bilans sont des copies numériques, laissées à disposition <span class="danger">seulement jusqu\'à la fin de l\'année scolaire.</span></p>'.NL;
echo'<p class="astuce">Cliquer sur un lien atteste que vous avez pris connaissance du document correspondant.</p>'.NL;
예제 #10
0
 * 
 * SACoche est distribué dans l’espoir qu’il vous sera utile, mais SANS AUCUNE GARANTIE :
 * sans même la garantie implicite de COMMERCIALISABILITÉ ni d’ADÉQUATION À UN OBJECTIF PARTICULIER.
 * Consultez la Licence Publique Générale GNU Affero pour plus de détails.
 * 
 * Vous devriez avoir reçu une copie de la Licence Publique Générale GNU Affero avec SACoche ;
 * si ce n’est pas le cas, consultez : <http://www.gnu.org/licenses/>.
 * 
 */

if(!defined('SACoche')) {exit('Ce fichier ne peut être appelé directement !');}
$TITRE = html(Lang::_("Étape n°1 - Indiquer la série des élèves concernés"));

// Fabrication des éléments select du formulaire
$tab_groupes = DB_STRUCTURE_COMMUN::DB_OPT_regroupements_etabl();
$tab_series  = DB_STRUCTURE_BREVET::DB_OPT_brevet_series();
$select_eleve = HtmlForm::afficher_select($tab_groupes , 'select_groupe' /*select_nom*/ , '' /*option_first*/ , FALSE /*selection*/ , 'regroupements' /*optgroup*/ );
$select_serie = HtmlForm::afficher_select($tab_series  , 'f_serie'       /*select_nom*/ , '' /*option_first*/ , FALSE /*selection*/ ,              '' /*optgroup*/ );
?>

<p>
  <span class="manuel"><a class="pop_up" href="<?php echo SERVEUR_DOCUMENTAIRE ?>?fichier=releves_bilans__notanet_fiches_brevet#toggle_etape1_series">DOC : Notanet &amp; Fiches brevet &rarr; Choix des séries</a></span><br />
  <span class="danger">Modifier la série d'un élève supprime les notes ou appréciations éventuellement enregistrées aux étapes suivantes.</span>
</p>
<hr />

<form action="#" method="post" id="form_select">
  <table><tr>
    <td class="nu" style="width:25em">
      <b>Élèves :</b><span class="check_multiple"><q class="cocher_tout" title="Tout cocher."></q><q class="cocher_rien" title="Tout décocher."></q><q class="cocher_inverse" title="Tout échanger."></q></span><br />
      <?php echo $select_eleve ?><br />
    $tab_etabl_coords['adresse3'] = $_SESSION['ETABLISSEMENT']['ADRESSE3'];
}
if ($_SESSION['ETABLISSEMENT']['TELEPHONE']) {
    $tab_etabl_coords['telephone'] = 'Tel : ' . $_SESSION['ETABLISSEMENT']['TELEPHONE'];
}
if ($_SESSION['ETABLISSEMENT']['FAX']) {
    $tab_etabl_coords['fax'] = 'Fax : ' . $_SESSION['ETABLISSEMENT']['FAX'];
}
if ($_SESSION['ETABLISSEMENT']['COURRIEL']) {
    $tab_etabl_coords['courriel'] = 'Mel : ' . $_SESSION['ETABLISSEMENT']['COURRIEL'];
}
if ($_SESSION['ETABLISSEMENT']['URL']) {
    $tab_etabl_coords['url'] = 'Web : ' . $_SESSION['ETABLISSEMENT']['URL'];
}
// académie, département, année
$DB_ROW = DB_STRUCTURE_BREVET::DB_recuperer_departement_academie($_SESSION['WEBMESTRE_UAI']);
if (empty($DB_ROW)) {
    $geo_departement_nom = $geo_academie_nom = '';
} else {
    extract($DB_ROW);
    // $geo_departement_nom $geo_academie_nom
}
$annee_session_brevet = annee_session_brevet();
// Tag date heure initiales
$tag_date_heure_initiales = date('d/m/Y H:i') . ' ' . afficher_identite_initiale($_SESSION['USER_PRENOM'], TRUE, $_SESSION['USER_NOM'], TRUE);
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Initialisation de variables supplémentaires
// INCLUSION DU CODE COMMUN À PLUSIEURS PAGES
// ////////////////////////////////////////////////////////////////////////////////////////////////////
$tab_pages_decoupe_pdf = array();
$make_action = 'imprimer';
예제 #12
0
// Autres chaines spécifiques...

$is_sous_groupe = ($groupe_id) ? TRUE : FALSE ;

$tab_action = array('initialiser','charger');

// On vérifie les paramètres principaux

if( (!in_array($ACTION,$tab_action)) || !$classe_id || ( (!$eleve_id)&&($ACTION!='initialiser') ) )
{
  exit('Erreur avec les données transmises !');
}

// On vérifie que la fiche brevet est bien accessible en modification et on récupère les infos associées (nom de la classe, id des élèves concernés avec lesquels l'intersection est faite ultérieurement).

$DB_ROW = DB_STRUCTURE_BREVET::DB_recuperer_brevet_classe_infos($classe_id);
if(empty($DB_ROW))
{
  exit('Classe sans élèves concernés !');
}
$BILAN_ETAT = $DB_ROW['fiche_brevet'];
$classe_nom = $DB_ROW['groupe_nom'];
$tab_id_eleves_avec_notes = explode(',',$DB_ROW['listing_user_id']);

if(!$BILAN_ETAT)
{
  exit('Fiche brevet introuvable !');
}
if(in_array($BILAN_ETAT,array('0absence','1vide')))
{
  exit('Fiche brevet interdite d\'accès pour cette action !');
예제 #13
0
if(empty($DB_TAB_epreuves))
{
  exit('Erreur : série inconnue !');
}

// Test des paramètres des épreuves

$tab_choix_epreuve = array();
foreach($DB_TAB_epreuves as $DB_ROW)
{
  $epreuve = $DB_ROW['brevet_epreuve_code'];
  $recherche = (isset($_POST['f_'.$serie.'_'.$epreuve.'_recherche'])) ? Clean::entier($_POST['f_'.$serie.'_'.$epreuve.'_recherche']) : NULL ;
  $moyenne   = (isset($_POST['f_'.$serie.'_'.$epreuve.'_moyenne']))   ? Clean::entier($_POST['f_'.$serie.'_'.$epreuve.'_moyenne'])   : NULL ;
  $tab_matieres = (isset($_POST['f_'.$serie.'_'.$epreuve.'_matieres'])) ? explode(',',$_POST['f_'.$serie.'_'.$epreuve.'_matieres']) : array() ;
  $matieres = implode( ',' , array_filter( Clean::map_entier($tab_matieres) , 'positif' ) );
  if( ($recherche===NULL) || ($moyenne===NULL) || ( empty($matieres) && $DB_ROW['brevet_epreuve_obligatoire'] ) )
  {
    exit('Erreur : données manquante pour l\'épreuve "'.html($DB_ROW['brevet_epreuve_nom']).'" !');
  }
  $tab_choix_epreuve[$epreuve] = array( 'recherche'=>$recherche , 'moyenne'=>$moyenne , 'matieres'=>$matieres );
}

// Enregistrement
foreach($tab_choix_epreuve as $epreuve=>$tab_choix)
{
  DB_STRUCTURE_BREVET::DB_modifier_epreuve_choix( $serie , $epreuve , $tab_choix['recherche'] , $tab_choix['moyenne'] , $tab_choix['matieres'] );
}
exit('ok');

?>
예제 #14
0
    // Ne pas exécuter la suite de ce fichier inclus.
}
// Formulaires communs
$tab_choix_recherche = array();
$tab_choix_recherche[] = array('valeur' => 1, 'texte' => 'utiliser en priorité les moyennes des bulletins (si existantes)');
$tab_choix_recherche[] = array('valeur' => 0, 'texte' => 'utiliser la moyenne annuelle des acquisitions (jusqu\'à ce jour)');
$tab_choix_moyenne = array();
$tab_choix_moyenne[] = array('valeur' => 1, 'texte' => 'utiliser la moyenne du premier référentiel trouvé');
$tab_choix_moyenne[] = array('valeur' => 0, 'texte' => 'utiliser la moyenne de tous les référentiels trouvés');
// Passer les séries de Brevet en revue
foreach ($DB_TAB_series as $DB_ROW) {
    $s = $DB_ROW['nombre'] > 1 ? 's' : '';
    echo '<h2 id="h2_' . $DB_ROW['brevet_serie_ref'] . '">' . html($DB_ROW['brevet_serie_nom']) . ' (' . $DB_ROW['nombre'] . ' élève' . $s . ')</h2>' . NL;
    echo '<form action="#" method="post" id="form_' . $DB_ROW['brevet_serie_ref'] . '">' . NL;
    // Récupérer les paramètres et lister les réglages éventuellement déjà enregistrés
    $DB_TAB_epreuves = DB_STRUCTURE_BREVET::DB_lister_brevet_epreuves($DB_ROW['brevet_serie_ref']);
    foreach ($DB_TAB_epreuves as $DB_ROW) {
        // Id & Nom épreuve & Infos
        $id_start = '' . $DB_ROW['brevet_serie_ref'] . '_' . $DB_ROW['brevet_epreuve_code'];
        echo '<h3 id="h3_' . $id_start . '">' . html($DB_ROW['brevet_epreuve_nom']) . '</h3>' . NL;
        if (!$DB_ROW['brevet_epreuve_note_comptee']) {
            echo '<p class="astuce">Présence d\'une note obligatoire, mais seulement à titre informatif, celle-ci n\'étant pas comptabilisée dans le total des points.</p>' . NL;
        }
        if (!$DB_ROW['brevet_epreuve_note_chiffree']) {
            echo '<p class="astuce">Pas de note chiffrée à saisir pour cette épreuve : uniquement un état de validation.</p>' . NL;
        }
        echo '<p>' . NL;
        // Mode de recherche
        $f_nom_recherche = 'f_' . $id_start . '_recherche';
        $selection_recherche = $DB_ROW['brevet_epreuve_choix_recherche'] === NULL ? FALSE : $DB_ROW['brevet_epreuve_choix_recherche'];
        echo '<label class="tab" for="' . $f_nom_recherche . '">Mode de recherche :</label>' . HtmlForm::afficher_select($tab_choix_recherche, $f_nom_recherche, FALSE, $selection_recherche, '') . '<br />' . NL;
예제 #15
0
  $avis_et_appreciation = ($epreuve_id!=CODE_BREVET_EPREUVE_TOTAL) ? $appreciation : $avis_conseil.'|'.$appreciation ;
  DB_STRUCTURE_BREVET::DB_modifier_brevet_appreciation($serie_ref , $epreuve_id , $eleve_id , $prof_id , $avis_et_appreciation);
  exit('<ok>'.html($appreciation));
}

// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Cas 2 : suppression d'une appréciation
// ////////////////////////////////////////////////////////////////////////////////////////////////////

if($ACTION=='supprimer_appr')
{
  if( ($BILAN_ETAT=='2rubrique') && ($epreuve_id==CODE_BREVET_EPREUVE_TOTAL) )
  {
    exit('Erreur avec les données transmises !');
  }
  DB_STRUCTURE_BREVET::DB_modifier_brevet_appreciation($serie_ref , $epreuve_id , $eleve_id , 0 /*prof_id*/ , '' /*appreciation*/ );
  $ACTION = ($epreuve_id!=CODE_BREVET_EPREUVE_TOTAL) ? '<button type="button" class="ajouter">Ajouter l\'appréciation.</button>' : '<button type="button" class="ajouter">Ajouter l\'avis de synthèse.</button>' ;
  exit('<div class="hc">'.$ACTION.'</div>');
}

// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Cas 3 & 4 : affichage des données d'un élève (le premier si initialisation ; l'élève indiqué sinon)
// ////////////////////////////////////////////////////////////////////////////////////////////////////

// Si besoin, fabriquer le formulaire avec la liste des élèves concernés : soit d'une classe (en général) soit d'une classe ET d'un sous-groupe pour un prof affecté à un groupe d'élèves
$groupe_nom = (!$is_sous_groupe) ? $classe_nom : $classe_nom.' - '.DB_STRUCTURE_COMMUN::DB_recuperer_groupe_nom($groupe_id) ;

if($ACTION=='initialiser')
{
  $DB_TAB = (!$is_sous_groupe) ? DB_STRUCTURE_COMMUN::DB_lister_users_regroupement( 'eleve' /*profil_type*/ , 1 /*statut*/ , 'classe' , $classe_id , 'alpha' /*eleves_ordre*/ ) : DB_STRUCTURE_COMMUN::DB_lister_eleves_classe_et_groupe($classe_id,$groupe_id) ;
  if(empty($DB_TAB))
    foreach ($DB_TAB as $DB_ROW) {
        $tab_brevet_serie[$serie_ref] = $DB_ROW['brevet_serie_nom'];
        $tab_brevet_epreuve[$serie_ref][$DB_ROW['brevet_epreuve_code']] = $DB_ROW['brevet_epreuve_nom'];
    }
    $tab_brevet_epreuve[$serie_ref][CODE_BREVET_EPREUVE_TOTAL] = 'Avis de synthèse';
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Récupération des saisies déjà effectuées pour le bilan officiel concerné
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Pour la recherche de saisies manquantes, on peut simplement récupérer ce qui est présent dans la table sacoche_brevet_saisie ; en effet :
// - on ne regarde que les élèves dont les notes sont enregistrées
// - les notes sont toutes enregistrées à la fois, il ne peut pas y avoir de notes manquantes
// - seules les appréciations sont donc à étudier, et elles sont retournées avec les notes, il est donc facile de lister les manques
$tab_resultat_examen = array();
$tab_matiere_epreuve = array();
$DB_TAB = DB_STRUCTURE_BREVET::DB_recuperer_brevet_saisies_eleves($liste_eleve_id, 0, FALSE, FALSE);
foreach ($DB_TAB as $DB_ROW) {
    if (in_array($DB_ROW['brevet_serie_ref'] . '_' . $DB_ROW['brevet_epreuve_code'], $tab_rubrique) && !$DB_ROW['saisie_appreciation'] && $tab_eleve_infos[$DB_ROW['eleve_id']]['eleve_brevet_serie'] == $DB_ROW['brevet_serie_ref']) {
        $rubrique_nom = $tab_brevet_serie[$DB_ROW['brevet_serie_ref']] . ' - ' . $tab_brevet_epreuve[$DB_ROW['brevet_serie_ref']][$DB_ROW['brevet_epreuve_code']];
        $tab_resultat_examen[$rubrique_nom][] = 'Absence d\'appréciation pour ' . html($tab_eleve_infos[$DB_ROW['eleve_id']]['eleve_nom'] . ' ' . $tab_eleve_infos[$DB_ROW['eleve_id']]['eleve_prenom']);
        $tab_matiere = explode(',', $DB_ROW['matieres_id']);
        foreach ($tab_matiere as $matieres_id) {
            if ($matieres_id) {
                $tab_matiere_epreuve[$matieres_id][$rubrique_nom] = TRUE;
            }
        }
    }
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Affichage du résultat de l'analyse
// ////////////////////////////////////////////////////////////////////////////////////////////////////