La présence de DJDT sur l'interface admin multiplie par 100 environ
(sans exagération) les temps de chargement des pages, cause des 503, et
a une utilité au plus limitée. Cette MR vire donc l'addon de l'interface
admin.
À la demande du COF, car il y a des parents qui demandent et illes se
retrouvent à changer les demande "Autres" en "Licence 3" via l'admin
Django. En pratique, il y aura sans doute très peu de profs qui
proposent des cours de Master (aussi appelé "le problème des gens qui
remplissent leurs compétences une seule fois en conscritude"); il
faudra donc tout de même laisser la possibilité au COF de changer
manuellement pour matcher avec "Licence 3", mais faisons une chose à la
fois. On pourrait aussi harceler les gens pour qu'illes mettent à jour
leurs compétences en début d'année (c'est-à-dire mettre un bandeau
temporaire pour leur rappeler que si illes mettent à jour leurs
compétences ça augmente leur chance d'obtenir des cours).
- Rajouter une option pour `option_template_name` et `context_object_name` dans la classe, et documente mieux. Répercute ces changements dans `InscriptionReventeForm`.
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.
Ce patch simplifie le code (dupliqué) de calcul des proposition de profs
pour une demande dans une méthode du modèle`Demande`, et l'utilise. Il
s'agit d'un préparatif pour #208; ce code devra être réutilisé dans le
nouveau système.
J'en ai également profité pour nettoyer deux vues de `petitscours`,
`retraitement` et `demande_raw`, qui dupliquaient les vues `traitement`
et `demande`, en utilisant des arguments nommés.
petitscours/
* models.py:
Définition de `get_proposals` pour calculer les propositions de
profs pour une demande.
* views.py:
Utilise `get_proposals` à la place du code copié-collé. La fonction
`_finalize_traitement` est maintenant responsable du calcul des
`proposed_for` et `attribdata` à fournir aux templates.
* urls.py:
Passe directement les arguments aux vues plutôt que de faire deux
fonctions séparées.