Пример #1
0
function exporter_test()
{
    global $page;
    global $resultat;
    global $message;
    $page['gabarit'] = "administration";
    if (isset($_SESSION['role_user']) && droit_acces($resultat['exporter_test'], $_SESSION['role_user'])) {
        $page['vue'] = "resultats/exporter_test.vue.php";
        $page['colonne'] = "tests/sidebar_test.vue.php";
        $page['tests'] = liste_test();
        $page['motifs'] = liste_motif();
        $page['lieux'] = liste_lieux();
        if (isset($_GET['id'])) {
            $id = $_GET['id'];
        }
        if (isset($_POST['id_test'])) {
            $id = $_POST['id_test'];
        }
        $page['id_test'] = $id;
        $page['test'] = get_test($id);
        $page['test'] = $page['test'][0];
        if (isset($_POST['exporter'])) {
            if (isset($_POST['type_export'])) {
                $test = get_contenu_test_actif($id);
                $i = 0;
                foreach ($test as $key => $content) {
                    if ($content['type'] == 'item') {
                        $item = get_item($content['id_element']);
                        $test[$i] = $item[0];
                        $i++;
                    } else {
                        $items = get_item_by_section($content['id_element']);
                        foreach ($items as $it) {
                            $test[$i] = $it;
                            $i++;
                        }
                    }
                }
                if ($_POST['type_export'] == 'valeur') {
                    $column = array();
                    foreach ($_POST["critere"] as $c) {
                        if ($c == 'distinct(candidat.nid_candidat)') {
                            $c = 'nid_candidat';
                        }
                        $column[] = $c;
                    }
                    foreach ($test as $item) {
                        $column[] = $item['libelle_item'];
                        $column[] = $item['libelle_item'] . ' position';
                    }
                    // output headers so that the file is downloaded rather than displayed
                    // create a file pointer connected to the output stream
                    $output = fopen('php://output', 'w');
                    // output the column headings
                    fputcsv($output, $column, ';');
                    // fetch the data
                    $candidats = get_candidats_filtre_reponse($_POST['id_test'], $_POST['crea1'], $_POST['crea1'], $_POST['id_motif'], $_POST['id_organisme'], $_POST['critere']);
                    // loop over the rows, outputting them
                    foreach ($candidats as $c) {
                        foreach ($test as $item) {
                            $rep = get_reponse_item_candidat($item['id_item'], $c['nid_candidat'], $id);
                            $reponse = "";
                            $reponsep = "";
                            foreach ($rep as $r) {
                                $reponse .= $r['libelle_reponse'] . '|';
                            }
                            $c[] = $reponse;
                            foreach ($rep as $r) {
                                $reponsep .= $r['position_reponse'] . '|';
                            }
                            $c[] = $reponsep;
                        }
                        fputcsv($output, $c, ';');
                    }
                    fclose($output);
                    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
                    header('Content-Description: File Transfer');
                    header("Content-type: text/csv");
                    header("Content-Disposition: attachment; filename=data.csv");
                    header("Expires: 0");
                    header("Pragma: public");
                    exit;
                }
                if ($_POST['type_export'] == 'score') {
                    // output headers so that the file is downloaded rather than displayed
                    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
                    header('Content-Description: File Transfer');
                    header("Content-type: text/csv");
                    header("Content-Disposition: attachment; filename=data.csv");
                    header("Expires: 0");
                    header("Pragma: public");
                    // create a file pointer connected to the output stream
                    $output = fopen('php://output', 'w');
                    $column = array();
                    foreach ($_POST["critere"] as $c) {
                        $column[] = $c;
                    }
                    foreach ($test as $item) {
                        $dims = get_dim_item($item['id_item']);
                        foreach ($dims as $dim) {
                            $column[] = $item['libelle_item'] . "_" . $dim['libelle_court_dimension'];
                        }
                    }
                    // output the column headings
                    fputcsv($output, $column, ';');
                    // fetch the data
                    $candidats = get_candidats_filtre_reponse($_POST['id_test'], $_POST['crea1'], $_POST['crea1'], $_POST['id_motif'], $_POST['id_organisme'], $_POST['critere']);
                    foreach ($candidats as $c) {
                        foreach ($test as $item) {
                            $dims = get_dim_item($item['id_item']);
                            foreach ($dims as $dim) {
                                $rep = get_score_dim_item_candidat($item['id_item'], $c['nid_candidat'], $id, $dim['id_dimension']);
                                $reponse = "";
                                foreach ($rep as $r) {
                                    $reponse .= $r['score_brut'] . ' | ';
                                }
                                $c[] = $reponse;
                            }
                        }
                        fputcsv($output, $c, ';');
                    }
                    fclose($output);
                    exit;
                }
            } else {
                $page['message'] = $message['champs_obligatoire_2'];
            }
        }
    } else {
        $page['vue'] = "erreur_droit.vue.php";
    }
}
Пример #2
0
function editer_batterie()
{
    global $page;
    global $test;
    global $message;
    //layout principal du site
    $page['gabarit'] = "administration";
    //verification des droits d'acces
    if (isset($_SESSION['role_user']) && droit_acces($test['editer_test'], $_SESSION['role_user'])) {
        //recuperer la variable $id dans la barre url en get ou post
        if (isset($_GET['id'])) {
            $id = $_GET['id'];
        }
        if (isset($_POST['id_batterie'])) {
            $id = $_POST['id_batterie'];
        }
        //chargement  de la batterie concernée
        $page['batterie'] = get_batterie($id);
        $page['batterie'] = $page['batterie'][0];
        //recuperation du motif de la batterie
        $page['id_motif'] = get_motif_batterie($id);
        //*recuperation de la liste des  motifs, et des tests pour la sidebar batterie
        $page['motif'] = liste_motif();
        $page['etat'] = liste_etat();
        $page['tests'] = liste_des_tests($page['batterie']['libelle_projet']);
        $page['projet'] = liste_projet();
        $page['lieu'] = liste_lieux_auteur();
        //organismes auteurs
        //--création des vues
        $page['vue'] = "batteries/edit_batterie.vue.php";
        $page['colonne'] = "batteries/sidebar_edit_batterie.vue.php";
        if (isset($_POST['edit_batterie'])) {
            if (is_current_version_test($_POST['id_batterie'], $_POST['revision'])) {
                update_revision_test($_POST['id_batterie']);
                // on supprime les anciens tests de la batterie avant de procéder à l'enregistrement de nouveaux
                delete_contenu_batterie($id);
                foreach ($_POST['tests'] as $key => $test) {
                    //	ajout  de nouveaux  tests dans la batterie	(auto increment de l'ordre)
                    add_batterie_test($id, $test, $key + 1);
                }
                //La batterie passe automatiquement en experimentation si elle a été éditée
                if ($page['batterie']['id_etat'] == 1) {
                    set_batterie_to_experimentation($id);
                }
                //redirection sur la page d'accueil du controleur
                header("Location: index.php?controleur=batterie_test&tache=base");
            } else {
                $page['message'] = $message['batterie_outdated'];
            }
        } else {
            $page['batterie'] = get_batterie($id);
            //on recupere la liste des batteries
            $page['batterie'] = $page['batterie'][0];
            //on prend la premiere valeur du tableau recuperé
            //Affichage du message d'erreur si l'etat de la batterie ne permet pas la modification
            if (get_etat_batterie($id) >= 3) {
                $page['message'] = $message['batterie_edition_disabled'];
            }
            //recuperation du contenu de la batterie
            $page['batterie']['batterie_test'] = get_contenu_batterie($id);
            foreach ($page['batterie']['batterie_test'] as $key => $content) {
                $tests = get_test($content['id_test']);
                foreach ($tests[0] as $k => $val) {
                    $page['batterie']['batterie_test'][$key][$k] = $val;
                }
            }
        }
    } else {
        $page['vue'] = "erreur_droit.vue.php";
    }
}
Пример #3
0
function production_test()
{
    global $message;
    global $page;
    //passage en prod si etat 2 + popup + item en prod
    $page['vue'] = "tests/test.vue.php";
    $page['colonne'] = "tests/sidebar_test.vue.php";
    $page['tests'] = liste_test();
    $page['sphere'] = liste_sphere();
    $page['facteur'] = liste_facteur();
    $page['lieu'] = liste_lieux_auteur();
    $page['projet'] = liste_projet();
    if (isset($_GET['id'])) {
        $id = $_GET['id'];
    }
    if (isset($_POST['id_test'])) {
        $id = $_POST['id_test'];
    }
    $page['gabarit'] = "administration";
    $page['test'] = get_test($id);
    $page['test'] = $page['test'][0];
    $page['test']['id_test'] = $id;
    $page['etat'] = liste_etat();
    if (has_reponse_test($id)) {
        $page['message_info'] = $message['info_test_prod'];
    }
    if (isset($_POST['prod'])) {
        $page['test'] = get_test($id);
        $page['test'] = $page['test'][0];
        if (is_current_version_test($id, $_POST['revision'])) {
            if ($_POST['code_test'] != "" && $_POST['libelle_long_test'] != "" && $_POST['version_test'] != "") {
                if ($page['test']['id_etat'] == 2) {
                    if (has_reponse_test($id)) {
                        /*duplication: la source passe en archive et le nouveau passe en production*/
                        $new_id = dupliquation_test_prod($_POST['id_test'], $_POST['code_test'], $_POST['libelle_long_test'], $_POST['version_test']);
                        if ($new_id != false) {
                            $page['test']['contenu_test'] = get_contenu_test($_POST['id_test']);
                            foreach ($page['test']['contenu_test'] as $key => $content) {
                                if ($content['type'] == 'item') {
                                    set_item_to_archive($content['id_element']);
                                } else {
                                    $section = get_section($content['id_element']);
                                    foreach ($section[0] as $k => $v) {
                                        $items = get_item_by_section($content['id_element']);
                                        foreach ($items as $it) {
                                            set_item_to_archive($it['id_item']);
                                        }
                                    }
                                }
                            }
                            set_test_to_archive($id);
                            header("Location: index.php?controleur=test&tache=visualiser_test&id=" . $new_id);
                        } else {
                            $page['message'] = $message['test_existe'] . "<br/> Merci de les modifier pour le passage en production";
                        }
                    } else {
                        $mprod = set_test_to_production($id, $_POST['code_test'], $_POST['libelle_long_test'], $_POST['version_test']);
                        if (mprod) {
                            $page['test']['contenu_test'] = get_contenu_test($_POST['id_test']);
                            foreach ($page['test']['contenu_test'] as $key => $content) {
                                if ($content['type'] == 'item') {
                                    set_item_to_production($content['id_element']);
                                } else {
                                    $section = get_section($content['id_element']);
                                    foreach ($section[0] as $k => $v) {
                                        $items = get_item_by_section($content['id_element']);
                                        foreach ($items as $it) {
                                            set_item_to_production($it['id_item']);
                                        }
                                    }
                                }
                            }
                            header("Location: index.php?controleur=test&tache=visualiser_test&id=" . $id);
                        } else {
                            $page['message'] = $message['test_existe'] . "<br/> Merci de les modifier pour le passage en production";
                        }
                    }
                }
            } else {
                $page['message'] = $message['champs_obligatoire_2'];
            }
        } else {
            header("Location: index.php?controleur=test&tache=visualiser_test&id=" . $id . "&message=outdated_test");
        }
    }
}