À partir de Django 2.1, les vues de login et logout sont class-based
uniquement. On passe donc à django-cas-ng 2.6 pour harmoniser.
On cleanup un peu le processus de login avec une classe un peu propre +
un vrai formulaire/des vrais templates.
Ce patch ajoute un lien bidirectionnel entre la page d'affichage d'un
petit cours pour le Burô et l'administration générale. Plus
précisément,
- Un lien est ajouté sur la page du petit cours, ainsi que sur la page
de traitement, vers l'administration générale
- La fonctionalité "Voir sur le site" de Django est utilisée pour
renvoyer sur la page de la demande. Si des modifications sont
apportées, il faut choisir "Enregistrer et continuer les
modifications", puis cliquer sur "Voir sur le site".
Le workflow n'est pas forcément optimal, mais permet au COF d'accéder
facilement à la demande si un traitement manuel ou complexe est
nécessaire - et de facilement revenir à la vue de traitement.
Toutes les pages Wagtail doivent désormais être traduites
Suppression du modèle COFUtilPage devenu inutile
Réinitialisation des migrations de Wagtail à cause des changements de ModelTranslation
Ce patch rend les décorateurs `cof_required` et `buro_required` plus
agréables pour les utilisateurs; en particulier, ils ne font plus une
redirection sur la page de connexion si la condition n'est pas remplie.
Dans les deux cas :
- Si l'utilisateur n'est pas connecté, il est renvoyé sur la page de
connexion
- Si l'utilisateur est connecté mais pas membre du COF/du Burô, une
page d'erreur "403 Forbidden" est affichée. Dans le cas de
`cof_required` cette page demande à l'utilisateur de s'inscrire au
COF; dans le cas `buro_required` elle indique simplement que la page
est réservée au Burô.
gestioncof/
* gestioncof/templates/buro-denied.html: Ajouté.
* decorators.py:
bda/
* tests/test_views.py:
Modifié pour correctement gérer le nouveau fonctionnement des
décorateurs.
L'application `petitscours` reste assez fortement couplée à
`gestioncof`, et n'est pas (encore ?) faite pour être utilisée
séparément.
De façon similaire, et afin de minimiser de potentiels problèmes dûs à
des migrations, les modèles de l'application `petitscours` utilisent
`app_label = "gestioncof"` pour que Django les considère comme faisant
partie de l'application `"gestioncof"`. Ils pourront être migrés dans
un second temps si cela s'avère nécessaire.
Les changements sont nombreux, mais assez simples: il s'agit
principalement de déplacer des fichiers et changer des imports. J'ai
également profité de l'occasion pour réorganiser les templates afin de
les placer dans l'espace de nom "petitscours/".
cof/
* settings/common.py: Add `petitscours` app
* urls.py: Use `petitscours.urls`
petitscours/
* __init__.py: Added.
* tests/__init__.py: Added.
* tests/utils.py: Added.
* urls.py: Added.
gestioncof/
* admin.py:
* management/commands/loaddevdata.py:
* models.py:
* signals.py: Typo.
* urls.py:
Moved petitscours_patterns to petitscours.urls
* petits_cours_forms.py:
Moved to petitscours/forms.py
* petits_cours_models.py:
Moved to petitscours/models.py
* petits_cours_views.py:
Moved to petitscours/views.py
* tests/utils.py:
* tests/test_petitscours_views.py:
Moved to petitscours/tests/test_petitscours_views.py
* templates/base_title_petitscours.html:
Moved to petitscours/templates/petitscours/base_title.html
* templates/demande-petit-cours.html:
Moved topetitscours/templates/petitscours/demande.html
* templates/gestioncof/details_demande_petit_cours.html:
Moved to petitscours/templates/petitscours/demande_detail.html
* templates/petits_cours_demandes_list.html:
Moved to petitscours/templates/petitscours/demande_list.html
* templates/demande-petit-cours-raw.html:
Moved to petitscours/templates/petitscours/demande_raw.html
* templates/details_demande_petit_cours_infos.html:
Moved to petitscours/templates/petitscours/details_demande_infos.html
* templates/inscription-petit-cours.html:
Moved to petitscours/templates/petitscours/inscription.html
* templates/inscription-petit-cours-formset.html:
Moved to petitscours/templates/petitscours/inscription_formset.html
* templates/gestioncof/traitement_demande_petit_cours.html:
Moved to petitscours/templates/petitscours/traitement_demande.html
* templates/gestioncof/traitement_demande_petit_cours_autre_niveau.html:
Moved to petitscours/templates/petitscours/traitement_demande_autre_niveau.html
* templates/gestioncof/traitement_demande_petit_cours_success.html:
Moved to petitscours/templates/petitscours/traitement_demande_success.html