0a66a858c5
- gestion d'erreur si le DuplicatedEvents a été modifié entre temps - quand on créé un nouveau, pas besoin d'importer la source |
||
---|---|---|
deployment | ||
experimentations | ||
scripts | ||
src | ||
.dockerignore | ||
.gitignore | ||
docker-compose.prod.yml | ||
docker-compose.yml | ||
env.example | ||
LICENSE | ||
Makefile | ||
pyproject.toml | ||
README.md |
Agenda culturel
L'agenda culturel est un projet django créé à partir de Django Docker Quickstard pour faciliter son développemnt et déploiement. Il est distribué sous licence AGPL.
Une instance de démonstration est disponible à l'adresse https://pommesdelune.fr/.
Installation
Pour installer une version de développement, reportez-vous à la documentation de Django Docker Quickstard. En résumé:
git pull
make build-dev
On peut aussi peupler les catégories avec un choix de catégories élémentaires:
make create-categories
On peut aussi peupler les positions de référence qui serviront aux recherches géographiques avec la commande, après avoir éventuellement modifié le fichier communes.json qui contient pour l'exemple toutes les communes récupérées depuis public.opendatasoft.com:
make create-reference-locations
Notes aux développeurs
Ajout d'une nouvelle source custom
Pour ajouter une nouvelle source custom:
- ajouter un fichier dans
src/agenda_culturel/import_tasks/custom_extractors
en s'inspirant des autres fichiers présents. Il existe de nombreuses facilités dans les classes mères correspondantes - s'inspirer des scripts présents dans
experimentations/
pour créer son propre script de test - quand l'import fonctionne de manière indépendante dans ces expérimentations, il est tant de l'ajouter au site internet:
- ajouter à la classe
RecurrentImport.PROCESSOR
présente dans le fichiersrc/agenda_culturel/models.py
une entrée correspondant à cette source pour qu'elle soit proposée aux utilisateurs - ajouter à la fonction
run_recurrent_import
présente dans le fichiersrc/agenda_culturel/celery.py
le test correspondant à cet ajout, pour lancer le bon extracteur
- ajouter à la classe
- se rendre sur le site, page administration, et ajouter un import récurrent correspondant à cette nouvelle source
Récupérer un dump du prod sur un serveur dev
- sur le serveur de dev:
docker exec -i agenda_culturel-backend python3 manage.py dumpdata --format=json --exclude=admin.logentry --exclude=auth.group --exclude=auth.permission --exclude=auth.user --exclude=contenttypes --indent=2 > fixtures/postgres-backup-20241101.json
(à noter qu'ici on oublie les comptes, qu'il faudra recréer)
- sur le serveur de prod:
- On supprime la base de données:
docker exec -i agenda_culturel-backend python3 manage.py flush
- On réinitialise l'état de la base de données:
docker exec -i agenda_culturel-backend python3 manage.py migrate agenda_culturel zero
- On reprend à un état de migration équivalent au serveur:
docker exec -i agenda_culturel-backend python3 manage.py migrate agenda_culturel [00xx]
- On récupère le dump json
scp $SERVEUR:$PATH/fixtures/postgres-backup-20241101.json src/fixtures/
- On l'importe:
docker exec -i agenda_culturel-backend python3 manage.py loaddata --format=json fixtures/postgres-backup-20241101.json
- On supprime la base de données:
À noter qu'on a supprimé de la base de donnée les comptes, et qu'il faudra les recréer:
docker exec -ti agenda_culturel-backend python3 manage.py createsuperuser
De plus, les images ne sont pas récupérées.