Merge branch 'django110'

This commit is contained in:
Raphael Michel
2016-10-03 10:31:49 +02:00
26 changed files with 130 additions and 116 deletions

View File

@@ -6,6 +6,7 @@ from django.core.urlresolvers import get_script_prefix
from django.http import HttpRequest, HttpResponse
from django.utils import timezone, translation
from django.utils.cache import patch_vary_headers
from django.utils.deprecation import MiddlewareMixin
from django.utils.translation import LANGUAGE_SESSION_KEY
from django.utils.translation.trans_real import (
check_for_language, get_supported_language_variant, language_code_re,
@@ -15,7 +16,7 @@ from django.utils.translation.trans_real import (
_supported = None
class LocaleMiddleware:
class LocaleMiddleware(MiddlewareMixin):
"""
This middleware sets the correct locale and timezone
@@ -42,7 +43,7 @@ class LocaleMiddleware:
request.LANGUAGE_CODE = translation.get_language()
tzname = None
if request.user.is_authenticated():
if request.user.is_authenticated:
tzname = request.user.timezone
if hasattr(request, 'event'):
tzname = request.event.settings.timezone
@@ -64,7 +65,7 @@ class LocaleMiddleware:
def get_language_from_user_settings(request: HttpRequest) -> str:
if request.user.is_authenticated():
if request.user.is_authenticated:
lang_code = request.user.locale
if lang_code in _supported and lang_code is not None and check_for_language(lang_code):
return lang_code
@@ -134,7 +135,7 @@ def get_language_from_request(request: HttpRequest) -> str:
)
class SecurityMiddleware:
class SecurityMiddleware(MiddlewareMixin):
def _parse_csp(self, header):
h = {}

View File

@@ -5,13 +5,14 @@ from django.contrib.auth import REDIRECT_FIELD_NAME
from django.core.urlresolvers import get_script_prefix, resolve
from django.http import Http404
from django.shortcuts import redirect, resolve_url
from django.utils.deprecation import MiddlewareMixin
from django.utils.encoding import force_str
from django.utils.translation import ugettext as _
from pretix.base.models import Event, EventPermission, Organizer
class PermissionMiddleware:
class PermissionMiddleware(MiddlewareMixin):
"""
This middleware enforces all requests to the control app to require login.
Additionally, it enforces all requests to "control:event." URLs
@@ -36,7 +37,7 @@ class PermissionMiddleware:
return redirect(urljoin(settings.SITE_URL, request.get_full_path()))
if url_name in self.EXCEPTIONS:
return
if not request.user.is_authenticated():
if not request.user.is_authenticated:
# Taken from django/contrib/auth/decorators.py
path = request.build_absolute_uri()
# urlparse chokes on lazy objects in Python 3, force to str

View File

@@ -11,7 +11,7 @@ def event_permission_required(permission):
"""
def decorator(function):
def wrapper(request, *args, **kw):
if not request.user.is_authenticated(): # NOQA
if not request.user.is_authenticated: # NOQA
# just a double check, should not ever happen
raise PermissionDenied()
try:
@@ -55,7 +55,7 @@ def organizer_permission_required(permission):
"""
def decorator(function):
def wrapper(request, *args, **kw):
if not request.user.is_authenticated(): # NOQA
if not request.user.is_authenticated: # NOQA
# just a double check, should not ever happen
raise PermissionDenied()
try:

View File

@@ -24,7 +24,7 @@ def login(request):
parameter "next" for redirection after successful login
"""
ctx = {}
if request.user.is_authenticated():
if request.user.is_authenticated:
return redirect(request.GET.get("next", 'control:index'))
if request.method == 'POST':
form = LoginForm(data=request.POST)
@@ -56,7 +56,7 @@ def register(request):
if not settings.PRETIX_REGISTRATION:
raise PermissionDenied('Registration is disabled')
ctx = {}
if request.user.is_authenticated():
if request.user.is_authenticated:
return redirect(request.GET.get("next", 'control:index'))
if request.method == 'POST':
form = RegistrationForm(data=request.POST)
@@ -85,7 +85,7 @@ class Forgot(TemplateView):
return super().dispatch(request, *args, **kwargs)
def get(self, request, *args, **kwargs):
if request.user.is_authenticated():
if request.user.is_authenticated:
return redirect(request.GET.get("next", 'control:index'))
return super().get(request, *args, **kwargs)
@@ -149,7 +149,7 @@ class Recover(TemplateView):
return super().dispatch(request, *args, **kwargs)
def get(self, request, *args, **kwargs):
if request.user.is_authenticated():
if request.user.is_authenticated:
return redirect(request.GET.get("next", 'control:index'))
try:
user = User.objects.get(id=self.request.GET.get('id'))

View File

@@ -394,7 +394,8 @@ class QuestionView(EventPermissionRequiredMixin, QuestionMixin, ChartContainingV
if self.request.GET.get("status", "") != "":
s = self.request.GET.get("status", "")
if s == 'o':
qs = qs.filter(orderposition__order__status=Order.STATUS_PENDING, expires__lt=now().date())
qs = qs.filter(orderposition__order__status=Order.STATUS_PENDING,
expires__lt=now().replace(hour=0, minute=0, second=0))
elif s == 'ne':
qs = qs.filter(orderposition__order__status__in=[Order.STATUS_PENDING, Order.STATUS_EXPIRED])
else:

View File

@@ -59,7 +59,7 @@ class OrderList(EventPermissionRequiredMixin, ListView):
if self.request.GET.get("status", "") != "":
s = self.request.GET.get("status", "")
if s == 'o':
qs = qs.filter(status=Order.STATUS_PENDING, expires__lt=now().date())
qs = qs.filter(status=Order.STATUS_PENDING, expires__lt=now().replace(hour=0, minute=0, second=0))
elif s == 'ne':
qs = qs.filter(status__in=[Order.STATUS_PENDING, Order.STATUS_EXPIRED])
else:

View File

@@ -0,0 +1,6 @@
from debug_toolbar.middleware import DebugToolbarMiddleware
from django.utils.deprecation import MiddlewareMixin
class DebugMiddlewareCompatibilityShim(MiddlewareMixin, DebugToolbarMiddleware):
pass

View File

@@ -11,11 +11,11 @@ from pretix.presale.urls import (
from pretix.urls import common_patterns
presale_patterns_main = [
url(r'', include(locale_patterns + [
url(r'', include((locale_patterns + [
url(r'^(?P<organizer>[^/]+)/(?P<event>[^/]+)/', include(event_patterns)),
url(r'^(?P<organizer>[^/]+)/', include(organizer_patterns)),
url(r'^$', TemplateView.as_view(template_name='pretixpresale/index.html'))
], namespace='presale'))
], 'presale')))
]
raw_plugin_patterns = []
@@ -30,7 +30,7 @@ for app in apps.get_app_configs():
single_plugin_patterns.append(url(r'^(?P<organizer>[^/]+)/(?P<event>[^/]+)/',
include(urlmod.event_patterns)))
raw_plugin_patterns.append(
url(r'', include(single_plugin_patterns, namespace=app.label))
url(r'', include((single_plugin_patterns, app.label)))
)
elif importlib.util.find_spec(app.name + '.maindomain_urls'): # noqa
warnings.warn('Please put your config in an \'urls\' module using the urlpatterns and event_patterns '
@@ -38,11 +38,11 @@ for app in apps.get_app_configs():
DeprecationWarning)
urlmod = importlib.import_module(app.name + '.maindomain_urls')
raw_plugin_patterns.append(
url(r'', include(urlmod, namespace=app.label))
url(r'', include((urlmod, app.label)))
)
plugin_patterns = [
url(r'', include(raw_plugin_patterns, namespace='plugins'))
url(r'', include((raw_plugin_patterns, 'plugins')))
]
# The presale namespace comes last, because it contains a wildcard catch

View File

@@ -9,6 +9,7 @@ from django.core.urlresolvers import set_urlconf
from django.http.request import split_domain_port
from django.middleware.csrf import CsrfViewMiddleware as BaseCsrfMiddleware
from django.utils.cache import patch_vary_headers
from django.utils.deprecation import MiddlewareMixin
from django.utils.http import cookie_date
from pretix.multidomain.models import KnownDomain
@@ -16,7 +17,7 @@ from pretix.multidomain.models import KnownDomain
LOCAL_HOST_NAMES = ('testserver', 'localhost')
class MultiDomainMiddleware:
class MultiDomainMiddleware(MiddlewareMixin):
def process_request(self, request):
# We try three options, in order of decreasing preference.
if settings.USE_X_FORWARDED_HOST and ('HTTP_X_FORWARDED_HOST' in request.META):

View File

@@ -10,10 +10,10 @@ from pretix.presale.urls import (
from pretix.urls import common_patterns
presale_patterns = [
url(r'', include(locale_patterns + [
url(r'', include((locale_patterns + [
url(r'^(?P<event>[^/]+)/', include(event_patterns)),
url(r'', include(organizer_patterns))
], namespace='presale'))
], 'presale')))
]
raw_plugin_patterns = []
@@ -23,7 +23,7 @@ for app in apps.get_app_configs():
urlmod = importlib.import_module(app.name + '.urls')
if hasattr(urlmod, 'event_patterns'):
raw_plugin_patterns.append(
url(r'^(?P<event>[^/]+)/', include(urlmod.event_patterns, namespace=app.label))
url(r'^(?P<event>[^/]+)/', include((urlmod.event_patterns, app.label)))
)
elif importlib.util.find_spec(app.name + '.subdomain_urls'): # noqa
warnings.warn('Please put your config in an \'urls\' module using the event_patterns '
@@ -31,11 +31,11 @@ for app in apps.get_app_configs():
DeprecationWarning)
urlmod = importlib.import_module(app.name + '.subdomain_urls')
raw_plugin_patterns.append(
url(r'', include(urlmod, namespace=app.label))
url(r'', include((urlmod, app.label)))
)
plugin_patterns = [
url(r'', include(raw_plugin_patterns, namespace='plugins'))
url(r'', include((raw_plugin_patterns, 'plugins')))
]
# The presale namespace comes last, because it contains a wildcard catch

View File

@@ -1,11 +1,12 @@
from django.core.urlresolvers import resolve
from django.utils.deprecation import MiddlewareMixin
from pretix.presale.signals import process_response
from .utils import _detect_event
class EventMiddleware:
class EventMiddleware(MiddlewareMixin):
def process_request(self, request):
url = resolve(request.path_info)
request._namespace = url.namespace

View File

@@ -60,7 +60,7 @@ def _detect_event(request):
LocaleMiddleware().process_request(request)
if not request.event.live:
if not request.user.is_authenticated() or not EventPermission.objects.filter(
if not request.user.is_authenticated or not EventPermission.objects.filter(
event=request.event, user=request.user).exists():
raise PermissionDenied(_('The selected ticket shop is currently not available.'))

View File

@@ -15,7 +15,7 @@ class LocaleSet(View):
locale = request.GET.get('locale')
if locale in [lc for lc, ll in settings.LANGUAGES]:
if request.user.is_authenticated():
if request.user.is_authenticated:
request.user.locale = locale
request.user.save()

View File

@@ -193,7 +193,7 @@ CORE_MODULES = {
("pretix", "control")
}
MIDDLEWARE_CLASSES = [
MIDDLEWARE = [
'pretix.multidomain.middlewares.MultiDomainMiddleware',
'pretix.multidomain.middlewares.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
@@ -212,7 +212,7 @@ try:
import debug_toolbar # noqa
if DEBUG:
INSTALLED_APPS.append('debug_toolbar.apps.DebugToolbarConfig')
MIDDLEWARE_CLASSES.append('debug_toolbar.middleware.DebugToolbarMiddleware')
MIDDLEWARE.append('pretix.helpers.debug.DebugMiddlewareCompatibilityShim')
except ImportError:
pass

View File

@@ -16,7 +16,7 @@ base_patterns = [
]
control_patterns = [
url(r'^control/', include(pretix.control.urls, namespace='control')),
url(r'^control/', include((pretix.control.urls, 'control'))),
]
debug_patterns = []