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 docker et docker-compose qui fonctionne :)

Copie des fichiers

Pour utiliser oto pour votre projet, il faut copier les fichiers nécessaires dans votre arborescence de projet. Voici un exemple en considérant que le projet oto se trouve dans le sous dossier ../oto:

cp -r ../oto/{oto.sh,pyproject.toml,docs,mkdocs.yml,poetry.lock} .
cp -r ../oto/{cas,core,docker-compose.yml,Dockerfile.cas,ldap,manage.py,conf,Dockerfile,docs} .
cp -r ../oto/{.pylintrc,.gitlab-ci.yml,.gitignore} .

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:

./oto.sh build
docker-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