From 2dcc17298add141f1e3ed1e55fe99590a4859dc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Wed, 22 Feb 2017 19:27:23 +0100 Subject: [PATCH 1/7] Use Django 1.11 (beta 1) Starting to use Django 1.11. The final version will be released before we push this to production. --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 06f6c46e..0e6dc704 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ configparser==3.5.0 -Django==1.8.* +Django==1.11b1 django-autocomplete-light==2.3.3 django-autoslug==1.9.3 django-cas-ng==3.5.5 From 68c0ff559dfe82966cbeb633f8895cdb9f03aa15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Wed, 22 Feb 2017 20:01:11 +0100 Subject: [PATCH 2/7] Drop Grappelli It's ugly and does not really improve the admin site --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 0e6dc704..b6debf1c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,6 @@ Django==1.11b1 django-autocomplete-light==2.3.3 django-autoslug==1.9.3 django-cas-ng==3.5.5 -django-grappelli==2.8.1 django-recaptcha==1.0.5 mysqlclient==1.3.7 Pillow==3.3.0 From e1bab7e4edb3b768c99990eb1fde0e7bb25cd9d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Wed, 22 Feb 2017 20:00:32 +0100 Subject: [PATCH 3/7] Use the AppConfig class --- bda/apps.py | 6 ++++++ bds/apps.py | 6 ++++++ cof/apps.py | 6 ++++++ gestioCOF/settings_dev.py | 10 +++++----- gestion/apps.py | 6 ++++++ kfet/apps.py | 7 +------ 6 files changed, 30 insertions(+), 11 deletions(-) create mode 100644 bda/apps.py create mode 100644 bds/apps.py create mode 100644 cof/apps.py create mode 100644 gestion/apps.py diff --git a/bda/apps.py b/bda/apps.py new file mode 100644 index 00000000..583936c7 --- /dev/null +++ b/bda/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class BdAConfig(AppConfig): + name = "bda" + verbose_name = "Gestion des tirages du BdA" diff --git a/bds/apps.py b/bds/apps.py new file mode 100644 index 00000000..7c08d34e --- /dev/null +++ b/bds/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class BDSConfig(AppConfig): + name = "bds" + verbose_name = "Application de gestion du BDS" diff --git a/cof/apps.py b/cof/apps.py new file mode 100644 index 00000000..f981ee91 --- /dev/null +++ b/cof/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class COFConfig(AppConfig): + name = "cof" + verbose_name = "Application de gestion du COF" diff --git a/gestioCOF/settings_dev.py b/gestioCOF/settings_dev.py index 253f924f..feacba52 100644 --- a/gestioCOF/settings_dev.py +++ b/gestioCOF/settings_dev.py @@ -42,12 +42,12 @@ INSTALLED_APPS = ( 'bootstrapform', 'channels', 'widget_tweaks', - 'bda', - 'bds', - 'cof', - 'gestion', - 'kfet', 'custommail', + 'bda.apps.BdAConfig', + 'bds.apps.BDSConfig', + 'cof.apps.COFConfig', + 'gestion.apps.GestionConfig', + 'kfet.apps.KFetConfig', ) MIDDLEWARE_CLASSES = ( diff --git a/gestion/apps.py b/gestion/apps.py new file mode 100644 index 00000000..efb14b29 --- /dev/null +++ b/gestion/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class GestionConfig(AppConfig): + name = "gestion" + verbose_name = "Gestion des outils communs COF/BDS" diff --git a/kfet/apps.py b/kfet/apps.py index 29f9f98e..ae83817b 100644 --- a/kfet/apps.py +++ b/kfet/apps.py @@ -1,11 +1,6 @@ -# -*- coding: utf-8 -*- - -from __future__ import (absolute_import, division, - print_function, unicode_literals) -from builtins import * - from django.apps import AppConfig + class KFetConfig(AppConfig): name = 'kfet' verbose_name = "Application K-Fêt" From 8b905f66dc605b99bbbf1de068b393cc81fed562 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Wed, 22 Feb 2017 19:26:37 +0100 Subject: [PATCH 4/7] Remove dependencies of an old version of dal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- bda/admin.py | 3 --- bda/autocomplete_light_registry.py | 18 ------------------ cof/admin.py | 3 --- cof/autocomplete_light_registry.py | 10 ---------- cof/urls.py | 5 ++--- gestioCOF/urls.py | 3 --- 6 files changed, 2 insertions(+), 40 deletions(-) delete mode 100644 bda/autocomplete_light_registry.py delete mode 100644 cof/autocomplete_light_registry.py diff --git a/bda/admin.py b/bda/admin.py index fc10c326..26f6042f 100644 --- a/bda/admin.py +++ b/bda/admin.py @@ -1,6 +1,5 @@ # -*- coding: utf-8 -*- -import autocomplete_light from datetime import timedelta from custommail.shortcuts import send_mass_custom_mail @@ -119,8 +118,6 @@ class AttributionAdmin(admin.ModelAdmin): class ChoixSpectacleAdmin(admin.ModelAdmin): - form = autocomplete_light.modelform_factory(ChoixSpectacle, exclude=[]) - def tirage(self, obj): return obj.participant.tirage list_display = ("participant", "tirage", "spectacle", "priority", diff --git a/bda/autocomplete_light_registry.py b/bda/autocomplete_light_registry.py deleted file mode 100644 index 6c2f3ea6..00000000 --- a/bda/autocomplete_light_registry.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- - -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - -import autocomplete_light - -from bda.models import Participant, Spectacle - -autocomplete_light.register( - Participant, search_fields=('user__username', 'user__first_name', - 'user__last_name'), - autocomplete_js_attributes={'placeholder': 'participant...'}) - -autocomplete_light.register( - Spectacle, search_fields=('title', ), - autocomplete_js_attributes={'placeholder': 'spectacle...'}) diff --git a/cof/admin.py b/cof/admin.py index 177a5adf..ce998cd4 100644 --- a/cof/admin.py +++ b/cof/admin.py @@ -6,8 +6,6 @@ from django.core.urlresolvers import reverse from django.utils.safestring import mark_safe import django.utils.six as six -import autocomplete_light - from .petits_cours_models import PetitCoursDemande, \ PetitCoursSubject, PetitCoursAbility, PetitCoursAttribution, \ PetitCoursAttributionCounter @@ -95,7 +93,6 @@ class EventAdmin(admin.ModelAdmin): class EventRegistrationAdmin(admin.ModelAdmin): - form = autocomplete_light.modelform_factory(EventRegistration, exclude=[]) list_display = ('__unicode__' if six.PY2 else '__str__', 'event', 'user', 'paid') list_filter = ('paid',) diff --git a/cof/autocomplete_light_registry.py b/cof/autocomplete_light_registry.py deleted file mode 100644 index 4c62d995..00000000 --- a/cof/autocomplete_light_registry.py +++ /dev/null @@ -1,10 +0,0 @@ -# -*- coding: utf-8 -*- - -import autocomplete_light - -from django.contrib.auth.models import User - -autocomplete_light.register( - User, search_fields=('username', 'first_name', 'last_name'), - attrs={'placeholder': 'membre...'} -) diff --git a/cof/urls.py b/cof/urls.py index ca310382..52826f29 100644 --- a/cof/urls.py +++ b/cof/urls.py @@ -47,9 +47,8 @@ events_patterns = [ ] calendar_patterns = [ - url(r'^subscription$', 'cof.views.calendar'), - url(r'^(?P[a-z0-9-]+)/calendar.ics$', - 'cof.views.calendar_ics') + url(r'^subscription$', views.calendar), + url(r'^(?P[a-z0-9-]+)/calendar.ics$', views.calendar_ics) ] clubs_patterns = [ diff --git a/gestioCOF/urls.py b/gestioCOF/urls.py index ec531778..1df71648 100644 --- a/gestioCOF/urls.py +++ b/gestioCOF/urls.py @@ -4,8 +4,6 @@ Fichier principal de configuration des urls du projet GestioCOF """ -import autocomplete_light - from django.conf import settings from django.conf.urls import include, url from django.conf.urls.static import static @@ -20,7 +18,6 @@ from cof.autocomplete import autocomplete from gestion import views as gestion_views -autocomplete_light.autodiscover() admin.autodiscover() urlpatterns = [ From 69f748acbd1e7b1f2947494f3d86bc1b7f7ba8b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Thu, 23 Feb 2017 00:43:23 +0100 Subject: [PATCH 5/7] Django1.11-style MiddleWares The design of middlewares has changed in Django 1.11 --- gestioCOF/settings_dev.py | 6 +++--- kfet/middleware.py | 17 ++++++++--------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/gestioCOF/settings_dev.py b/gestioCOF/settings_dev.py index feacba52..3f5ac2d2 100644 --- a/gestioCOF/settings_dev.py +++ b/gestioCOF/settings_dev.py @@ -50,18 +50,18 @@ INSTALLED_APPS = ( 'kfet.apps.KFetConfig', ) -MIDDLEWARE_CLASSES = ( +MIDDLEWARE = [ 'debug_toolbar.middleware.DebugToolbarMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', - 'kfet.middleware.KFetAuthenticationMiddleware', + 'kfet.middleware.kfet_auth_middleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', -) +] ROOT_URLCONF = 'gestioCOF.urls' diff --git a/kfet/middleware.py b/kfet/middleware.py index dbb192c6..02d3d2f4 100644 --- a/kfet/middleware.py +++ b/kfet/middleware.py @@ -1,17 +1,16 @@ # -*- coding: utf-8 -*- -from __future__ import (absolute_import, division, - print_function, unicode_literals) -from builtins import * - -from django.http import HttpResponseForbidden from kfet.backends import KFetBackend -from kfet.models import Account -class KFetAuthenticationMiddleware(object): - def process_request(self, request): - kfet_backend = KFetBackend() + +def kfet_auth_middleware(get_response): + kfet_backend = KFetBackend() + + def middleware(request): temp_request_user = kfet_backend.authenticate(request) if temp_request_user: request.real_user = request.user request.user = temp_request_user + return get_response(request) + + return middleware From 6bf16441e6160557dbc9ab52b82402517a0ea4ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Thu, 23 Feb 2017 00:52:31 +0100 Subject: [PATCH 6/7] Drop old context processors Some context processors disappear in Django 1.11, we have to drop them --- gestioCOF/settings_dev.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/gestioCOF/settings_dev.py b/gestioCOF/settings_dev.py index 3f5ac2d2..43e7f5b0 100644 --- a/gestioCOF/settings_dev.py +++ b/gestioCOF/settings_dev.py @@ -76,9 +76,6 @@ TEMPLATES = [ 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', - 'django.core.context_processors.i18n', - 'django.core.context_processors.media', - 'django.core.context_processors.static', 'gestion.context_processors.context_processor', 'kfet.context_processors.auth', ], From 3f52af8ca01ee1744a0168c23b0ec16352010f28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Thu, 23 Feb 2017 01:24:28 +0100 Subject: [PATCH 7/7] Upgrade requirements - Upgrade some dependencies - We do not specify the version for some packages: we use them in a very simple way so we may not be affected by upgrades. --- requirements.txt | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/requirements.txt b/requirements.txt index b6debf1c..8da5f3ea 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,17 +2,17 @@ configparser==3.5.0 Django==1.11b1 django-autocomplete-light==2.3.3 django-autoslug==1.9.3 -django-cas-ng==3.5.5 -django-recaptcha==1.0.5 -mysqlclient==1.3.7 -Pillow==3.3.0 -six==1.10.0 -unicodecsv==0.14.1 -icalendar==3.10 +django-cas-ng==3.5.6 +django-recaptcha==1.2.1 +mysqlclient==1.3.10 +Pillow +six +unicodecsv +icalendar django-bootstrap-form==3.2.1 -asgiref==0.14.0 -daphne==0.14.3 -asgi-redis==0.14.0 +asgiref==1.0.0 +daphne==1.0.3 +asgi-redis==1.0.0 statistics==1.0.3.5 future==0.15.2 django-widget-tweaks==1.4.1