Skip to content
Snippets Groups Projects

celcatsanitizer

celcatsanitizer est un système qui permet de récupérer des emplois du temps Celcat au format XML pour les afficher correctement.

Pourquoi ?

Parce que les emplois du temps Celcat sont peu lisibles et peuvent facilement faire planter un navigateur, à cause du surplus d’informations affichées.

Comment faire tourner celcatsanitizer chez moi ?

celcatsanitizer est écrit en Python 3. Il dépend des bibliothèques suivantes :

  • Django 1.11
  • requests
  • BeautifulSoup4
  • icalendar

Pour installer celcatsanitizer, il est possible d'utiliser git.

Pour tester celcatsanitizer, il est recommandé d'utiliser SQLite ou PostgreSQL.

Pour la production, il est recommandé d'utiliser PostgreSQL (avec le driver psycopg2) et de mettre le tout dans un environnement virtuel.

Aucun autre SGBD n'a été testé, mais depuis la version 0.8.0, celcatsanitizer n'utilise plus de fonctions SQL brutes spécifiques. Tous les SGBD supportés par Django devraient fonctionner sans poser de problèmes.

Installation

Il est préférable d'utiliser un environnement virtuel, mais ce n'est pas obligatoire. Si vous ne souhaitez pas utiliser un environnement virtuel, passez directement à l'installation des dépendances.

Création de l'environnement virtuel

Déplacez-vous dans le répertoire souhaité, installez l'environnement virtuel, et activez-le :

$ virtualenv -p python3 celcatsanitizer

$ cd celcatsanitizer

$ source bin/activate

Il est possible que votre version de pip soit ancienne. Si vous le souhaitez, mettez ce programme à jour :

$ pip install --upgrade pip

Notez que cette étape n'est pas obligatoire

Installation des dépendances

$ pip install requests django beautifulsoup4 icalendar

Si vous utilisez PostgreSQL, vous allez avoir besoin du driver psycopg2 :

$ pip install psycopg2

SQLite n'a pas besoin de driver.

Création du répertoire Django

$ django-admin startproject celcatsanitizer

$ cd celcatsanitizer

Récupération des sources de celcatsanitizer

$ git clone https://git.pa1ch.fr/alban/celcatsanitizer.git edt

Pour la production, il est recommandé d'utiliser une version stable, accessibles à travers les tags git.

Configuration de Django

Dans le fichier celcatsanitizer/settings.py, vous devrez renseigner plusieurs informations.

Configuration des administrateurs

Vous pouvez retrouver la documentation de la variable ADMIN sur le site de Django.

Cette variable est obligatoire.

Configuration de l'internationalisation

Ce passage n'est pas obligatoire. Vous pouvez retrouver la documentation de l'internationalisation sur le site de Django.

Configuration de la base de données

Vous pouvez retrouver la documentation de la base de données sur le site de Django.

Configuration du mode de Django

Si jamais vous utiliser Django en production, vous devez mettre la variable DEBUG à False.

Configuration personnalisée nécessaire à celcatsanitizer

celcatsanitizer a besoin d'une variable DEFAULT_DOMAIN qui contient l'URL de base de l'instance.

Ajout de celcatsanitizer dans la liste des applications Django

Ajoutez la chaine de caractère "edt" à la fin de la liste INSTALLED_APPS

Ajout des URLs de celcatsanitizer

Dans le fichier celcatsanitizer/urls.py, importez la fonction django.conf.urls.include, et ajoutez url(r'^', include("edt.urls")) à la fin de la liste urlspatterns.

Génération de la base de données

Vous avez besoin de générer les migrations de celcatsanitizer, puis appliquez-les :

$ ./manage.py makemigrations edt

$ ./manage.py migrate

Gestion des fichiers statiques

Si vous êtes en production, vous devez renseigner l'emplacement de vos fichiers statiques dans la variable STATIC_ROOT de la configuration de Django, puis exécuter la commande suivante :

$ ./manage.py collectstatic

Lancement de celcatsanitizer

Si vous êtes en mode de débuggage, lancez le serveur de cette manière :

$ ./manage.py runserver

Si vous êtes en production, il n'est pas recommandé d'utiliser ce serveur. Exécutez Django avec le module mod_wsgi d'Apache, ou avec un serveur gunicorn derrière nginx.