X-Git-Url: https://nos-oignons.net/gitweb/gestion-adh.git/blobdiff_plain/61077092ef62b9f0780c2dce7ef249be0ce4c7e7..9cb7fa95bef77a6d1e0888f741c76adc865f1b17:/README diff --git a/README b/README index c31001e..f0eb47e 100644 --- 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