Commit graph

59 commits

Author SHA1 Message Date
Aurélien Delobelle 05eeb6a25c core -- Install django-allauth-ens
Refer to allauth doc for an accurate features list:
  http://django-allauth.readthedocs.io/en/latest/

Users can now change their password, ask for a password reset, or set
one if they don't have one.

In particular, it allows users whose account has been created via a
clipper authentication to configure a password before losing their
clipper. Even if they have already lost it, they are able to get one
using the "Reset password" functionality.

Allauth multiple emails management is deactivated. Requests to the
related url redirect to the home page.

All the login and logout views are replaced by the allauth' ones. It
also concerns the Django and Wagtail admin sites.

Note that users are no longer logged out of the clipper CAS server when
they authenticated via this server. Instead a message suggests the user
to disconnect.

Clipper connections and `login_clipper`
---------------------------------------

- Non-empty `login_clipper` are now unique among `CofProfile` instances.
- They are created once for users with a non-empty 'login_clipper' (with
the data migration 0014_create_clipper_connections).
- The `login_clipper` of CofProfile instances are sync with their
clipper connections:
    * `CofProfile.sync_clipper_connections` method updates the
connections based on `login_clipper`.
    * Signals receivers `sync_clipper…` update `login_clipper` based on
connections creations/updates/deletions.

Misc
----

- Add NullCharField (model field) which allows to use `unique=True` on
CharField (even with empty strings).
- Parts of kfet mixins for TestCase are now in shared.tests.testcase,
  as they are used elsewhere than in the kfet app.
2018-10-21 17:09:12 +02:00
Aurélien Delobelle ece9a54df3 Upgrade to reCAPTCHA v2
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.
2018-05-14 13:22:59 +02:00
Martin Pépin a73736bf41 Merge branch 'master' into Kerl/drop_py2_compat 2018-04-16 14:12:36 +02:00
Martin Pépin 09cfcc476a Bump django-cors-headers 2018-04-08 22:32:59 +02:00
Martin Pépin 556c354f8a Merge branch 'master' into Roussille/bda 2018-04-08 22:30:48 +02:00
Basile Clement 3314670cab Various fixes for Django 1.11
- 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.
2018-02-11 19:09:07 +01:00
Martin Pépin 5a5b60ec4d Merge branch 'master' into Kerl/drop_py2_compat 2018-01-10 20:12:59 +01:00
Martin Pépin 62d8c2ffaf remove @py2_unicode_compat + six 2018-01-06 16:10:13 +01:00
Martin Pépin 57411ab46f Remove __future__ imports 2018-01-06 16:10:13 +01:00
Aurélien Delobelle b0b0542407 Upgrade to Django 1.11
- 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.
2017-11-19 18:41:39 +01:00
Martin Pépin 503b305299 djangorestframework 3.7 breaks with Django 1.8
JSONField doesn't exist in Django 1.8
2017-10-10 18:34:18 +02:00
Hugo Roussille 4bd2562edf django-cors-headers for cross-domain AJAX 2017-09-13 15:57:57 +02:00
Martin Pépin 522acafb2e Add python dependency for Debian9 2017-08-10 16:56:20 +01:00
Martin Pépin ad15c45237 Switch to nginx + postgres in vagrant 2017-08-09 22:18:26 +01:00
Aurélien Delobelle 455b730cc3 Merge branch 'master' into aureplop/kfet_cms 2017-06-23 02:53:05 +02:00
Aurélien Delobelle b8110c11a4 kfet.open
kfet.open app
- Base data (raw_open, last_update...) is stored and shared through cache system.
- 2 websockets groups: one for team users, one for other users.
- UI is initialized and kept up-to-date with WS.
- raw_open and force_close can be updated with standard HTTP requests.
  At this time, there isn't any restriction on raw_open view. Common sense tell us
  to change this behavior.

Misc
- Clean channels routing.
- 'PermConsumerMixin': user who sent the message is available as argument in
connection_groups method, which returns groups to which the user should be
appended on websocket connection (and discarded on disconnection).
- New kfet.utils module: should be used for mixins, whatever is useful and not concerns
the kfet app.
- Clean JS dependencies.
2017-06-21 07:08:28 +02:00
Aurélien Delobelle 8c6d56b27c Add Wagtail CMS for kfet app.
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.
2017-05-30 20:44:30 +02:00
Aurélien Delobelle e772d12721 Merge branch 'master' into aureplop/fix_cache 2017-04-15 14:27:20 +02:00
Aurélien Delobelle b357283f87 Merge branch 'master' into aureplop/clean_channels 2017-04-11 00:32:07 +02:00
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 2c40838938 Add real cache support
- Fix cache per process issue with a real cache system
- Configuration seems too easy... but it seems to work
2017-04-10 19:47:00 +02:00
Aurélien Delobelle 1e18c4043e Use last channels & co versions
- Use last official releases of channels, asgiref, daphne and
  asgi-redis packages.
- Customization of JsonWebsocketConsumer is now in kfet app through a
  custom class (and so, doesn't require anymore a forked version of channels).
- Clean kfet consumers code.
2017-04-09 15:47:16 +02:00
Aurélien Delobelle 784ba9bd10 Merge branch 'master' into aureplop/kfet_config 2017-04-08 18:36:28 +02:00
Aurélien Delobelle dc07b072ab Flatten scale args in GET params of stats urls
- get_scale_args method of ScaleMixin retrieves useful GET params for
  Scale object instanciation (by default from request.GET)
- it takes into account the type of the scale arg
- prefix used for GET param can be modified in stats_manifest funcs and
  ScaleMixin
2017-04-04 20:12:21 +02: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 6e55905781 Merge branch 'master' into Kerl/use_django_custommail 2017-02-11 03:20:29 +01:00
Martin Pépin 540b6f38b8 Merge branch 'master' into Kerl/ldap 2017-01-09 15:47:12 +01:00
Aurélien Delobelle b6bd08170e fix pip warning 2017-01-07 03:47:10 +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
Basile Clement 3c362014b0 Remplace simplejson par json de la bibliothèque standard 2016-11-13 15:04:47 +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 Pepin 68b85adc81 Merge branch 'Elarnon/revente-mail-losers' into 'master'
[bda-revente] Envoie un mails aux perdants d'un tirage de revente

Note : Le changement dans le `requirements.txt` permet de profiter des mises à jour "patch" de django (qui contiennent notamment des mises à jour de sécurité...), ce qui permet d'éviter un bug corrigé dans la version 1.8.1 avec l'utilisation de `|floatformat` avec `django.template.loader.render_to_string`.

See merge request !106
2016-11-05 21:55:23 +01:00
Basile Clement ba2d90d906 [bda-revente] Envoie un mails aux perdants d'un tirage de revente 2016-11-05 20:04:25 +01:00
Basile Clement 34032c9a00 Utilise une version officielle de django-cas-ng
Le fix de Xapantu pour la double authentification a été intégré à la
version 3.5.5 de django-cas-ng.
2016-11-05 18:26:34 +01:00
Martin Pépin 05e48386a1 Ajustements, fix 2016-09-24 18:44:35 +02:00
Aurélien Delobelle 9236ab0a77 ajout django-widget-tweaks 2016-09-03 16:29:32 +02:00
Aurélien Delobelle 9b5aeee83e Oubli compat Py2 req 2016-09-01 00:52:34 +02:00
Aurélien Delobelle 50ed08dd72 Utilisation d'un fork du package 'channels'
Qui utilise DjangoJSONEncoder pour les group_send (json.dumps basique
n'encode pas les Decimal)
2016-08-20 15:30:33 +02:00
Aurélien Delobelle 09499886a8 fix requirements 2016-08-18 14:31:36 +02:00
Aurélien Delobelle b87b0ce958 Install redis-server et fix requirements 2016-08-18 14:23:27 +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
Qwann 692b2917c9 ajout de django-bootstrap-form 2016-07-27 15:44:10 +02:00
Martin Pépin 6732c65c33 Mise à jour des requirements 2016-07-18 19:52:55 +02:00
Martin Pépin 8af49a1020 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.
2016-07-15 01:06:33 +02:00
Qwann eacce30900 avec le bon requierement c'est mieux 2016-07-12 00:43:16 +02:00