diff --git a/chrono/urls_utils.py b/chrono/urls_utils.py index c02d6563..b4f38b2f 100644 --- a/chrono/urls_utils.py +++ b/chrono/urls_utils.py @@ -16,42 +16,37 @@ # Decorating URL includes, +import django + from django.contrib.auth.decorators import user_passes_test from django.core.exceptions import PermissionDenied -from django.core.urlresolvers import RegexURLPattern, RegexURLResolver from django.db.models import Q from .agendas.models import Agenda +if django.VERSION < (2, 0, 0): + from django.urls.resolvers import RegexURLPattern as URLPattern +else: + from django.urls.resolvers import URLPattern -class DecoratedURLPattern(RegexURLPattern): + +class DecoratedURLPattern(URLPattern): def resolve(self, *args, **kwargs): result = super(DecoratedURLPattern, self).resolve(*args, **kwargs) if result: result.func = self._decorate_with(result.func) return result -class DecoratedRegexURLResolver(RegexURLResolver): - def resolve(self, *args, **kwargs): - result = super(DecoratedRegexURLResolver, self).resolve(*args, **kwargs) - if result: - result.func = self._decorate_with(result.func) - return result - def decorated_includes(func, includes, *args, **kwargs): urlconf_module, app_name, namespace = includes for item in urlconf_module: - if isinstance(item, RegexURLPattern): - item.__class__ = DecoratedURLPattern - item._decorate_with = func - - elif isinstance(item, RegexURLResolver): - item.__class__ = DecoratedRegexURLResolver - item._decorate_with = func + item.__class__ = DecoratedURLPattern + item._decorate_with = func return urlconf_module, app_name, namespace + def manager_required(function=None, login_url=None): def check_manager(user): if user and user.is_staff: