summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStevan Radaković <stevan.radakovic@linaro.org>2015-11-17 17:42:51 +0100
committerStevan Radaković <stevan.radakovic@linaro.org>2015-11-17 17:44:24 +0100
commiteb51f4dccc888264955bf2064cadc7c7d02b3617 (patch)
tree16630daa815d01adce1cf758007be71d748de101
parent805c429ad676aaeafbafeb90113ec67f2f20e631 (diff)
Add django1.6 support for custom QuerySets.
django 1.6 does not support from_queryset method which was extensively used for new query_app. Also, QuerySet object has changed locations between django 1.6 and 1.7. See card https://projects.linaro.org/browse/LAVA-387 Change-Id: I68b3750b7c903f573a8d20d36b94a5ee97735b23
-rw-r--r--django_restricted_resource/managers.py43
1 files changed, 40 insertions, 3 deletions
diff --git a/django_restricted_resource/managers.py b/django_restricted_resource/managers.py
index 96c1295..d7b3363 100644
--- a/django_restricted_resource/managers.py
+++ b/django_restricted_resource/managers.py
@@ -20,6 +20,8 @@
Module with model manager for RestrictedResource
"""
+import django
+
from django.contrib.auth.models import (User, AnonymousUser, Group)
from django.db.models import Q
from django.db import models
@@ -27,7 +29,13 @@ from django.db import models
from django_restricted_resource.utils import filter_bogus_users
-class RestrictedResourceQuerySet(models.QuerySet):
+if django.VERSION < (1, 7):
+ QuerySet = models.query.QuerySet
+else:
+ QuerySet = models.QuerySet
+
+
+class RestrictedResourceQuerySet(QuerySet):
"""
Model manager for RestrictedResource and subclasses that has
additional methods.
@@ -116,6 +124,35 @@ class RestrictedResourceQuerySet(models.QuerySet):
assert group is not None
return self.filter(group=group)
+if django.VERSION >= (1, 7):
+
+ RestrictedResourceManager = models.Manager.from_queryset(
+ RestrictedResourceQuerySet)
+
+else:
+ # TODO: Remove once the support for django 1.6 has been dropped.
+
+ class RestrictedResourceManager(models.Manager):
+ def get_query_set(self):
+ return RestrictedResourceQuerySet(self.model, using=self._db)
+
+ def owned_by_principal(self, principal):
+ return self.get_query_set().owned_by_principal(principal)
+
+ def accessible_by_principal(self, principal):
+ return self.get_query_set().accessible_by_principal(principal)
+
+ def accessible_by_anyone(self):
+ return self.get_query_set().accessible_by_anyone()
+
+ def _accessible_by_user(self, user):
+ return self.get_query_set()._accessible_by_user(user)
+
+ def _accessible_by_group(self, group):
+ return self.get_query_set()._accessible_by_group(group)
+
+ def _owned_by_user(self, user):
+ return self.get_query_set()._owned_by_user(user)
-RestrictedResourceManager = models.Manager.from_queryset(
- RestrictedResourceQuerySet)
+ def _owned_by_group(self, group):
+ return self.get_query_set()._owned_by_group(group)