diff options
author | Stephen Finucane <stephen@that.guru> | 2017-05-18 21:17:46 +0100 |
---|---|---|
committer | Stephen Finucane <stephen@that.guru> | 2017-05-18 21:17:46 +0100 |
commit | ac4b3b87144189882611ad3d19b836247a0406bb (patch) | |
tree | 67c2beca506a321e7f66604856cd9d8384956fb1 | |
parent | 1399596de4b10a00c23d6ef3080f224fb99aba04 (diff) | |
download | patchwork-ac4b3b87144189882611ad3d19b836247a0406bb.tar patchwork-ac4b3b87144189882611ad3d19b836247a0406bb.tar.gz |
compat: Handle is_authenticated move to property
This raises a warning in Django 1.10 and will cause an error in 2.0.
This resolves all issues with Django 1.9.
Signed-off-by: Stephen Finucane <stephen@that.guru>
-rw-r--r-- | patchwork/api/bundle.py | 3 | ||||
-rw-r--r-- | patchwork/compat.py | 14 | ||||
-rw-r--r-- | patchwork/models.py | 5 | ||||
-rw-r--r-- | patchwork/paginator.py | 4 | ||||
-rw-r--r-- | patchwork/views/__init__.py | 3 | ||||
-rw-r--r-- | patchwork/views/patch.py | 5 |
6 files changed, 27 insertions, 7 deletions
diff --git a/patchwork/api/bundle.py b/patchwork/api/bundle.py index 5fa79b8..88d74a5 100644 --- a/patchwork/api/bundle.py +++ b/patchwork/api/bundle.py @@ -25,6 +25,7 @@ from rest_framework.serializers import SerializerMethodField from patchwork.api.base import PatchworkPermission from patchwork.api.filters import BundleFilter +from patchwork.compat import is_authenticated from patchwork.models import Bundle @@ -55,7 +56,7 @@ class BundleMixin(object): serializer_class = BundleSerializer def get_queryset(self): - if not self.request.user.is_anonymous(): + if is_authenticated(self.request.user): bundle_filter = Q(owner=self.request.user) | Q(public=True) else: bundle_filter = Q(public=True) diff --git a/patchwork/compat.py b/patchwork/compat.py index cd4da4c..38a844d 100644 --- a/patchwork/compat.py +++ b/patchwork/compat.py @@ -89,3 +89,17 @@ if django.VERSION >= (1, 10): else: from django.core.urlresolvers import NoReverseMatch # noqa from django.core.urlresolvers import reverse # noqa + + +# is_authenticated +# +# models.User.is_authenticated is now an attribute in Django 1.10 instead of a +# function +# +# https://docs.djangoproject.com/en/dev/releases/1.10/ + +def is_authenticated(user): + if django.VERSION >= (1, 10): + return user.is_authenticated + else: + return user.is_authenticated() diff --git a/patchwork/models.py b/patchwork/models.py index 725d0b0..bb8398b 100644 --- a/patchwork/models.py +++ b/patchwork/models.py @@ -33,6 +33,7 @@ from django.db import models from django.utils.encoding import python_2_unicode_compatible from django.utils.functional import cached_property +from patchwork.compat import is_authenticated from patchwork.fields import HashField from patchwork.hasher import hash_diff @@ -81,7 +82,7 @@ class Project(models.Model): use_tags = models.BooleanField(default=True) def is_editable(self, user): - if not user.is_authenticated(): + if not is_authenticated(user): return False return self in user.profile.maintainer_projects.all() @@ -423,7 +424,7 @@ class Patch(SeriesMixin, Submission): self.refresh_tag_counts() def is_editable(self, user): - if not user.is_authenticated(): + if not is_authenticated(user): return False if user in [self.submitter.user, self.delegate]: diff --git a/patchwork/paginator.py b/patchwork/paginator.py index 526a328..609e908 100644 --- a/patchwork/paginator.py +++ b/patchwork/paginator.py @@ -22,6 +22,8 @@ from __future__ import absolute_import from django.conf import settings from django.core import paginator +from patchwork.compat import is_authenticated + DEFAULT_ITEMS_PER_PAGE = 100 LONG_PAGE_THRESHOLD = 30 @@ -42,7 +44,7 @@ class Paginator(paginator.Paginator): items_per_page = settings.DEFAULT_ITEMS_PER_PAGE - if request.user.is_authenticated(): + if is_authenticated(request.user): items_per_page = request.user.profile.items_per_page super(Paginator, self).__init__(objects, items_per_page) diff --git a/patchwork/views/__init__.py b/patchwork/views/__init__.py index c884515..3baf299 100644 --- a/patchwork/views/__init__.py +++ b/patchwork/views/__init__.py @@ -20,6 +20,7 @@ from django.contrib import messages from django.shortcuts import get_object_or_404 +from patchwork.compat import is_authenticated from patchwork.filters import Filters from patchwork.forms import MultiplePatchForm from patchwork.models import Bundle @@ -229,7 +230,7 @@ def generic_list(request, project, view, view_args=None, filter_settings=None, user = request.user properties_form = None - if user.is_authenticated(): + if is_authenticated(user): # we only pass the post data to the MultiplePatchForm if that was # the actual form submitted data_tmp = None diff --git a/patchwork/views/patch.py b/patchwork/views/patch.py index 5dafd65..09705ef 100644 --- a/patchwork/views/patch.py +++ b/patchwork/views/patch.py @@ -26,6 +26,7 @@ from django.shortcuts import get_object_or_404 from django.shortcuts import render from patchwork.compat import reverse +from patchwork.compat import is_authenticated from patchwork.forms import CreateBundleForm from patchwork.forms import PatchForm from patchwork.models import Bundle @@ -65,7 +66,7 @@ def patch_detail(request, patch_id): if editable: form = PatchForm(instance=patch) - if request.user.is_authenticated(): + if is_authenticated(request.user): createbundleform = CreateBundleForm() if request.method == 'POST': @@ -106,7 +107,7 @@ def patch_detail(request, patch_id): form.save() messages.success(request, 'Patch updated') - if request.user.is_authenticated(): + if is_authenticated(request.user): context['bundles'] = Bundle.objects.filter(owner=request.user) context['submission'] = patch |