bda.algorithm
- use iterator to find max_groups, instead of a db request
bda.views.do_tirage
- select_related() are now focused on some relationships (they were
taking useless relationships)
- bda-revente filling takes 1 request (each save and add was issuing
1 request)
bda.views.etat_places
- Use select_related on spectacles_set, avoid query issue for each spectacle.
- `slots__sum` is computed in view, instead of a query.
- Cleaner code (and avoid useless computations).
bda.views.places
- Add select_related on places, avoid query issue for each spectacle.
bda.views.inscription
- 1 query for spectacle field choices, instead of (#forms in formset *
#spectacles)
- Delete BaseBdaFormSet. The validation was redundant with
`unique_together` of ChoixSpectacle model.
- No string concatenations
- Use `get_object_or_404` instead of performing a `.get` and catching
the eventual exception.
- More accurate error messages when a bad request is detected.
- More accurate error handling
C'est un workaround, j'ai juste ajouté les fichiers JS absent dans
`bda/static/bda/js/`. Ces fichiers sont un peu outdated et le code
mériterait peut-être une modernisation mais au moins on peu s'inscrire
au tirage sans problème.
Fixes#124
- Le nombre total de demandes affiché est désormais le nombre de places
demandées et non le nombre de personnes ayant fait des demandes. Ainsi
ce nombre correspond à la somme des totaux par spectacle affiché
- Au passage, on déplace le template de cette vue dans un dossier plus
adéquat et on ajoute une docstring sur la vue.
- On installe le package depuis le dépôt COF-Geek
- On supprime tous les fichiers texte des mails
- On charge dans la bdd les mails nécessaires au fonctionnement de
GestioCOF
- On supprime le modèle CustomMail obsolète de gestioncof
Améliore les mails automatiques du BdA
Les mails du BdA sont maintenant tous chargés depuis des templates gérés par le système de templates de Django, et plus par de l'interpolation de chaîne de caractères. Ceci permet en particulier d'utiliser (et de configurer) la localisation de Django afin d'afficher les dates de façon uniforme (et sans "hack" à la `date_no_seconds`) dans un format comportant un "à" entre le jour et l'heure.
See merge request !113
Il restait un unique email (envoyé lors de l’achat d’une place au
shotgun) dont le texte est inscrit en dur dans `bda.views`. Pour
éviter d’avoir trop de systèmes d’envoi de mails différents, il
utilise maintenant une template dans `bda/mails` comme le reste des
emails envoyés par l’application bda.
GestioCOF définit une fonction `render_template` qui permet de calculer
l'interpolation d'un gabarit en une chaîne de caractères, par exemple
pour l'envoi de mails. Ce patch supprime cette fonction et remplace son
utilisation par la fonction `django.template.loader.render_to_string` au
comportement identique.
Ajout d'un calendrier dynamique
Ce patch propose aux adhérents du COF de télécharger un calendrier
dynamique (`.ics`).
Il est configurable :
- On peut s'abonner ou non aux événements du COF.
- On peut choisir les spectacles auxquels on veut s'abonner.
- Une checkbox permet d'ajouter d'un coup les spectacles pour lesquels on a obtenu une place
- On peut en ajouter d'autres
Pour faire fonctionner ce patch, il faut installer la bibliothèque python `icalendar` :
pip install --upgrade -r requirements.txt
Fixes#20Fixes#14
See merge request !63