technique:gvot

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
technique:gvot [2021/06/05 16:42] francoisatechnique:gvot [2024/04/02 15:08] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-====== Vote en ligne : GvoT ====== +**Cette page est obsolèteVeuillez accéder au contenu à son nouvel emplacement : [[https://bibliotech.cemea.org/books/outils-technique/page/gvot|gvot]]**
- +
-  Documentation : [[https://voter.cliss21.org/docs/index.html|https://voter.cliss21.org/docs/index.html]] +
-  Source : [[https://voter.cliss21.org/|https://voter.cliss21.org/]] +
-  * Installation : [[https://forge.cliss21.org/cliss21/gvot|https://forge.cliss21.org/cliss21/gvot]] +
- +
-===== Pré-requis ===== +
- +
-Debian 10 + mariadb ou postgresql pour production +
- +
-sqlite est utilisé en environnement de développement +
-<code> +
- +
-apt install python3 virtualenv git make mariadb-client python3-mysqldb +
-# Si besoin de MysqL sur le même serveur : ajouter mariadb-server +
-cd /srv +
-git clone https://forge.cliss21.org/cliss21/gvot +
- +
-</code> +
- +
-===== Installation ===== +
- +
-<code> +
-cd /srv/gvot +
- +
-</code> +
- +
-Attention, la commande ''make init''  nous fait passer en mode 'vi config.env' où il faut rentrer les paramètres de MySQL +
- +
-Il faut au préalable avoir préparé le terrain. +
- +
-<code> +
-mysql_secure_installation +
-Mot de passe root ? (vide par défaut) +
-Set root password ? Y +
-New Password : xxxx +
-Re-enter New Password : xxxx +
-OK. +
-Remove anonymous user : (Y/n) : Y +
-Disallow root login remotely? [Y/n] Y +
-Remove test database and access to it? [Y/n] Y +
-Reload privilege tables now? [Y/n] Y +
- +
-</code> +
- +
-Création de base et user pour gvot +
- +
-<code> +
-mysql -u root -p +
-+ Mot de passe créé. +
- +
-</code> +
- +
-<code> +
-CREATE DATABASE votes character set utf8 collate utf8_bin; +
-GRANT ALL PRIVILEGES ON votes.* TO votes@localhost IDENTIFIED by 'Mot2Passe'; +
- +
-</code> +
- +
-<code> +
-FLUSH PRIVILEGES; +
-QUIT; +
- +
-</code> +
- +
-Prévoir aussi l'envoi de mail avec le smtp +
- +
-Editer le fichier de configuration config.env (copie de config.env.example) +
- +
-<code> +
-ENV=production +
- +
-DJANGO_SECRET_KEY=MACLEFACHANGER +
- +
-DJANGO_ALLOWED_HOSTS=votes.cemea.org,localhost, 127.0.0.1 # A vérifier ? +
- +
-DJANGO_DATABASE_URL=mysql://votes:Mot2Passe@127.0.0.1:3306/votes +
- +
-DJANGO_EMAIL_URL=smtp+tls://envoismtp@cemea.asso.fr:Mo2pass@mail.cemea.org:587 # remplacer @ par %40 +
-# tester la bonne syntaxe avec : python3 -c 'from urllib.parse import quote as q;print(q("machines@cemea.asso.fr")+":"+q("Motdepasse"))' +
- +
-DEFAULT_FROM_EMAIL=administrateur@cemea.asso.fr +
- +
-ADMINS='Admin <administrateur@cemea.asso.fr>' +
- +
-BASE_DIR=/srv/gvot +
- +
-</code> +
- +
-Terminer par la restriction des droits +
- +
-<code> +
-chmod o-rwx /srv/gvot/config.env +
- +
-</code> +
- +
-Puis le lancement de la préocédure d'initialisation +
- +
-<code> +
-cd /srv/gvot +
- +
-make init +
- +
-</code> +
- +
-Mais plantage sur le module python mysqlclient utilisé par Django qui n'est pas installé et compatible. +
- +
-Procédure pour installer mysqlclient depuis cette page : [[https://pypi.org/project/mysqlclient/|https://pypi.org/project/mysqlclient/]] +
-<code> +
- +
-apt-get remove python3-mysqldb +
-apt-get install python3-dev default-libmysqlclient-dev build-essential +
- +
-</code> +
- +
-Puis se connecter à l'environnement virtuel : +
- +
-<code> +
-cd srv/gvot/ && source venv/bin/activate +
- +
-pip3 install mysqlclient +
- +
-</code> +
- +
-Et relancer la procédure d'install si besoin : +
- +
-<code> +
-make init +
- +
-make update +
- +
-</code> +
- +
-===== Mise en route ===== +
- +
-<code> +
-make serve +
- +
-</code> +
- +
-Pour redémarrer, lancer un make update (ou rebooter le serveur et relancer un make serve). +
- +
-Le service est alors actif localement sur le port 8000 sur la boucle locale 127.0.0.1 +
- +
-Reste à proposer une interface accessible depuis l'extérieur avec Nginx +
- +
-===== Config Nginx ===== +
- +
-<code> +
-apt install nginx +
- +
-</code> +
- +
-Modifier le default ou le désactiver et recréer une conf gvot.conf dans /etc/nginx/sites-available/gvot.conf (puis faire un lien vers /etc/nginx/sites-enable/gvot.conf) +
- +
-gvot.conf : +
- +
-<code> +
-server { +
-    server_name gvot; +
-    access_log /var/log/nginx/gvot.access.log; +
-    error_log /var/log/nginx/gvot.error.log; +
- +
-    location / { +
-        proxy_pass http://127.0.0.1:8000; +
-    } +
-+
- +
-server { +
-    server_name gvot; +
-    listen 80; +
-    return 301 https://$host$request_uri; +
-+
- +
-</code> +
- +
-Et relancer nginx +
- +
-<code> +
-systemctl restart nginx +
- +
-</code> +
- +
-===== Création d'un admin en ligne de commande ===== +
- +
-<code> +
-cd /srv/gvot +
- +
-./venv/bin/python manage.py createsuperuser --username francois --email francois.audirac@cemea.asso.fr +
- +
-</code> +
- +
-Et saisir un mot de passe complexe (''./venv/bin/python manage.py createsuperuser''  : marche aussi). +
- +
-Et relancer le service ''make serve'' +
- +
-Pour info, si on modifie des paramètres de config.env pour passer en mode développement (et les options de Django qui vont avec), il faut relancer un make update pour téléchargements des librairies python complémentaires. +
- +
-====== Configuration de votes ====== +
- +
-La page d'accueil est personnalisable et sera visible depuis l'accueil. Pensez à publier les modifications pour qu'elles soient prises en compte. +
- +
-Créer une page "Scrutins CEMEA" de type "Liste de scrutions", lui donner un titre "Scrutins CEMEA" et la publier. +
- +
-Dans cet espace, il faut alors créer une page qui sera le scrutin. +
- +
-===== Créer un scrutin ===== +
- +
-Ajouter une sous-page dans la liste des scrutins "Scrutins CEMEA"+
- +
-Lui donner : +
- +
-  * un titre, +
-  * une date de péremption (où les données seront effacées), : à définir bien après le vote. +
-  * une prescription (pour les données personnelles) : par défaut +
-  * Une introduction : texte d'accueil avant le vote +
-  * Une confirmation : Message après avoir voté. +
-  * Une action : Texte du bouton du formulaire de confirmation +
-  * Ne pas remplir "Envoi des résultats : ne fonctionne pas"+
- +
-Sauvegarder le brouillon. Le publier lorsque toutes les infos des autres onglets sont remplies. +
- +
-==== Questionnaire ==== +
- +
-Ajouter des questions : +
- +
-  * Etiquette : nom +
-  * Filed type : type de questions (boutons radios, choix multiples…) +
-  * choix : indiquer les choix séparés par une virgule : Uniquement applicable aux cases à cocher, boutons radio et les listes déroulantes. +
-  * Valeur par défaut. Liste de valeurs séparées par une virgule pour les cases à cocher. +
-  * Requis : si indispensable. +
-  * Valeurs min et max : nombre de choix possibles pour "selction mutliple bornée"+
- +
-Il est possible d'ajouter plusieurs formulaires dans le même scrutin. +
- +
-L'onglet "Promotions" n'est pas utile pour un scrutin. +
- +
-=== Paramètres === +
- +
-Infos non pertinentes : ne servent pas. +
- +
-  * Date/heure de publication : +
-  * Date/heure d'expiration : +
- +
-**Ne pas oublier de publier le scrutin une fois complété.** +
- +
-Il est important ne de pas ouvrir encore le scrutin pour l'instant. +
- +
-===== Modèles de courriels ===== +
- +
-4 modèles sont proposés : +
- +
-  * Rappel des codes : pour indiquer aux personnes comment elles pourront voter. Pas indispensable, mais fournit à chacun l'URL définitive +
-  * Ouverture du scrutin : nécessaire pour pouvoir voter (la même URL) +
-  * Confirmation du vote : mail envoyé à chaque votant après son vote +
-  * Envoi des résultats : Attention : mail manuel indiquant les résultats du vote… +
- +
-Il est possible en passant par "Pouvoirs" de renvoyer un mail individuel à chacun. +
- +
-Pour note, l'URL hashée est présente dans le lien de renvoi. +
- +
-Le lien du vote est : votes.cemea.org/hash/ +
- +
-Le lien du mail est : [[https://votes.cemea.org/admin/mailing-pouvoir/single/hash/|https://votes.cemea.org/admin/mailing-pouvoir/single/hash/]] +
- +
-===== Pouvoirs ===== +
- +
-Les votants sont enregistrés sous forme de pouvoir avec pondération. Pondération de 1 = 1 vote. Par défaut. +
- +
-La création se fait manuellement ou bien par import CSV : +
- +
-  Fichier au format csv dans un codage utf-8 ; séparateur : « , » ; délimiteur de texte : « " » (doubles quotes). +
-  Colonnes attendues : « **nom**  », « **prenom**  », « **collectif**  » (adressé "en tant que" ), « **courriel**  », « **contact**  » et « **ponderation**  ». +
-  * Au moins un colonne marquée par « * » doit être remplie. +
-  * Les colonnes marquée par « ** » ne peuvent être vides. * Une pondération absente sera interprétée à la valeur « 1 ». Avant l'ouverture du scrutin, il peut être utile d'envoyer le modèle de mail : "Rappel des codes" où on indique manuellement la date d'ouverture et de fermeture du scrutin. Modifier le modèle de mail, puis dans Pouvoirs / choisir **Démarrer un mailing. **Choisir le modèle et les destinataires : +
- +
-  * tous les participants : +
-  * ceux ayant voté +
-  * ceux n'ayant pas voté. +
- +
-===== Ouvrir le scrutin ===== +
- +
-Retourner dans le scrutin, cliquer sur "scrutin ouvert" et "publier la page" = enregistrer les changement dans la page publiée. +
- +
-Vous pouvez alors modifier le modèle de mail "Ouverture du Scrutin" et changer les heures et dates. Et renvoyer le mailing. +
- +
-===== Suivre les votes ===== +
- +
-Les votes arrivent au fur et à mesure dans la page du scrutin dans "Résultats" pour le total et dans "Détails" pour Scrutin soumissions \\ avec le nombre total de soumissions. Il est aussi possible de voir qui a voté dans Emargement. +
- +
-Vous pouvez cliquer pour suivre le nombre de soumissions et les dates. Les votes sont évidemment anonymes. +
- +
-===== Clore le scrutin ===== +
- +
-Une fois l'échéance atteinte, il faut clore le scrutin manuellement en décochant la case "scrutin ouvert" et en choisissant "Publier"+
- +
-===== Consultations et envoi des résultats ===== +
- +
-La consultation des résultats est disponible dans le scrutin / Résultats. Il faut copier et coller le résultat dans le modèle de mail "Envoi de résultats"+
- +
-Il est possible de prendre une capture d'écran des votants et de la joindre au mail. +
- +
-Uiliser le mailing pour envoyer à tous les résultats. +
- +
-====== Config spéciale Cliss21 ====== +
- +
-- l'envoi de mail est dédié à postfix. +
- +
-Config dans ''/etc/postfix/main.cf'' +
- +
-et les paramétres sont dans : ''/etc/postfix/maps/smtp_credentials'' +
- +
-- un problème de droits d'accès de 2 fichiers qui sont à root au lieu d'être en www.data se produit à chaque rotation de logs : +
- +
-Le correctif appliqué est dans ''/etc/logrotate.d/local-cron-mail-gvot'' +
- +
-Et changer le : +
-<code> +
- +
-create 640 root root +
- +
-</code> +
- +
-en +
- +
-<code> +
-create 640 www-data www-data +
- +
-</code> +
- +
-====== Mise à jour du code ====== +
- +
-Faire un backup / snapshot au préalable. +
- +
-Se rendre dans : /var/www/wsgi/gvot +
- +
-<code> +
-git pull +
- +
-make update +
- +
-chown www-data: * +
- +
-</code> +
- +
-Mise à jour de pip3 : +
- +
-<code> +
-/var/www/wsgi/gvot/venv/bin/python3 -m pip install --upgrade pip +
- +
-</code> +
- +
  • technique/gvot.txt
  • Dernière modification : 2024/04/02 15:08
  • de 127.0.0.1