- créer un environnement virtuel sous Python >= 3.9 et installer les dépendances:
python install -r requirements.txt
- initialiser la base de donnée :
python manage.py migrate
- créer un super-utilisateur :
python manage.py createsuperuser
- lancer le serveur local :
python manage.py runserver
, le serveur back tourne alors sur le port local8000
pre-commit
est un outil qui permet à chaque commit de
vérifier qu'un certain nombre de règles soient respectées : lint, syntaxe...
Il est également pour lancer à chaque commit la commande python manage.py test
qui
lance donc les tests automatiques configurés.
Une fois pre-commit
installé globalement sur votre PC, lancer pre-commit install
pour activer les vérifications automatiques à chaque commit.
Les tests se trouvent donc dans le dossier main/tests
.
Le projet ne nécessite pas d'autres configurations, mais certains peuvent être pratiques.
Certains paramètres peuvent être modifiés dans le fichier de configuration
local_settings.conf
(à créer à la racine du back s'il n'existe pas). Les principaux
paramètres utiles :
[db_backup]
access=xxx
secret=xxx
bucket=labase-backup
permet d'avoir les mêmes paramètres de sauvegarde de base de donnée qu'en production.
[database]
postgres = true
name = xxx
user = xxx
password = xxx
Permet d'utiliser postgres
comme database. En combinaison avec le paramètre précédent,
la commande python manage.py backup_db recover latest
permet d'avoir en local la même
base de donnée qu'en production.
[external_file_storage]
access=xx
secret=xx
bucket=moine
endpoint_url=https://cellar-c2.services.clever-cloud.com
Permet d'utiliser le stockage de fichier externe.
[mail]
api_key = xxx
Permet d'envoyer des mails avec le service externe. Tant que DEBUG=True
, les mails ne
sont pas envoyés et simplement affichés dans la console.
Un certain nombre de modèle sont éditables dans l'interface d'administration de Django,
accessible depuis /admin/
.
Pour certifier une base, cocher la case "est certifiée" dans l'édition
Un certain nombre de blocs de texte du frontend sont modifiables directement dans l'admin. L'identifant est en général assez explicite sur à quoi ça correspond.
- Les bulles de didacticiel dont le champ
slug
commence pardraft
sont ignorées. - Celles dont le champ
slug
commence parINDEX_
ne sont visibles que depuis l'accueil ou le moteur de recherche (utile par exemple pour le header, afin que les utilisateurs ne voient pas les bulles correspondent sur tout le site).
- Convention pour les slugs:
Le slug d'une catégorie de tag comporte deux parties, la famille à laquelle se réfère
la catégorie et un identifiant explicite :
famille_01nomDeLIDentifiant
. À l'intérieur d'une famille, les catégories sont rangées par ordre alphabétique, donc utiliser une numérotation permet de régler l'ordre. - Il est possible donc de paramétrer le nombre maximum de tags dans une catégorie, si cette catégorie accepte des tags libres (dans le cas positif, un utilisateur peut ajouter de nouveaux tags dans cette catégorie depuis le front ; dans le cas négatif, seuls les admin peuvent en ajouter depuis l'admin).
Ils sont éditables dans l'admin, leur ordre peut aussi être réglé.
Les pages sont des pages statiques et permettent d'avoir une sorte de mini-CMS
accessible. Les pages statiques sont accessibles depuis le front à l'adresse
/page/slug-de-la-page
. Le champ "Faire apparaitre la page dans le menu" permet
d'ajouter la page dans le menu de navigation du front.
Pour labeliser une ressource, choisir l'état "accepté" dans la liste déroulante "État de la labélisation". En février 2023, ce champ n'est pas encore utilisé par le frontend.
Les Conseillers Numériques France Service ont un traitement particulier. Ils ont ce statut sur le site s'ils ont le tag du même nom. Il n'est pas possible aux utilisateurs de se déclarer eux-mêmes avec ce tag. Les utilisateurs CnFS ont un menu de navigation légèrement différent dans le front, avec des raccourcis vers les bases CnFS.
Les CnFS peuvent être importés directement dans l'admin, à l'adresse
/admin/main/user/
. En haut à droite, un bouton "MAJ CnFS" dirige vers l'adresse
/admin/update-cnfs
qui permet de téléverser un fichier cnfs_accounts.csv
.
Ce fichier est obtenu avec un compte administrateur sur l'espace Co-Op. Depuis la page d'accueil, cliquer sur le bouton "Exporter les données".
Une autre alternative est de lancer la commande
python manage.py import_cnfs_accounts
, lorsqu'un fichier cnfs_accounts.csv
est
présent à la racine du projet back.