Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédenteDernière révisionLes deux révisions suivantes | ||
technique:gvot [2020/12/14 14:11] – francoisa | technique:gvot [2021/06/05 16:42] – francoisa | ||
---|---|---|---|
Ligne 12: | Ligne 12: | ||
< | < | ||
- | apt install python3 virtualenv git make mardiadb-server | + | apt install python3 virtualenv git make mariadb-client python3-mysqldb |
+ | # Si besoin de MysqL sur le même serveur : ajouter mariadb-server | ||
cd /srv | cd /srv | ||
git clone https:// | git clone https:// | ||
Ligne 50: | Ligne 51: | ||
</ | </ | ||
+ | |||
< | < | ||
- | CREATE DATABASE | + | CREATE DATABASE |
- | GRANT ALL PRIVILEGES ON gvotdb.* TO gvotu@localhost IDENTIFIED by ' | + | GRANT ALL PRIVILEGES ON votes.* TO votes@localhost IDENTIFIED by ' |
</ | </ | ||
+ | |||
< | < | ||
FLUSH PRIVILEGES; | FLUSH PRIVILEGES; | ||
Ligne 61: | Ligne 64: | ||
</ | </ | ||
- | Prévoir aussi l' | + | Prévoir aussi l' |
- | Editer le fichier de configuration | + | Editer le fichier de configuration |
+ | < | ||
ENV=production | ENV=production | ||
- | Plantage | + | DJANGO_SECRET_KEY=MACLEFACHANGER |
+ | |||
+ | DJANGO_ALLOWED_HOSTS=votes.cemea.org, | ||
+ | |||
+ | DJANGO_DATABASE_URL=mysql:// | ||
+ | |||
+ | DJANGO_EMAIL_URL=smtp+tls:// | ||
+ | # tester la bonne syntaxe avec : python3 -c 'from urllib.parse import quote as q; | ||
+ | |||
+ | DEFAULT_FROM_EMAIL=administrateur@cemea.asso.fr | ||
+ | |||
+ | ADMINS=' | ||
+ | |||
+ | BASE_DIR=/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | Terminer par la restriction des droits | ||
+ | |||
+ | < | ||
+ | chmod o-rwx / | ||
+ | |||
+ | </ | ||
+ | |||
+ | Puis le lancement de la préocédure d' | ||
+ | |||
+ | < | ||
+ | cd /srv/gvot | ||
+ | |||
+ | make init | ||
+ | |||
+ | </ | ||
+ | |||
+ | Mais plantage | ||
+ | |||
+ | Procédure pour installer mysqlclient depuis cette page : [[https:// | ||
+ | < | ||
+ | |||
+ | apt-get remove python3-mysqldb | ||
+ | apt-get install python3-dev default-libmysqlclient-dev build-essential | ||
+ | |||
+ | </ | ||
+ | |||
+ | Puis se connecter à l' | ||
+ | |||
+ | < | ||
+ | cd srv/gvot/ && source venv/ | ||
+ | |||
+ | pip3 install mysqlclient | ||
+ | |||
+ | </ | ||
+ | |||
+ | Et relancer la procédure d' | ||
+ | |||
+ | < | ||
+ | make init | ||
+ | |||
+ | make update | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Mise en route ===== | ||
+ | |||
+ | < | ||
+ | make serve | ||
+ | |||
+ | </ | ||
+ | |||
+ | Pour redémarrer, | ||
+ | |||
+ | 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' | ||
+ | |||
+ | ===== Config Nginx ===== | ||
+ | |||
+ | < | ||
+ | apt install nginx | ||
+ | |||
+ | </ | ||
+ | |||
+ | Modifier le default ou le désactiver et recréer une conf gvot.conf dans / | ||
+ | |||
+ | gvot.conf : | ||
+ | |||
+ | < | ||
+ | server { | ||
+ | server_name gvot; | ||
+ | access_log / | ||
+ | error_log / | ||
+ | |||
+ | location / { | ||
+ | proxy_pass http:// | ||
+ | } | ||
+ | } | ||
+ | |||
+ | server { | ||
+ | server_name gvot; | ||
+ | listen 80; | ||
+ | return 301 https:// | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | Et relancer nginx | ||
+ | |||
+ | < | ||
+ | systemctl restart nginx | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Création d'un admin en ligne de commande ===== | ||
+ | |||
+ | < | ||
+ | cd /srv/gvot | ||
+ | |||
+ | ./ | ||
+ | |||
+ | </ | ||
+ | |||
+ | Et saisir un mot de passe complexe ('' | ||
+ | |||
+ | Et relancer le service '' | ||
+ | |||
+ | 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' | ||
+ | |||
+ | Créer une page " | ||
+ | |||
+ | 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 " | ||
+ | |||
+ | 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' | ||
+ | * 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 " | ||
+ | |||
+ | Il est possible d' | ||
+ | |||
+ | L' | ||
+ | |||
+ | === Paramètres === | ||
+ | |||
+ | Infos non pertinentes : ne servent pas. | ||
+ | |||
+ | * Date/heure de publication : | ||
+ | * Date/heure d' | ||
+ | |||
+ | **Ne pas oublier de publier le scrutin une fois complété.** | ||
+ | |||
+ | Il est important ne de pas ouvrir encore le scrutin pour l' | ||
+ | |||
+ | ===== Modèles de courriels ===== | ||
+ | |||
+ | 4 modèles sont proposés : | ||
+ | |||
+ | * Rappel des codes : pour indiquer aux personnes comment elles pourront voter. Pas indispensable, | ||
+ | * 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 " | ||
+ | |||
+ | Pour note, l'URL hashée est présente dans le lien de renvoi. | ||
+ | |||
+ | Le lien du vote est : votes.cemea.org/ | ||
+ | |||
+ | Le lien du mail est : [[https:// | ||
+ | |||
+ | ===== 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** | ||
+ | * 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' | ||
+ | |||
+ | * tous les participants : | ||
+ | * ceux ayant voté | ||
+ | * ceux n' | ||
+ | |||
+ | ===== Ouvrir le scrutin ===== | ||
+ | |||
+ | Retourner dans le scrutin, cliquer sur " | ||
+ | |||
+ | Vous pouvez alors modifier le modèle de mail " | ||
+ | |||
+ | ===== Suivre les votes ===== | ||
+ | |||
+ | Les votes arrivent au fur et à mesure dans la page du scrutin dans " | ||
+ | |||
+ | Vous pouvez cliquer pour suivre le nombre de soumissions et les dates. Les votes sont évidemment anonymes. | ||
+ | |||
+ | ===== Clore le scrutin ===== | ||
+ | |||
+ | Une fois l' | ||
+ | |||
+ | ===== 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' | ||
+ | |||
+ | Uiliser le mailing pour envoyer à tous les résultats. | ||
+ | |||
+ | ====== Config spéciale Cliss21 ====== | ||
+ | |||
+ | - l' | ||
+ | |||
+ | Config dans ''/ | ||
+ | |||
+ | et les paramétres sont dans : ''/ | ||
+ | |||
+ | - un problème de droits d' | ||
+ | |||
+ | Le correctif appliqué est dans ''/ | ||
+ | |||
+ | Et changer le : | ||
+ | < | ||
+ | |||
+ | create 640 root root | ||
+ | |||
+ | </ | ||
+ | |||
+ | en | ||
+ | |||
+ | < | ||
+ | create 640 www-data www-data | ||
+ | |||
+ | </ | ||
+ | |||
+ | ====== Mise à jour du code ====== | ||
+ | |||
+ | Faire un backup / snapshot au préalable. | ||
+ | |||
+ | Se rendre dans : / | ||
+ | |||
+ | < | ||
+ | git pull | ||
+ | |||
+ | make update | ||
+ | |||
+ | chown www-data: * | ||
+ | |||
+ | </ | ||
+ | |||
+ | Mise à jour de pip3 : | ||
+ | |||
+ | < | ||
+ | / | ||
+ | |||
+ | </ | ||