Meilleure gestion des permissions
Il n'est plus possible de modifier l'attribut `is_superuser` dans
l'interface admin. les membres du burô ne doivent plus être super-
utilisateurs en prévision de l'arrivée de l'appli K-Fêt.
Pour donner les permissions adéquates au burô, il faut créer un groupe
COF avec tous les droits sur les applis `gestioncof` et `bda` ainsi que
les droits sur les d'utilisateurs et ajouter les membres du burô à ce groupe.
Fix#62
See merge request !75
Seul les superusers ont le contrôle sur les groupes et permissions.
Un membre du burô est automatiquement ajouté au groupe COF, lui même
créé automatiquement s'il n'existe pas.
Il n'est plus possible de modifier l'attribut `is_superuser` dans
l'interface admin. les membres du burô ne doivent plus être super-
utilisateurs en prévision de l'arrivée de l'appli K-Fêt.
Pour donner les permissions adéquates au burô, il faut créer un groupe
COF avec tous les droits sur les applis `gestioncof` et `bda` ainsi que
les droits sur les d'utilisateurs et ajouter les membres du burô à ce groupe.
À l'inscription on contraint les noms d'utilisateurs à dépasser 8
caractères seulement à la création de nouveaux utilisateurs pour
garantir la rétrocompatibilité.
On peut inscrire les utilisateurs aux différents clubs du COF. Le
formulaire d'inscription est inclus dans la page
“inscription d'un nouveau membre”.
À réfléchir comment ajouter des infos supplémentaires : chèque des caution,
commentaires, etc.
Lors de la création d'un compte exté via la vue `/registration` (i.e. compte
non associé à un clipper), deux champs sont ajoutés au formulaire pour la
création d'un mot de passe.
Il est toujours possible de changer ce mot de passe via l'admin s'il est perdu
par l'utilisateur.
- Ajout d'un FIXME dans `gestioncof/forms.py` au niveua de la surcharge de
la méthode privée `_construct_form` : ce trick ne sera plus nécessaire à
partir de Django 1.9
- Utilisation correcte des `form.is_valid` dans `gestioncof.views.registration`
- Changements mineurs dans `AdminEventForm`
- Ajout d'une base pour le formset : `BaseEventRegistrationFormset`
- Adaptation des vues de l'inscription et suppression d'une vue inutile.
- Le lien vers l'inscription à un tirage BdA disparaît après sa fermeture
- Les liens “mes places” et “revente” n'apparaissent qu'après la fermeture du
tirage.
- Le lien vers les ratios des demandes est déplacé dans la partie “Gestion des
tirages” pour servir d'archive au BdA.
Fixes#55
- La vue d'édition du profil n'est plus accessible aux non-COF
- Le calendrier dynamique étant réservé aux adhérents, le lien vers
l'inscription est caché aux non-adhérents.
- Séparation du compte root des autres comptes
- Mise à jour en fonction des derniers changements de la BDD :
- Les dates des events deviennent des datetime
- Changement de nom dans bda.models.Tirage : token -> tokens
- Changement dans les dates de spectacles pour se situer dans l'année
2016-2017
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
- Indique a l'utilisateur comment utiliser le calendrier
- Utilise l'ORM Django plutôt que des `set` python pour avoir la bonne
liste des spectacles.
- Rajoute un lien vers le calendrier sur la page “mes places”
Plus besoin de s'authentifier pour accéder au calendrier : il suffit
d'entrer la bonne url qui contient un token aléatoire propre à chaque
utilisateur.
Ce token ne change pas lorsqu'on modifie son inscription
- Typos dans les modèles
- Choix d'un `OneToOneField` dans `CalendarSubscription`
- Suppressions d'un `except` catch-all
- Amélioration de la vue calendar
`gestioncof.views.registration` was using an `event` variable that was
not properly defined. Due to a semantics oddity of python2, the value
used was from a previous and (somewhat) unrelated list comprehension.
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.
Rend GestioCOF compatible avec python 3. En particulier, il s'agit de :
- Utiliser la version "fonction" de `print` dans `sync_clipper` et
`tirage_bda`, avec le `from __future__ import print_function` pour
garder la compatibilité avec python 2
- Utiliser de l'unicode par défaut, même en python 2, avec
`from __future__ import unicode_literals` et le décorateur de
compatibilité `python_2_unicode_compatible` de Django pour les
modèles, comme décrit à
https://docs.djangoproject.com/en/1.9/topics/python3/#str-and-unicode-methods
- Utiliser `six.text_type` à la place de `unicode`
Fixes#2.
Tobast/pep8
Modification du code pour le rendre valide PEP8. J'avais beaucoup trop de rouge sur mon écran :D
Entre autres :
* 80 colonnes
* " = " → "=" pour les paramètres nommés de fonctions
* indentation
De plus, `$ pep8 {.,apache,bda,cof,gestioncof}/*.py` ne renvoie aucune erreur, et `python manage.py runserver` se lance sans raler. Les quelques pages que j'ai chargé au hasard se sont bien portées.
See merge request !57
Taken MR comments into account:
* `and` is considered a binary operator, thus put at the beginning of the line when splitting a line,
* same for `+`,
* same for `.` (different reasons).