]> nos-oignons.net Git - gestion-adh.git/blobdiff - README
Mise en évidence d'une condition.
[gestion-adh.git] / README
diff --git a/README b/README
index c31001e4340bd62e1bec02e010a9fb49c473325c..af50f3490a6fcdf29d18dd642f297558c3270bda 100644 (file)
--- a/README
+++ b/README
@@ -31,6 +31,7 @@ Chaque page doit ressembler à :
       42 rue du Fleuve
       12042 Essaiville
     email: violette@example.org
+    joined_on: 2013-05-25
     membership_fee_paid_on: 2013-05-25
     ---
 
@@ -47,6 +48,8 @@ suivantes :
 =`email`=
     L'adresse email du membre. C'est à cette adresse que seront envoyés les
     messages de l'assemblée générale et les rappels de cotisation.
+=`joined_on`=
+    Date d'adhésion à l'association.
 =`membership_fee_paid_on`=
     Date du paiement de la dernière cotisation.
 
@@ -61,6 +64,12 @@ Voici le détail des scripts utilisés. On peut se faire une idée de leurs
 fonctionalités respectives en lisant les cas d'utilisation dans les fichiers
 `features/*.feature`.
 
+Le chemin vers la racine du clone du wiki du conseil d'amnisitration est
+spécifié par la variable d'environnement `NOS_OIGNONS_BOARD_WIKI_PATH`. Si
+cette dernière n'est pas spécifié, les scripts cherchent un répertoire
+`Membres` à la racine du Git courant, et si ce n'est pas le cas, dans
+le répertoire `wiki-ca` du répertoire parent du Git courant.
+
 `list-email`
 ------------
 
@@ -91,6 +100,42 @@ Met à jour la liste des emails inscrites à la liste ag@ par rapport aux membre
 lancer les commandes `list_members`, `add_members` et `remove_members` via
 `sudo` sur le compte `list`.
 
+`send-membership-reminders`
+---------------------------
+
+Préviens les membres qu'il faut renouveller leur cotisation.
+
+Le fichier utiliser pour garder la liste des envois déjà effectués est soit
+celui indiqué par la variable d'environnement `NOS_OIGNONS_REMINDER_DB`, ou
+le fichier si elle est vide `var/reminders.yaml`.
+
+`send-member-emails-to-advisors`
+--------------------------------
+
+Envoie la liste des emails des membres à jour de cotisation au comité
+de déontologie.
+
+Ce script a vocation a être executé tous les mois afin que le comité
+puisse convoquer une assemblée générale extraordinaire, même en cas de
+défaillance du conseil d'administration.
+
+`create-membership-fee-receipt`
+-------------------------------
+
+Permet de créer un reçu de cotisation pour les membres en faisant
+la demande.
+
+Exemple d'utilisation :
+
+    bin/create-membership-fee-receipt 000042 10,00
+
+Cela crééra un reçu pour le membre 000042 pour une cotisation d'un
+montant de 10,00€. Le reçu est généré sous forme d'un fichier PDF dans
+le répertoire spécifié par la variable d'environnement NOS_OIGNONS_RECEIPTS_DIR
+(ou le répertoire `receipts` dans le répertoire courant).
+
+**Il faut créer le répertoire avant utilisation s'il n'existe pas déjà.**
+
 Développement
 =============
 
@@ -117,9 +162,56 @@ Installer les dépendences :
     ruby1.9.1 /usr/bin/bundle install --deployment \
                                       --without=development \
                                       --path=vendor/bundle
+    chmod -R o+rX vendor/bundle
+
+Il faut donner les droits d'écriture à `wiki-ca` sur le répertoire `var`.
+
+Pour rendre facilement accessible `list-members-emails`, on peut ajouter dans
+`/usr/local/bin` un mini script tel que celui-ci :
+
+    #!/bin/sh
+    NOS_OIGNONS_BOARD_WIKI_PATH=/srv/ikiwiki/wiki-ca/src \
+        /srv/ikiwiki/wiki-ca/gestion-adh/bin/list-emails
+
+Ne pas oublier de le rendre exécutable.
+
+Pour permettre au script `update-ag-subscribers` de fonctionner, il est
+nécessaire de l'autoriser à exécuter certaines commandes de Mailman.
+Pour cela, on va créer un fichier dans `/etc/sudoers.d` :
+
+    Defaults:wiki-ca !requiretty
+
+    Cmnd_Alias AG_MANAGEMENT = /usr/sbin/list_members ag,\
+                               /usr/sbin/add_members -r - ag,\
+                               /usr/sbin/remove_members -f - ag
+
+    wiki-ca ALL = (list) NOPASSWD: AG_MANAGEMENT
+
+Ensuite, pour exécuter régulièrement les scripts via le *crontab* du compte
+`wiki-ca`, il faut y ajouter :
+
+    42 * * * * BUNDLE_GEMFILE=/srv/ikiwiki/wiki-ca/gestion-adh/Gemfile NOS_OIGNONS_BOARD_WIKI_PATH=/srv/ikiwiki/wiki-ca/src ruby1.9.1 /srv/ikiwiki/wiki-ca/gestion-adh/bin/update-ag-subscribers
+    42 6 * * * BUNDLE_GEMFILE=/srv/ikiwiki/wiki-ca/gestion-adh/Gemfile NOS_OIGNONS_BOARD_WIKI_PATH=/srv/ikiwiki/wiki-ca/src ruby1.9.1 /srv/ikiwiki/wiki-ca/gestion-adh/bin/send-membership-reminders
+    21 0 1 * * BUNDLE_GEMFILE=/srv/ikiwiki/wiki-ca/gestion-adh/Gemfile NOS_OIGNONS_BOARD_WIKI_PATH=/srv/ikiwiki/wiki-ca/src ruby1.9.1 /srv/ikiwiki/wiki-ca/gestion-adh/bin/send-member-emails-to-advisors
+
+Pour installer le `pre-commit` *hook* sur le dépôt utilisé par
+Ikiwiki, on met dans `/srv/ikiwiki/wiki-ca/src/.git/hooks/pre-commit` :
+
+    if ! BUNDLE_GEMFILE=/srv/ikiwiki/wiki-ca/gestion-adh/Gemfile ruby1.9.1 /srv/ikiwiki/wiki-ca/gestion-adh/bin/pre-commit-hook; then
+            # Reset changes that do not pass the pre-commit hook to prevent
+            # wrong changes to lay in the Ikiwiki source directory.
+            git reset --hard
+            exit 1
+    fi
+
+Ne pas oublier de le rendre exécutable.
+
+Pour installer le `pre-receive` *hook* sur le dépôt central, on met dans
+`/srv/git/.gitolite/hooks/wiki-ca/hooks/pre-receive` :
+
+    #!/bin/sh
+    BUNDLE_GEMFILE=/srv/ikiwiki/wiki-ca/gestion-adh/Gemfile ruby1.9.1 /srv/ikiwiki/wiki-ca/gestion-adh/bin/pre-receive-hook
 
-Il faut ensuite mettre en place le lien symbolique vers le script
-`pre-receive-hooks`. XXX: à détailler
+Ne pas oublier de le rendre exécutable. Il faut ensuite faire un lien symbolique :
 
-XXX: configuration sudoers
-XXX: crontab pour update-ag-subscribers
+    ln -s ../../../.gitolite/hooks/wiki-ca/pre-receive /srv/git/repositories/wiki-ca.git/hooks/pre-receive