Merge branch 'feature-111-fixture_documentation' into 'master'

add fixture documentation

See merge request ae/Sith!292
This commit is contained in:
Ailé 2021-11-25 22:06:41 +00:00
commit b20df930a2

View File

@ -3,7 +3,7 @@ Générer l'environnement avec populate
Lors de l'installation du site en local (via la commande `setup`), la commande **populate** est appelée.
Cette commande génère entièrement la base de donnée de développement. Elle se situe dans `core/management/commands/populate.py`.
Cette commande génère entièrement la base de données de développement. Elle se situe dans `core/management/commands/populate.py`.
Utilisations :
@ -12,15 +12,12 @@ Utilisations :
./manage.py setup # Génère la base de test
./manage.py setup --prod # Ne génère que le schéma de base et les données strictement nécessaires au fonctionnement
Les groupes du site de dev
==========================
Les données générées du site dev
================================
La liste exhaustive des groupes est disponible ici : :ref:`groups-list`.
Par défaut, la base de données du site de prod contient des données nécessaires au fonctionnement du site comme les groupes (voir :ref:`groups-list`), un utilisateur root, les clubs de base et quelques autres instances indispensables. En plus de ces données par défaut, la base de données du site de dev contient des données de test (*fixtures*) pour remplir le site et le rendre exploitable.
Les clubs du site de dev
========================
Voici la liste des groupes avec leur arborescence d'appartenance.
**Voici les clubs générés pour le site de dev :**
* AE
@ -35,8 +32,7 @@ Voici la liste des groupes avec leur arborescence d'appartenance.
* BdF
* Laverie
Les utilisateurs du site de dev
===============================
**Voici utilisateurs générés pour le site de dev :**
Le mot de passe de tous les utilisateurs est **plop**.
@ -53,3 +49,39 @@ Le mot de passe de tous les utilisateurs est **plop**.
* **krophil** -> cotisant avec des plein d'écocups, barmen foyer
* **comunity** -> administrateur communication
* **tutu** -> administrateur pédagogie
Ajouter des fixtures
====================
.. role:: python(code)
:language: python
Les fixtures sont contenus dans *core/management/commands/populate.py* après la ligne 205 : :python:`if not options["prod"]:`.
Pour ajouter une fixtures, il faut :
* importer la classe à instancier en début de fichier
* créer un objet avec les attributs nécessaires en fin de fichier
* enregistrer l'objet dans la base de données
.. code-block:: python
# Exemple pour ajouter un utilisateur
# Importation de la classe
import core.models import User
# [...]
# Création de l'objet
jesus = User(
username="jc",
last_name="Jesus",
first_name="Christ",
email="son@god.cloud",
date_of_birth="2020-24-12",
is_superuser=False,
is_staff=True,
)
jesus.set_password("plop")
# Enregistrement dans la base de donnée
jesus.save()