Je veux partager ici quelques idées pour contribuer au développement du paquets auf-django-user.
Récupérer les sources
Pour commencer, il faut lire la page Git. Après cette lecture (et quelques minutes à jouer avec git en général), vous devez prendre une décision:
- télécharger le code sans avoir envie de participer à son développement (juste pour tuer le temps en regardant comment il est écrit, pas très amusant):
$ git clone git://git.auf.org/auf-django-users.git
- ou alors télécharger en se disant qu'on peut avoir (ou en ayant effectivement) une bonne idée à partager en code:
$ git clone gitosis@git.auf:auf-django-users.git
Si la première commande peut passer à partir de n'importe où sur le net, la seconde nécessite d'être sur le rpv de l'agence et d'avoir les autorisations nécessaires (tout est expliqué dans la page citée plus haut). Une fois que vous avez toutes les autorisations et consort, vous pouvez simplement récupérer les sources du projet de la façon suivante: A la fin, vous vous retrouverez avec un répertoire auf-django-users contenant:
nacer@nacerix-lab:~/Projets/auf/aufusers$ ls apache.conf contrib __init__.py nss templates auf-django-users-manage.py debian lib README TODO aufusers.wsgi doc Makefile README.0.5.4 TODO.south conf.py examples media settings.py urls.py
Organisation des sources
Les sources sont organisés de la façon suivante:
doc: contient les fichiers nécessaires à la production de la documentation du soft. On y trouve les sources de la doc au format ReStructuredText, des images et un fichier Makefile qui permet la production de la documentation dans différents format.
- examples: ce répertoire contient quelques exemples d'utilisation de l'API de auf-django-users (notamment de l'app nss qui est au coeur de cette application). Ces exemples illustrent le genre de manipulations qu'on peut faire directement via un script python ou carrément via un shell python. C'est intéressant si on veut par exemple faire des opérations en arrière plan qu'il serait long à faire via l'interface web. Par exemple, si vous avez passé la salle de formation au système d'authentification centralisé, vous pouvez régulièrement être amené à ajouter/supprimer des comptes liés à une formation spécifique. Pour 20 ou 30 compte, il me semble qu'il est plus simple de le faire via un petit script vite écrit que via l'interface web.
- debian: c'est le dossier qui contient toute la machinerie nécessaire pour transformer cette application django en un paquet debian.
media: c'est le dossier contenant des éléments tels que les feuilles de styles, des images et programmes javascript utilisés par l'application. Il correspond à la variable MEDIA_URL du fichier settings.py. Dans le cas de auf-django-users, ce répertoire contient du code javascript qui permet d'avoir les boutons ("fin du mois", "fin du mois suivant", etc) pour le champs correspondant à la date d'expiration d'un abonnement et propose le widget "calendar" pour la spécification d'autres dates.
- lib: module python contenant quelques fonctions et widgets utilitaires notamment pour la gestion du champs d'expiration des abonnements ou encore la gestion du cryptage des mots de passe.
- templates: contient des modèles de page html pour diverses apps
- nss: contient l'app nss.
A côté de ces répertoires, voici quelques fichiers dignent de commentaires:
- conf.py: qui contient quelques paramètres de configuration de l'application (base de données, listes d'app à ajouter, etc). Ce fichier est en fait une partie d'un fichier settings.py classique d'une application django. Il est importé dans le fichier settings.py du projet. Il sera placé dans le répertoire /etc/auf-django-users lors de l'installation du paquet éponyme et sera utilisé par les utilisateurs finaux pour ajuster la configuration à leur réalité spécifique.
- settings.py: contient l'ensemble des paramètres de l'application, soit via importation depuis conf.py soit directement.
- auf-django-users-manage.py: script d'administration de l'application qui est une version personnalisé du fichier manage.py d'une application django classique.
Makefile: ben utilisé pour construire le projet. Ce fichier est simple à comprendre et sa lecture est intéressante. Je l'ai un peu modifié pour pouvoir tester l'application sans passer par la longue procédure de modification-construction du paquet-installation-test-désinstallation.
Voilà pour comprendre rapidement qui est qui.
Coder et tester sans passer par la construction du paquet debian correspondant
TODO: à compléter!