Application Django pour la gestion du COF
Find a file
Basile Clement 1bd92f7ff7 Ajoute un environnement de développement
Ce commit ajoute une configuration Vagrant permettant d'avoir un
environnement de développement facile à installer et réutilisable (cf
README.md).

En particulier :

 - Vagrantfile est un fichier qui décrit une machine virtuelle Vagrant.
   La configuration est assez proche des défauts, et n'introduit que
   deux différences : les ports 8000 et 80 sont bindés sur les ports
   8000 et 8080 (respectivement) sur la machine hôte, et le script
   `provisioning/bootstrap.sh` est utilisé pour configurer une nouvelle
   machine virtuelle.

 - provisioning/bootstrap.sh est un script shell qui s'occupe
   d'installer les paquets nécessaire et de configurer la machine
   virtuelle pour que GestioCOF fonctionne.

 - cof/settings_dev.py est un fichier de configuration minimal
   permettant de faire fonctionner GestioCOF, configuré pour être
   utilisé avec Vagrant mais facilement adaptable.
2016-05-26 20:52:03 +02:00
apache Commit gore : premier push vers git.eleves 2016-05-21 23:57:36 +02:00
bda Merge branch 'Elarnon/templates' 2016-05-26 14:44:31 +02:00
bda2 Merge branch 'Elarnon/templates' 2016-05-26 14:44:31 +02:00
bda3 Merge branch 'Elarnon/templates' 2016-05-26 14:44:31 +02:00
cof Ajoute un environnement de développement 2016-05-26 20:52:03 +02:00
gestioncof Déplacement de Grappelli dans gestioncof/static 2016-05-26 15:09:27 +02:00
pads Commit gore : premier push vers git.eleves 2016-05-21 23:57:36 +02:00
provisioning Ajoute un environnement de développement 2016-05-26 20:52:03 +02:00
rezo Commit gore : premier push vers git.eleves 2016-05-21 23:57:36 +02:00
static Déplacement de Grappelli dans gestioncof/static 2016-05-26 15:09:27 +02:00
.gitignore Ajoute un environnement de développement 2016-05-26 20:52:03 +02:00
mails_adherents.sh Commit gore : premier push vers git.eleves 2016-05-21 23:57:36 +02:00
manage.py Grod commit dégueux avec une tonne de trucs. Berk. 2014-08-19 12:54:22 +02:00
README.md Ajoute un environnement de développement 2016-05-26 20:52:03 +02:00
requirements-devel.txt Ajoute un environnement de développement 2016-05-26 20:52:03 +02:00
requirements.txt Update requirements.txt 2016-05-24 00:53:29 +02:00
sync_clipper.py Commit gore : premier push vers git.eleves 2016-05-21 23:57:36 +02:00
sync_clipper.sh Commit gore : premier push vers git.eleves 2016-05-21 23:57:36 +02:00
tirage_bda.py Commit gore : premier push vers git.eleves 2016-05-21 23:57:36 +02:00
Vagrantfile Ajoute un environnement de développement 2016-05-26 20:52:03 +02:00

GestioCOF

Installation

Vagrant

La façon recommandée d'installer GestioCOF sur votre machine est d'utiliser Vagrant. Vagrant permet de créer une machine virtuelle minimale sur laquelle tournera GestioCOF; ainsi on s'assure que tout le monde à la même configuration de développement (même sous Windows !), et l'installation se fait en une commande.

Pour utiliser Vagrant, il faut le télécharger et l'installer.

Si vous êtes sous Linux, votre distribution propose probablement des paquets Vagrant dans le gestionnaire de paquets (la version sera moins récente, ce qui peut parfois poser des problèmes de compatibilité).

Vagrant permet d'utiliser différents types de machines virtuelles; par défaut il utilise Virtualbox qu'il vous faudra également installer.

Une fois ces dépendances installées voici quelques commandes importants pour gérer la machine virtuelle :

  • vagrant up permet de lancer la machine virtuelle. Si une machine virtuelle existe déjà, elle sera réutilisée; sinon, Vagrant va créer et configurer une nouvelle machine virtuelle pour vous.

  • vagrant suspend permet de sauver l'état de la machine virtuelle sur le disque pour la relancer plus tard (y compris après un reboot) avec vagrant up

  • vagrant halt permet d'éteindre la machine virtuelle (par comparaison avec vagrant suspend, cela prend moins de place sur le disque car il n'y a pas besoin de sauver la RAM, mais la recréation avec vagrant up sera plus lente)

  • Enfin, vagrant destroy permet de détruire complétement la machine virtuelle : lors du prochain appel de vagrant up, elle sera réinstallée de zéro. Attention, contrairement aux deux méthodes précédentes, vagrant destroy détruira irrémédiablement le contenu de votre base de données locale, si elle vous est d'un quelconque intérêt, réfléchissez à deux fois !

  • vagrant ssh vous connecte en SSH à la machine virtuelle, dans le dossier où est installé GestioCOF. Vous pouvez utiliser les commandes Django habituelles (manage.py runserver etc.); toutefois pour lancer le serveur il faut faire

    python manage.py runserver 0.0.0.0:8000
    

    car par défaut Django n'écoute que sur l'adresse locale de la machine virtuelle - or vous voudrez accéder à GestioCOF depuis votre machine physique.

Le dossier avec le code de GestioCOF est partagé entre la machine virtuelle et votre machine physique : vous pouvez donc utiliser votre éditeur favori pour coder depuis l'extérieur de la machine virtuelle, et les changements seront répercutés dans la machine virtuelle.

Installation manuelle

Si vous optez pour une installation manuelle plutôt que d'utiliser Vagrant, il est fortement conseillé d'utiliser un environnement virtuel pour Python.

Il vous faudra installer mercurial, pip, les librairies de développement de python, ainsi qu'un client et un serveur MySQL ; sous Debian et dérivées (Ubuntu, ...) :

sudo apt-get install mercurial python-pip python-dev libmysqlclient-dev mysql-server

Si vous décidez d'utiliser un environnement virtuel Python (virtualenv; fortement conseillé), créez-le maintenant, puis installez les dépendances dans le requirements.txt et requirements-devel.txt :

pip install -r requirements.txt -r requirements-devel.txt

Ensuite, il faut configurer MySQL ; créez une base de données cof_gestion et un utilisateur local cof_gestion avec un mot de passe de votre choix. Ensuite, copiez le fichier cof/settings_dev.py dans cof/settings.py et changez la configuration de DATABASES en conséquent.

Finalement, il faut initialiser les modèles de Django :

python manage.py migrate

Mise à jour

Pour mettre à jour les paquets Python, utiliser la commande suivante :

pip install --upgrade -r requirements.txt -r requirements-devel.txt

Pour mettre à jour les modèles après une migration, il faut ensuite faire :

python manage.py migrate