Commit graph

195 commits

Author SHA1 Message Date
Aurélien Delobelle
2a3c892d39 Merge branch 'master' into aureplop/fix_cache 2017-04-10 21:39:54 +02:00
Aurélien Delobelle
36771c2c4f Use redis for cache.
- Cache use db #1 of redis.
- Channel layer (of channels) use db #0 of redis.
- `settings` try getting redis connection variables from environment.
- Drop memcached system
2017-04-10 21:36:00 +02:00
Aurélien Delobelle
ab31c20649 missing CACHES value... 2017-04-10 19:47:00 +02:00
Aurélien Delobelle
784ba9bd10 Merge branch 'master' into aureplop/kfet_config 2017-04-08 18:36:28 +02:00
Aurélien Delobelle
c9019c4eb4 Get debug toolbar with ajax calls
- Add django-debug-panel module to pip development dependencies
- Enable debug toolbar on ajax calls by using the "Django Debug Panel"
  extension for... Chrome.

For further informations about:
- django module, see https://github.com/recamshak/django-debug-panel
- Chrome extension, see https://github.com/recamshak/chrome-django-panel
2017-04-06 14:36:25 +02:00
Qwann
a5671fdf4c Merge branch 'master' into qwann/k-fet/kfet_open 2017-04-05 17:40:19 +02:00
Martin Pépin
f13d1072c7 Add simple tests for the stat views
We check that we can get all the stats views with the appropriate
permissions.
2017-04-03 23:21:42 +01:00
Aurélien Delobelle
85caa6b058 Use django-djconfig for kfet app.
Old configuration(/settings), based on Settings model, system is
deleted: SettingsForm, Settings.
New system use `django-djconfig` module.

- `kfet.config` module provides `kfet_config` to access configuration concerning
kfet app.
- Views, forms, models, etc now use this object to retrieve conf values.
- Views no longer add config values to context, instead templates use
  `kfet_config` provided by a new context_processor.
- Enhance list and update views of settings.
- Fix: settings can directly be used without having to visit a specific
  page...

Misc
- Delete some py2/3 imports
- Delete unused imports in kfet.models and kfet.views
- Some PEP8 compliance
2017-04-03 20:32:16 +02:00
Martin Pépin
8a346bf834 Reformat code in 79 columns 2017-04-01 18:29:36 +01:00
Martin Pépin
ec3a9a9658 Remove every occurrence of Event from views, forms, etc
The views have to be re-implemented later
2017-04-01 14:29:02 +01:00
Martin Pépin
745e7a1c0c register the events stuff into the admin site
A simple admin interface which may be modified later
2017-04-01 14:26:05 +01:00
Martin Pépin
c217b549bd Move the events stuff to gestion
- The models are moved to the `gestion` app
- A new field `associations` is added
- The location and datetime fields are removed in favour of a new model
  `EventTimeSlot`
- The old events are migrated to the new app and linked to the
  `cof_buro` association
2017-04-01 14:25:48 +01:00
Qwann
e1713a1d4f Merge branch 'Kerl/datetime_warnings' into supportBDS 2017-02-24 15:02:27 +01:00
Qwann
9c6f5533ec Merge branch 'supportBDS' of git.eleves.ens.fr:cof-geek/gestioCOF into supportBDS 2017-02-23 19:00:58 +01:00
Martin Pépin
80f1514d39 handle timezones in petits_cours_views 2017-02-23 18:35:38 +01:00
Martin Pépin
856faf2b73 Merge branch 'supportBDS' into Kerl/django111-packages 2017-02-23 17:56:12 +01:00
Martin Pepin
646b213d97 Merge branch 'Kerl/django111-urls' into 'supportBDS'
Write modern-style urls

- Proper use of include
- Defining namespaces (I do not use them for now because many urls are
  going to change)
- Do not try to reverse with old-style references: 'cof.views.XXX'

See merge request !178
2017-02-23 17:32:05 +01:00
Martin Pépin
5ce4809f06 Merge branch 'supportBDS' into Kerl/bds_groups 2017-02-23 12:58:10 +01:00
Martin Pépin
7988fb24a0 Merge branch 'supportBDS' into Kerl/clubs_support 2017-02-23 12:35:37 +01:00
Martin Pépin
213c11721e Prevent petits cours demandes deletion 2017-02-23 11:03:28 +01:00
Martin Pépin
6c34742cc4 Remove an erroneous RegistrationUserForm
This form appeared twice in `cof/forms.py` and the second occurrence
(which was used by the views) was erroneous.
2017-02-23 10:36:25 +01:00
Martin Pépin
7abcf28666 Move the registration_form template 2017-02-23 10:35:46 +01:00
Martin Pépin
8b905f66dc Remove dependencies of an old version of dal
Django-autocomplete-light does not support the `modelform_factory`
anymore in recent versions. We are actually using an old version of dal
because of this.

This had to be dropped at some point… So now is a good time
2017-02-23 01:57:50 +01:00
Martin Pépin
e1bab7e4ed Use the AppConfig class 2017-02-23 01:56:59 +01:00
Martin Pépin
1aed36330f Write modern-style urls
- Proper use of include
- Defining namespaces (I do not use them for now because many urls are
  going to change)
- Do not try to reverse with old-style references: 'cof.views.XXX'
2017-02-23 01:52:55 +01:00
Martin Pépin
9f401b66e9 Specify the on_delete attribute everywhere
- Models
- Migrations
2017-02-23 01:40:25 +01:00
Martin Pépin
c81b849785 Prevent conflicts in COF perm migration
There may be a conflict during the migration cof 0009 if the permissions
are referenced only by their codename.
2017-02-22 18:21:23 +01:00
Martin Pépin
68b38228a9 Apply the new db structure to autocomplete in cof
- The autocompletion feature works again
- The template is a bit more readable (indentation)
- The `options` variable in the template is no longer a integer but a
  boolean.
2017-02-22 14:49:34 +01:00
Martin Pépin
1f85f75896 Include the Clubs into the admin site 2017-02-20 01:16:50 +01:00
Martin Pépin
669129e30d Move the club model to the gestion app
- Move the model
- Add some BDS-related fields
- Add an `associations` fields to be able to separate the clubs between
  the different associations using groups
2017-02-20 01:12:06 +01:00
Martin Pépin
859f191894 Simpler admin interface 2017-02-18 19:06:43 +01:00
Martin Pépin
52bdd9824a Merge branch 'supportBDS' of git.eleves.ens.fr:michele.orru/gestioCOF into michele 2017-02-18 13:00:21 +01:00
Martin Pépin
7f5132961f Add the cof_members group
GestioCOF cannot run without it.
There is no permission associated to it: this has to been thought about
2017-02-12 19:49:30 +01:00
Martin Pépin
659c6e720a Merge branch 'master' into supportBDS 2017-02-12 19:36:17 +01:00
Martin Pépin
a28c00e474 Move the auth stuff to gestion/
- The login views are in `gestion/`
- The templates are under `gestion/templates/gestion/`
- `cof/shared.py` moves to `gestion/` and is splitted into 3 files:
    - The auth backends are in `backends.py`.
    - The context_processor is in `context_processor.py`
    - The LOCK/UNLOCK functions remain in `shared.py`
2017-02-12 15:38:14 +01:00
Martin Pépin
50b667993f Merge branch 'master' into supportBDS
- Mise en page
- Cleanup des petits cours
- Utilisation de custommail
- Utilisation du ldap du SPI pour fetch les nouveaux comptes
2017-02-12 04:26:43 +01:00
Michele Orrù
94937fc7cd Add groups cof_members and cof_buro.
- remove is_buro from the database in the same way we did for is_cof
- make a decent migration that *SHOULD* take into account is_cof for old
  databases. note, this has been tested only through unittests.
- make unittests pass again accordin=gly fixing views.

Note: we should make a method for filtering with specific group members,
something like
map(lambda x: x.profile.cof, filter… group…)
2017-02-11 23:05:51 +01:00
Qwann
b5037329dd small fixes + migration
enable admin interface for bds
2017-02-11 20:36:16 +01:00
Qwann
f53ced6a33 Merge branch 'supportBDS' into michele.orru/gestioCOF-supportBDS 2017-02-11 19:21:23 +01:00
Michele Orrù
ee1f29b17d Make is_cof a property and start developing permissions.
Rmeove the is_cof flag to check permission and start implementing
a group and a permission for the respective cof members.
XXX. note: migrations do NOT add old is_cof members to the new group
(as actually they're just on the tests…)
2017-02-11 18:48:13 +01:00
Qwann
b9ed7320ec Fix user registration 2017-02-11 18:41:47 +01:00
Martin Pépin
3365d7b9a1 Updates the decorators 2017-02-11 18:00:01 +01:00
Martin Pépin
6c3e1bd2db Fix the loaddevdata script 2017-02-11 17:18:42 +01:00
Michele Orrù
376e829502 Reaching a point where I can query /k-fet.
Edit forms and views in app kfet to make the depend on gestion.Profile and not
on cof.CofProfile.
2017-02-11 15:07:45 +01:00
Michele Orrù
f50ef1d51a Merge remote-tracking branch 'origin/supportBDS-fixes1' into supportBDS 2017-02-11 14:26:55 +01:00
Martin Pépin
b639c04549 Fix the registration forms
- The former `RegistrationUserProfileForm` is splitted in two.
- There is a new form: `RegistrationCofProfileForm`
2017-02-11 12:42:36 +01:00
Martin Pépin
6e55905781 Merge branch 'master' into Kerl/use_django_custommail 2017-02-11 03:20:29 +01:00
Martin Pépin
b1cf96d0ae Move profile editing to gestion 2017-02-11 01:43:17 +00:00
Michele Orrù
22da04c3e2 s/cofprofile/profile/g into k-fêt.
This commit also restores the only unittest present.
2017-02-11 00:32:58 +01:00
Qwann
f87f1ceff1 kfetOpen bullet working 2017-02-11 00:29:12 +01:00
Martin Pépin
58d708b791 Move profile editing to gestion 2017-02-10 23:50:19 +01:00
Ubuntu
f39d1545f0 Generic profiles and migrations.
Creating profiles for BDS, COF and K-Fêt.
2017-02-10 22:12:03 +01:00
Martin Pépin
5aff771d9c Set the new structure of gestioCOF
- `cof` is renamed `gestioCOF`
- `gestioncof` become `cof` (yes it looks pretty stupid but it is not)
- `bds` is created
2017-02-09 21:28:36 +01:00
Martin Pépin
993b8ae87b Merge branch 'master' into Kerl/use_django_custommail 2017-01-13 01:02:01 +01:00
Martin Pépin
540b6f38b8 Merge branch 'master' into Kerl/ldap 2017-01-09 15:47:12 +01:00
Aurélien Delobelle
792c4177ec Merge branch 'master' into k-fet 2017-01-07 00:38:54 +01:00
Martin Pépin
ab80db8bed Merge branch 'master' into Kerl/clean_staticfiles 2016-12-26 00:54:31 +01:00
Martin Pépin
3c7558c853 The end of Clipper
GestioCOF fetches the clipper accounts from an LDAP database and doesn't
need to store clippers in a table anymore.
2016-12-25 11:57:50 +01:00
Martin Pépin
fe8f18ff78 Utilise django_custommail
- 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
2016-12-22 03:45:03 +01:00
Aurélien Delobelle
f5ebe3f166 Merge branch 'master' into k-fet 2016-12-03 21:44:33 +01:00
Martin Pepin
2196c7dce1 Merge branch 'Kerl/venv' into 'master'
Virtualenv

Ce patch introduit un virtualenv dans le setup de dev. Cela permet notamment de passer à python 3 sans 
avoir à remplacer toutes ses commandes `python manage.py ...` par `python3 manage.py ...`. 

Il faut relancer le provisionning de la VM pour appliquer ce patch : `vagrant reload --provision`

See merge request !109
2016-11-21 01:28:26 +01:00
Martin Pépin
5a2fc9d1e5 Cesse d'utiliser des fichiers statiques custom 2016-11-20 20:09:12 +01:00
Martin Pépin
9a9ff69f55 Ajoute le jour en toutes lettres dans les dates 2016-11-20 18:42:59 +01:00
Martin Pepin
d6dd7b346c Merge branch 'Elarnon/mail_bda' into 'master'
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
2016-11-20 16:53:29 +01:00
Martin Pépin
debc10213e Typo + docstrings inutiles 2016-11-20 16:52:07 +01:00
Martin Pépin
f93b095e0f Styling
Ou comment faire plaisir à pylint sur les bouts de code concernés
par cette MR
2016-11-20 16:39:26 +01:00
Martin Pépin
6de2fa307b Merge branch 'master' into Kerl/venv 2016-11-18 01:09:39 +01:00
Martin Pepin
297164aae0 Merge branch 'Elarnon/ci' into 'master'
Lance les tests de gestioCOF sur gitlab-ci



See merge request !116
2016-11-14 06:41:27 +01:00
Basile Clement
a5ee17d0b5 Lance les tests de gestioCOF sur gitlab-ci 2016-11-13 15:16:57 +01:00
Basile Clement
567c9a0a6d Meilleur affichage des dates
Configure la localisation (i10n) de Django afin d’afficher un format
plus user-friendly par défaut pour les dates (par exemple, afficher
"21 septembre 2016 à 15:00" plutôt que "21 septembre 2016
15:00"). Ceci permet d’éliminer les utilisations de `date_no_seconds`
pour simplement les remplacer par l’affichage de la date, le format
par défaut étant maintenant satisfaisant.

Attention : le bon fonctionnement de ceci nécessite de changer les
settings afin d’utiliser le module `cof.locale` comme module de
localisation (définir `FORMAT_MODULE_PATH = "cof.locale"`). Le module
`cof.locale` définit le format d’affichage des dates+heures
(`DATETIME_FORMAT`) afin d’incorporer le "à" qui n'est pas présent
dans la localisation française de Django.
2016-11-12 11:00:18 +01:00
Basile Clement
a63f1da2e1 Mise à jour de django_debug_toolbar 2016-11-06 19:48:11 +01:00
Basile Clement
d77a4dde3e GestioCOF devrait fonctionner sur / aussi bien que sur /gestion 2016-11-06 19:47:31 +01:00
Martin Pépin
0cca9f0861 Mise à jour de django_debug_toolbar 2016-11-06 15:39:14 +01:00
Martin Pépin
b40fc6204f Changements mineurs
- Suppression de la variable `ALLOWED_HOSTS` de `cof/settings.dev` de
sorte quand django utilise le default (qui est adapté à notre usage)
- Correction d'indentation
- Suppression d'un "-e" dans le fichier `requirements.txt`
2016-11-05 22:01:38 +01:00
Martin Pépin
1a6b86703a Merge branch 'master' into Kerl/settings_syntax 2016-10-03 01:58:55 +02:00
Aurélien Delobelle
d559549c06 Fix oubli auth backend kfet_genericteam user dans settings_dev 2016-09-29 23:17:42 +02:00
Martin Pépin
7abdccfbdb Meilleure gestion des données mails
Les valeurs de champs FROM, REPLY-TO et BCC des mails envoyés par
GestioCOF sont enregistrées dans un dictionnaire `settings.MAIL_DATA`
plutôt que d'être toutes enregistrées comme variables indépendantes
2016-09-27 17:57:53 +02:00
Ludovic Stephan
103b2880f7 BdA 2016-09-27 16:57:39 +02:00
Ludovic Stephan
7984eb132b Merge branch 'master' of https://git.eleves.ens.fr/cof-geek/gestioCOF into Aufinal/bda_revente 2016-09-26 15:56:35 +02:00
Martin Pépin
3bf4e6ae06 Modif pour la production
- Suppression du dossier `apache` devenu inutile.
- On utilise `cof.settings` dans le fichier `asgi.py` par défaut
- Correction dans les urls du fichier de settings en lien avec les
nouvelles urls en `/gestion/...`
2016-09-24 21:46:35 +02:00
Martin Pépin
bd3d67dd13 Merge branch 'Kerl/prefix_urls' 2016-09-24 19:04:13 +02:00
Martin Pépin
38bb59b004 Permet l'ajout d'un préfixe dans les urls 2016-09-24 19:03:48 +02:00
Martin Pépin
f37bdd90b7 Crée un setup proche de celui en production
On fait tourner GestioCOF avec daphne derrière un reverse-proxy Apache
sur la VM Vagrant tout comme sur le serveur de production. On peut tester
en local GestioCOF en “conditions réelles”.

Le serveur lancé avec `python manage.py runserver 0.0.0.0:8000` est toujours
accessible à la même url `localhost:8000`.

Le (nouveau) serveur apache est accessible à `localhost:8080`.

Pour appliquer les changements dans le code au serveur type prod, il faut
relancer le worker : `sudo supervisorctl restart worker`. Alors que le serveur
de dev se relance tout seul.

NB important : ce patch supprime le mot de passe sur le serveur redis en dev,
pour faire marcher ce nouveau setup avec un version précédente de la VM, il faut
lancer `sudo redis-cli config set requirepass ""`
2016-09-12 16:49:37 +02:00
Ludovic Stephan
7f2717c10c Merge branch 'master' of https://git.eleves.ens.fr/cof-geek/gestioCOF into Aufinal/bda_revente 2016-09-11 14:15:38 +02:00
Martin Pépin
9979072c13 Config redis
Le provisionning ajoute un mot de passe sur le serveur redis
2016-09-11 13:49:10 +02:00
Ludovic Stephan
0282f62886 Merge branch 'master' of https://git.eleves.ens.fr/cof-geek/gestioCOF into Aufinal/bda_revente 2016-09-08 16:29:42 +02:00
Aurélien Delobelle
9236ab0a77 ajout django-widget-tweaks 2016-09-03 16:29:32 +02:00
Ludovic Stephan
dbd81ac625 Merge branch 'master' of https://git.eleves.ens.fr/cof-geek/gestioCOF into Aufinal/bda_revente 2016-09-03 01:39:33 +02:00
Aurélien Delobelle
cbf9018bb9 Ajout password redis-server 2016-09-01 01:58:46 +02:00
Martin Pépin
3d25d1ab77 Merge branch 'master' into k-fet 2016-08-31 23:52:31 +02:00
Martin Pépin
f25243b082 Ajout d'une vue : membres d'un club
- Liste des membres inscrits à un club.
- Vue accessible aux membres du burô et aux respos des clubs concernés.
2016-08-23 18:57:59 +02:00
Aurélien Delobelle
1ad265ef0f Fix 404 widget media
Avec ça, ça marche. Mais si qqn trouve mieux, et bien c'est bien
2016-08-21 16:30:22 +02:00
Aurélien Delobelle
8507072c8f Auth spéciale
- Le backend d'auth K-Fêt est étendu pour aussi identifier une personne
  dans le cas dans d'un formulaire en récupérant le password contenu
  dans l'input de nom `KFETPASSWORD`
- Le middleware d'auth K-Fêt enregistre l'utilisateur connecté de
  manière normale dans `request.real_user`
- Ajout d'un processeurs de contextes `kfet.context_processors.auth` qui
  qui remplace `user` et `perms` par l'utilisateur connecté de manière
  normale (`request.real_user`) et non celui connecté temporairement
- Modification de la vue de modif d'un compte pour s'adapter à l'auth
- Modification du template de modification d'un compte pour utiliser ce
  moyen d'authentification
- Séparation du JS conservant le côté gauche d'une page à l'écran
- Séparation de l'encart gauche contenant les infos d'un comtpe dans un
  autre template (`left_account`) pour l'utiliser dans `account_read` et `account_update`
- `base_nav` utilise user (qui est donc le vrai utilisateur connecté) au
  lieu de `request.user` qui peut aussi bien être le vrai utilisateur
qu'un utilisateur temporaire
2016-08-20 23:31:30 +02:00
Aurélien Delobelle
3e96932a5b Authentification K-Psul
Si une (des) permission(s) sont nécessaires pour enregistrer/annuler des
opérations, une demande d'authentification apparaît où l'utilisateur
doit mettre le mot de passe d'un compte ayant la (les) permission(s)
requise(s).

Ce mot de passe est envoyé dans la requête AJAX via le header
`KFetPassword`.
Le middleware `KFetAuthenticationPassword` est appelée à chaque requête.
Il appelle lui même le backend `KFetBackend` qui est chargé de
retrouver le user dont le compte K-Fêt correspond au mot de passe défini
dans le header `KFETPASSWORD`.
Si le header n'est pas présent ou
qu'aucun utilisateur ne correspond à ce mot de passe, le middleware ne
fait... rien !
Dans le cas où un user est trouvé, il est "chargé" dans
`request.user` permettant ainsi de connecter l'utilisateur pour ce cycle
requête/réponse sans déconnecter l'utilisateur connecté de manière
normale.
2016-08-19 06:20:37 +02:00
Aurélien Delobelle
7c2a18bb5d Ajout de channels 2016-08-14 20:31:22 +02:00
Aurélien Delobelle
8256c96ffb K-Psul - Historique + synchronisation
- Ajoute l'affichage de l'historique dans K-Psul
- Ajoute la synchronisation du montant des caisses et de l'historique
  entre les interfaces K-Psul ouvertes par le package 'channels' et
  l'utilisation de websockets
- Corrige l'obligation de l'article sur K-Psul (pas d'article pour les
  charges et retraits)
- Corrige type renvoyé par perms_to_perform_operations
- Rangement de js.cookie.js dans static/kfet/js/
- Ajout de dépendances
2016-08-14 19:59:36 +02:00
Aurélien Delobelle
43d938edd0 initial 2016-08-02 10:40:46 +02:00
Martin Pépin
7020d6a646 Merge branch 'master' into Kerl/deprec 2016-07-30 00:27:59 +02:00
Martin Pépin
2632c9dff8 Merge branch 'master' into Kerl/calendar 2016-07-29 20:17:04 +02:00
Ludovic Stephan
5b18eace20 send mail 2016-07-29 01:50:08 +02:00