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
reCAPTCHA v1 has been shut down since March 2018.
We now uses reCAPTCHA v2:
- user must check a simple checkbox (No CAPTCHA),
- eventually he must validate a challenge.
Moving keys settings allows to use the captcha for development.
Fixes#192.
- The {% cycle %} command was used non-quoted arguments separated by
commas, while it is supposed to use quoted arguments separated by
spaces (I'm actually not sure how that ever worked :)
- django-bootstrap-form was at version 3.2.1 which is not compatible
with Django 1.11 (but also required by GestioCOF). I upgraded it to
version 3.3.
- Deprecation warnings using Django 1.8 are resolved.
- Deprecation warnings using Django 1.11 are resolved.
- Admin: grappelli is no longer used.
- Upgrade to django-autocomplete-light v3 (v2 is not 1.11 compatible).
* autocomplete.modelform_factory being dropped, code uses dal Select2
views and widgets.
K-Fêt
- Integrate wagtail to serve "static" pages of old K-Fêt website
- Fixture "kfetcms/kfet_wagtail_17_05" contains a copy of old website
(as in May 2017).
- Media files can be got until end of June 17 at
http://partage.eleves.ens.fr//files/604e6dea2ceebc66b1936c6b3f911744/kfet_media.tar.gz
Login/logout
- Update package django_cas_ng to last version.
- Clean COFCASBackend.
- Change CAS version to 3 (version used on eleves.ens). This enables
the logout redirection (for CAS ofc).
- Add messages and clean existing ones on login/logout (for both
outsider and cas users).
Misc
- Update settings to bypass an incompability between debug-toolbar and
wagtailmenus packages.
- Better management of dev/test-specific urls (if debug-toolbar wasn't in
INSTALLED_APPS, media files were not served).
- UI improvements.
`member.profile` was not up-to-date where we used to send the success
message => move it to the place where the success var is set tu `True`
and remove the success var was which becomes irrelevant.
Sometime `uid` is not set in the objects fetched from the LDAP. This
case has to be handled. Also, the `.uid` and `.cn` attributes of these
objects in the python abstractions have a `.value` method which we
should use.