From 9eb137e5031330c1d4fe01224fdb90b953d10ed6 Mon Sep 17 00:00:00 2001 From: Cyrille Date: Mon, 22 Nov 2021 21:37:10 +0100 Subject: [PATCH 1/2] add fixture documentation --- doc/devenv/populate.rst | 94 +++++++++++++++++++++++++++-------------- 1 file changed, 63 insertions(+), 31 deletions(-) diff --git a/doc/devenv/populate.rst b/doc/devenv/populate.rst index 6fbea7a3..1d870a68 100644 --- a/doc/devenv/populate.rst +++ b/doc/devenv/populate.rst @@ -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,44 +12,76 @@ 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 fixtures pour remplir le site et le rendre exploitable. -Les clubs du site de dev -======================== +**Voici les clubs générés pour le site de dev :** -Voici la liste des groupes avec leur arborescence d'appartenance. + * AE -* AE + - Bibo'UT + - Carte AE + - Guy'UT - - Bibo'UT - - Carte AE - - Guy'UT + + Woenzel'UT - + Woenzel'UT + - Troll Penché - - Troll Penché + * BdF + * Laverie -* BdF -* Laverie +**Voici utilisateurs générés pour le site de dev :** -Les utilisateurs du site de dev -=============================== + Le mot de passe de tous les utilisateurs est **plop**. -Le mot de passe de tous les utilisateurs est **plop**. + * **root** -> Dans le groupe Root et cotisant + * **skia** -> responsable info AE et cotisant, barmen MDE + * **public** -> utilisateur non cotisant et sans groupe + * **subscriber** -> utilisateur cotisant et sans groupe + * **old_subscriber** -> utilisateur anciennement cotisant et sans groupe + * **counter** -> administrateur comptoir + * **comptable** -> administrateur comptabilité + * **guy** -> utilisateur non cotisant et sans groupe + * **rbatsbak** -> utilisateur non cotisant et sans groupe + * **sli** -> cotisant avec carte étudiante attachée au compte + * **krophil** -> cotisant avec des plein d'écocups, barmen foyer + * **comunity** -> administrateur communication + * **tutu** -> administrateur pédagogie -* **root** -> Dans le groupe Root et cotisant -* **skia** -> responsable info AE et cotisant, barmen MDE -* **public** -> utilisateur non cotisant et sans groupe -* **subscriber** -> utilisateur cotisant et sans groupe -* **old_subscriber** -> utilisateur anciennement cotisant et sans groupe -* **counter** -> administrateur comptoir -* **comptable** -> administrateur comptabilité -* **guy** -> utilisateur non cotisant et sans groupe -* **rbatsbak** -> utilisateur non cotisant et sans groupe -* **sli** -> cotisant avec carte étudiante attachée au compte -* **krophil** -> cotisant avec des plein d'écocups, barmen foyer -* **comunity** -> administrateur communication -* **tutu** -> administrateur pédagogie \ No newline at end of file +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 + test = 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, + ) + comptable.set_password("plop") + # Enregistrement dans la base de donnée + comptable.save() \ No newline at end of file From d60a96fc5cd2a0836c133da49e3768e5c37ff538 Mon Sep 17 00:00:00 2001 From: Cyrille Date: Tue, 23 Nov 2021 23:44:34 +0100 Subject: [PATCH 2/2] correct populate.rst --- doc/devenv/populate.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/devenv/populate.rst b/doc/devenv/populate.rst index 1d870a68..53ea6de2 100644 --- a/doc/devenv/populate.rst +++ b/doc/devenv/populate.rst @@ -15,7 +15,7 @@ Utilisations : Les données générées du site dev ================================ -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 fixtures pour remplir le site et le rendre exploitable. +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. **Voici les clubs générés pour le site de dev :** @@ -73,7 +73,7 @@ Pour ajouter une fixtures, il faut : # [...] # Création de l'objet - test = User( + jesus = User( username="jc", last_name="Jesus", first_name="Christ", @@ -82,6 +82,6 @@ Pour ajouter une fixtures, il faut : is_superuser=False, is_staff=True, ) - comptable.set_password("plop") + jesus.set_password("plop") # Enregistrement dans la base de donnée - comptable.save() \ No newline at end of file + jesus.save() \ No newline at end of file