]> nos-oignons.net Git - gestion-adh.git/blob - README
Add join date, fix renewal logic and add ability to specify path to wiki-ca
[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     joined_on: 2013-05-25
35     membership_fee_paid_on: 2013-05-25
36     ---
37
38     Violette sait programmer en Ruby, on peut lui demander si on a besoin de
39     coup de main.
40
41 Le début de chaque page est un morceau de [YAML]. Il doit contenir les entrées
42 suivantes :
43
44 =`name`=
45     Le nom (complet) du membre.
46 =`address`=
47     L'adresse postale du membre.
48 =`email`=
49     L'adresse email du membre. C'est à cette adresse que seront envoyés les
50     messages de l'assemblée générale et les rappels de cotisation.
51 =`joined_on`=
52     Date d'adhésion à l'association.
53 =`membership_fee_paid_on`=
54     Date du paiement de la dernière cotisation.
55
56 Le reste de la page peut servir à noter ce qu'on veut.
57
58 [YAML]: http://yaml.org/
59
60 Scripts
61 =======
62
63 Voici le détail des scripts utilisés. On peut se faire une idée de leurs
64 fonctionalités respectives en lisant les cas d'utilisation dans les fichiers
65 `features/*.feature`.
66
67 Le chemin vers la racine du clone du wiki du conseil d'amnisitration est
68 spécifié par la variable d'environnement `NOS_OIGNONS_BOARD_WIKI_PATH`. Si
69 cette dernière n'est pas spécifié, les scripts cherchent un répertoire
70 `Membres` à la racine du Git courant, et si ce n'est pas le cas, dans
71 le répertoire `wiki-ca` du répertoire parent du Git courant.
72
73 `list-email`
74 ------------
75
76 Affiche sur la sortie standard les adresses emails des membres à jour de
77 cotisation.
78
79 `pre-commit-hook`
80 -----------------
81
82 `pre-commit` hook pour Git. Ce dernier est avant tout là pour éviter de pouvoir
83 enregistrer des informations invalides dans la base des membres depuis Ikiwiki.
84 Il est nécessaire de le configurer à chaque fois qu'on clone le dépôt du wiki du
85 C.A. (en faisant un lien symbolique dans `.git/hooks/pre-commit`).
86
87 `pre-receive-hook`
88 ------------------
89
90 `pre-commit` hook pour Git. Ce dernier est là pour éviter de pouvoir enregistrer
91 des informations invalides dans la base des membres. Il doit être configuré dans
92 le dépôt central du wiki du C.A. (via un lien symbolique dans
93 `.git/hooks/pre-receive`).
94
95 `update-ag-subscribers`
96 -----------------------
97
98 Met à jour la liste des emails inscrites à la liste ag@ par rapport aux membres
99 à jour de cotisation. À exécuter à travers un *cron*. A besoin de pouvoir
100 lancer les commandes `list_members`, `add_members` et `remove_members` via
101 `sudo` sur le compte `list`.
102
103 Développement
104 =============
105
106 L'essentiel du code est en Ruby. Les dépendences sont gérés avec Bundler. Les
107 tests d'intégrations sont fait avec Cucumber.
108
109 Installer les paquets Debian qui vont bien (sur Wheezy) :
110
111     apt-get install ruby1.9.1 bundler
112
113 Pour récupérer les dépendences :
114
115     ruby1.9.1 /usr/bin/bundle install --path=vendor/bundle
116
117 Déploiement
118 ===========
119
120 Installer les paquets Debian qui vont bien (sur Wheezy) :
121
122     apt-get install ruby1.9.1 bundler
123
124 Installer les dépendences :
125
126     ruby1.9.1 /usr/bin/bundle install --deployment \
127                                       --without=development \
128                                       --path=vendor/bundle
129
130 Il faut ensuite mettre en place le lien symbolique vers le script
131 `pre-receive-hooks`. XXX: à détailler
132
133 XXX: configuration sudoers
134 XXX: crontab pour update-ag-subscribers