Skip to content

Utilisation pour votre projet

Prérequis

Pour que la partie CAS puisse fonctionner, vous devez ajouter la ligne suivante dans votre fichier /etc/hosts:

127.0.0.1 cas

Évidemment, pour la partie développement, vous devez avoir un système de container qui fonctionne :) En bref, 2 choix possibles: podman ou docker.

podman

Sur un système Ubuntu, il vous suffira d'installer les paquets suivants:

sudo apt install podman podman-compose golang-github-containernetworking-plugin-dnsname

docker

Récupération des fichiers

On récupère la dernière version disponible:

wget https://gitlab.insa-rouen.fr/bonnegent/oto/-/archive/main/oto-main.tar.bz2
tar xjf oto-main.tar.bz2

À présent nous avons un dossier oto-main qui correspond au dossier de base de notre projet, on va donc le renommer pour correspondre à votre projet. Par exemple, si votre projet est toto:

mv oto-main toto
cd toto

Configuration

Dans pyproject.toml, il faut adapter les informations, notamment:

[tool.poetry]
name = "oto"
version = "23.3.31"
description = ""

Ainsi que site_name dans le fichier: mkdocs.yml.

Par défaut, oto inclu une application core. Vous pouvez l'utiliser directement si cela vous couvient (contenu du dossier core). Sinon il faudra adapter:

  • oto.sh: variable APP
  • conf/settings.py
  • conf/urls.py
  • docker-compose.yml

Si vous n'utilisez pas le projet core par défaut, ou que vous voulez mettre en place une autre application, il faut créer un nouveau projet avec ces commandes (cependant je vous recommande de rester avec l'application par défaut)):

./oto.sh build
podman-compose run web python manage.py startapp polls
sudo chown -R $USERNAME polls

Construction des containers

Une fois la configuration initiale effectuée, on peut créer les images pour nos containers:

./oto.sh build
./oto.sh migration
sudo chown $USERNAME db.sqlite3

Configuration Django

Il est préférable de ne pas modifier le fichier de configuration générale (conf/settings.py), mais plutôt de créer un fichier de configuration locale (conf/settings.py). Voici un exemple de ce qu'il pourrait contenir:

SECRET_KEY = '...'
DEBUG = False
ALLOWED_HOSTS = []
...

Droits d'admin

Par défaut, tout utilisateur doit passer par une authentification CAS. Il faut d'abord se connecter avec un utilisateur, cela va forcer sa création dans la base de données locale. Pour cela, il faut démarrer les containers:

./oto.sh start

Se connecter à l'interface web (http://localhost:8000/) et s'authentifier. Vous trouverez les informations sur les comptes préconfigurer ici: Architecture

Ensuite on va pouvoir lui donner les droits d'administrations:

./oto.sh sh
User.objects.filter(id=User.objects.first().id).update(is_staff=True, is_superuser=True)
exit

Si nécessaire, vous pouvez créer un compte administrateur avec la commande suivante:

docker-compose run web python manage.py createsuperuser

Chargement de données initiales

Si vous avez un export json des données initiales, vous pouvez le mettre dans le fichier PROJET/fixtures/initial_data.json et le charger avec la commande:

./oto.sh initial