OpenRésultat

De ClissXXI.

Logiciel de gestion d'élections.

Documentation de base:

Sommaire

Déroulement d'une élection avec OpenRésultat

  • Fonctionne pour une et une seule collectivité
    • La collectivité peut s'étendre sur un ou plusieurs cantons
    • Chaque canton dispose de bureaux de vote rattachés à la collectivité
  • Les élections sont créées au moment où commence l'élection officielle
    • À la création, une copie de la configuration (candidats, bureaux de vote...) est effectuée - plus de changement possible! (Cela est nécessaire pour pouvoir archiver l'élection.)
    • On remplit d'une part la participation par tranche horaire
    • On remplit d'autre part les résultats du scrutin
      • La première centaine peut être saisie à part pour des premières statistiques
  • Pendant la saisie, un module de visualisation affiche les statistiques en cours
    • La page web de visualisation est conçue pour être rétro-projetée

Élection municipale

Les champs à saisir

Une élection:

  • contient des bureaux de votes
    • répartis sur des cantons
  • présente des choix de votes ("candidats")
    • attachés à un parti
    • attachés à un groupe
    • les listes municipales ont un age moyen
  • a un nombre fixé choix de votes / candidats
  • contient des regroupements (pour comparer avec d'autres villes)

Ordre de saisie

Il faut donc entrer dans l'ordre:

  • Nom de la collectivité (Paramétrage -> Collectivité)
  • Les cantons (Paramétrage -> Cantons)
  • Les bureaux de vote (Paramétrage -> Bureaux de vote)
  • Les partis (Paramétrage -> Partis politiques)
  • Les groupes (Paramétrage -> Groupes politiques)
  • Les listes (Paramétrage -> Candidats)
  • L'age moyen des listes (Paramétrage -> Listes municipales) (facultatif)
  • Les autre villes (Saisie -> Regroupements) (facultatif)

Une fois cela fait, et pas avant, vous pouvez lancer une élection

  • L'élection elle-même (Configuration -> Election(s) en cours)
  • Les candidats de l'élection (Configuration -> Config Election -> config_candidat)
  • Le nombre d'inscrits dans chaque bureau de vote (Configuration -> Config Election -> config_bureau)

Ensuite les résultats, au fur et à mesure:

  • Participation par bureau de vote
  • Première centaine
  • Résultats définitifs

Du point de vue de l'installateur

Installation automatique

  • Version 1.07
  • Réalisée sous Debian GNU/Linux, version Etch (4.0)
## Installation des fichiers OpenRésultat
wget http://adullact.net/frs/download.php/2511/openmairie_resultat_1.07.zip
unzip openmairie_resultat_1.07.zip
ln -sf openmairie_resultat_1.07 openmairie_resultat

# Donner des droits d'écriture à Apache pour enregistrer certains fichiers (photos, plans...)
cd /var/www/openmairie_resultat/
chgrp -R www-data aff/ pdf/ tmp/ trs/ web/
chmod -R g=rwX aff/ pdf/ tmp/ trs/ web/ 


## Dépendences
aptitude install php-db
# Installe le paquet Debian php-fpdf, en forçant php5 (et non pas php4):
aptitude install php5 php-fpdf

mkdir /var/www/libs
pushd /var/www/libs

# OpenMairie:
wget http://adullact.net/frs/download.php/2369/openmairie_1.19.zip
unzip openmairie_1.19.zip
ln -s openmairie_1.19 openmairie

# Artichow:
aptitude install php5-gd # dépendence d'Artichow
wget http://www.artichow.org/data/Artichow-1.1.0-php4+5.tar.gz
tar xzf Artichow-1.1.0-php4+5.tar.gz
ln -s Artichow-php4+5 artichow
# TODO: autres patches Artichow comme expliqué dans la doc OpenRésultat
# Contourne le problème "missing imageantialias() function"
cat <<EOF > artichow.diff
--- php5/inc/drivers/gd.class.php~	2006-12-15 18:25:10.000000000 +0100
+++ php5/inc/drivers/gd.class.php	2008-03-03 19:57:48.000000000 +0100
@@ -159,8 +159,10 @@
 			imageantialias($this->resource, (bool)$bool);
 
 			$this->antiAliasing = (bool)$bool;
-		} else {
+		} else if ($bool == TRUE) {
 			awImage::drawErrorFile('missing-anti-aliasing');
+		} else {
+			$this->antiAliasing = FALSE;
 		}
 	}
 	
EOF
patch -p0 < artichow.diff
popd

# Dire à PHP où les trouver:
cat <<EOF > /etc/php5/conf.d/openresultat.ini
include_path = ".:/usr/share/php:/var/www/libs/openmairie:/usr/share/php/fpdf:/var/www/libs/artichow"
EOF


## Base de données
mysqladmin create openresultat
mysql openresultat < data/mysql/init.sql
# Each entry in '$conn' will be shown in the frontpage
pass=`pwgen -s1`
mysql -e "GRANT ALL PRIVILEGES ON openresultat.* TO 'openresultat' IDENTIFIED BY '$pass';"
cat <<'EOF' > dyn/base.php
<?php
$conn[1] = array (  'OpenResultat sur MySQL', // Titre sur la page index.php
                    'mysql', // Phptype
                    '', // Dbsyntax
                    'openresultat', // Utilisateur
                    'CHANGETHEPASSWORD', // Mot de passe
                    '', // Protocole
                    'localhost', // Hote
                    '', // Port
                    '', // Socket
                    'openresultat', // Nom de la base de données
                    'AAAA-MM-JJ' // Format date de la base
                 );
EOF
sed -i -e "s/CHANGETHEPASSWORD/$pass/" dyn/base.php

Apache config (forcer l'encodage latin-1):

<VirtualHost ...>
  AddDefaultCharset ISO-8859-1
  ...
</VirtualHost ...>


Archive

Installation des fichiers 1.06 + patches

wget http://adullact.net/frs/download.php/2373/openmairie_resultat_1.06.zip
wget http://adullact.net/frs/download.php/2429/patch_1.06-1.zip
wget http://adullact.net/frs/download.php/2436/patch_1.06_2.zip

unzip openmairie_resultat_1.06.zip
unzip patch_1.06-1.zip
unzip patch_1.06_2.zip

cp patch_1.06-1/sieges_elu.php openmairie_resultat/trt/sieges_elu.php
cp patch_1.06-1/dbform_saisie.class.php openmairie_resultat/obj/dbform_saisie.class.php
cp patch_1.06-1/var.inc openmairie_resultat/aff/dyn/var.inc
cp patch_1.06-1/mysql/init.sql openmairie_resultat/data/mysql/
cp patch_1.06-1/pgsql/liste.inc openmairie_resultat/sql/pgsql/
cp patch_1.06-1/pgsql/liste.form.inc openmairie_resultat/sql/pgsql/
cp patch_1.06-1/pgsql/regroupement_en_cours.reqmo.inc openmairie_resultat/sql/pgsql/
cp patch_1.06-1/pgsql/regroupement.form.inc openmairie_resultat/sql/pgsql/
cp patch_1.06-1/pgsql/saisie_regroupement.inc openmairie_resultat/sql/pgsql/
cp patch_1.06-1/pgsql/collectivite.inc openmairie_resultat/sql/pgsql/
cp patch_1.06-1/pgsql/collectivite.form.inc openmairie_resultat/sql/pgsql/
cp patch_1.06-1/pgsql/init.sql openmairie_resultat/data/pgsql/
cp patch_1.06-1/pgsql/ver1.06.sql openmairie_resultat/data/pgsql/

cp patch_1.06_2/commune.inc openmairie_resultat/sql/pgsql/
cp patch_1.06_2/commune.form.inc openmairie_resultat/sql/pgsql/

# (ouf!)

Notes sur la version CVS

La version CVS (vers 2008-01) ne contient pas les patches patch_1.06-1.zip et patch_1.06-2.zip mais contient également d'autres modifications plus récentes.

cvs -d:pserver:anonymous@cvs.adullact.net:/cvsroot/openresultat co openmairie_resultat

Pour faire un diff avec la version CVS (c'est à dire convertir la version 1.06 en copie de travail CVS à peu près correcte):

find -name "Root" | while read file; do echo ":pserver:anonymous@cvs.adullact.net:/cvsroot/openresultat" > $file; done
find -name "Repository" | xargs dos2unix
find -name "*.php" -o -name "*.inc" -o -name "*.css" -o -name "*.sql" -o -name "*.html" -o -name "*.js" | xargs dos2unix

Liens

Outils personnels