]> nos-oignons.net Git - gestion-adh.git/blob - README
Finish implenting update-ag-subscribers
[gestion-adh.git] / README
1 ====================================
2 Gestion des adhésions de Nos oignons
3 ====================================
4
5 Voici une collection de scripts et de bouts de code qui permettent de gérer les
6 adhésions de Nos oignons conformément aux statuts de l'association.
7
8 Base des membres
9 ================
10
11 La base des membres est pensée pour être stockés dans le wiki du conseil
12 d'administration. Elle est formée sous forme d'une série de pages, une par
13 membre.
14
15 Cela donne l'aboresence suivante :
16
17     Membres
18     ├── 000000.mdwn
19     ├── 000001.mdwn
20     ├── 000002.mdwn
21     ├── 000003.mdwn
22     ├── 000004.mdwn
23     …
24     └── 000042.mdwn
25
26 Chaque page doit ressembler à :
27
28     ---
29     name: Violette Dupuis
30     address: |
31       42 rue du Fleuve
32       12042 Essaiville
33     email: violette@example.org
34     membership_fee_paid_on: 2013-05-25
35     ---
36
37     Violette sait programmer en Ruby, on peut lui demander si on a besoin de
38     coup de main.
39
40 Le début de chaque page est un morceau de [YAML]. Il doit contenir les entrées
41 suivantes :
42
43 =`name`=
44     Le nom (complet) du membre.
45 =`address`=
46     L'adresse postale du membre.
47 =`email`=
48     L'adresse email du membre. C'est à cette adresse que seront envoyés les
49     messages de l'assemblée générale et les rappels de cotisation.
50 =`membership_fee_paid_on`=
51     Date du paiement de la dernière cotisation.
52
53 Le reste de la page peut servir à noter ce qu'on veut.
54
55 [YAML]: http://yaml.org/
56
57 Scripts
58 =======
59
60 Voici le détail des scripts utilisés. On peut se faire une idée de leurs
61 fonctionalités respectives en lisant les cas d'utilisation dans les fichiers
62 `features/*.feature`.
63
64 `list-email`
65 ------------
66
67 Affiche sur la sortie standard les adresses emails des membres à jour de
68 cotisation.
69
70 `pre-commit-hook`
71 -----------------
72
73 `pre-commit` hook pour Git. Ce dernier est avant tout là pour éviter de pouvoir
74 enregistrer des informations invalides dans la base des membres depuis Ikiwiki.
75 Il est nécessaire de le configurer à chaque fois qu'on clone le dépôt du wiki du
76 C.A. (en faisant un lien symbolique dans `.git/hooks/pre-commit`).
77
78 `pre-receive-hook`
79 ------------------
80
81 `pre-commit` hook pour Git. Ce dernier est là pour éviter de pouvoir enregistrer
82 des informations invalides dans la base des membres. Il doit être configuré dans
83 le dépôt central du wiki du C.A. (via un lien symbolique dans
84 `.git/hooks/pre-receive`).
85
86 update-ag-subscribers
87 ---------------------
88
89 Met à jour la liste des emails inscrites à la liste ag@ par rapport aux membres
90 à jour de cotisation. À exécuter à travers un *cron*. A besoin de pouvoir
91 lancer les commandes `list_members`, `add_members` et `remove_members` via
92 `sudo` sur le compte `list`.
93
94 Développement
95 =============
96
97 L'essentiel du code est en Ruby. Les dépendences sont gérés avec Bundler. Les
98 tests d'intégrations sont fait avec Cucumber.
99
100 Installer les paquets Debian qui vont bien (sur Wheezy) :
101
102     apt-get install ruby1.9.1 bundler
103
104 Pour récupérer les dépendences :
105
106     ruby1.9.1 /usr/bin/bundle install --path=vendor/bundle
107
108 Déploiement
109 ===========
110
111 Installer les paquets Debian qui vont bien (sur Wheezy) :
112
113     apt-get install ruby1.9.1 bundler
114
115 Installer les dépendences :
116
117     ruby1.9.1 /usr/bin/bundle install --deployment \
118                                       --without=development \
119                                       --path=vendor/bundle
120
121 Il faut ensuite mettre en place le lien symbolique vers le script
122 `pre-receive-hooks`. XXX: à détailler
123
124 XXX: configuration sudoers
125 XXX: crontab pour update-ag-subscribers