<?php
/**
 * Ce script définit la classe 'type_election'.
 *
 * @package openresultat
 * @version SVN : $Id$
 */

require_once "../gen/obj/type_election.class.php";

/**
 * Définition de la classe 'type_election'.
 *
 * Cette classe gère les types d'élections (municipales, législatives,
 * européennes, etc.). Elle hérite de la classe générée type_election_gen
 * et ajoute la personnalisation des libellés et l'exposition JSON.
 */
class type_election extends type_election_gen {

    /**
     * Définition des actions disponibles sur la classe.
     *
     * Ajoute les actions JSON permettant d'exposer les données des types
     * d'élections via une API REST :
     * - json_list (997) : liste de tous les types d'élections
     * - json_data (998) : données d'un type d'élection spécifique
     *
     * @return void
     */
    function init_class_actions() {
        parent::init_class_actions();
        // ACTION - 997 - json_list
        // Expose la liste des types d'élections au format JSON
        $this->class_actions[997] = array(
            "identifier" => "json_list",
            "view" => "view_json_list",
            "permission_suffix" => "tab",
        );
        // ACTION - 998 - json_data
        // Expose les données d'un type d'élection au format JSON
        $this->class_actions[998] = array(
            "identifier" => "json_data",
            "view" => "view_json_data",
            "permission_suffix" => "consulter",
        );
    }

    /**
     * SETTER FORM - setLib
     * 
     * @param formulaire $form Instance formulaire.
     * @param integer $maj Identifant numérique de l'action.
     * 
     * @return void
     */
    function setLib(&$form, $maj) {
        //libelle des champs pour éviter les termes techniques
        parent::setLib($form, $maj);
        $form->setLib('type_election', 'id');
    }
}
