Set default archive filter to False in CaseCollectionFilter
This commit is contained in:
@@ -21,6 +21,7 @@ from .models import (
|
|||||||
)
|
)
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
|
from django.http import QueryDict
|
||||||
|
|
||||||
|
|
||||||
def get_authors(request):
|
def get_authors(request):
|
||||||
@@ -85,6 +86,22 @@ class CaseCollectionFilter(django_filters.FilterSet):
|
|||||||
user=None,
|
user=None,
|
||||||
request=None,
|
request=None,
|
||||||
):
|
):
|
||||||
|
# Default the archive filter to False when not provided so collections
|
||||||
|
# are not archived by default in listings.
|
||||||
|
if data is None:
|
||||||
|
data = QueryDict('', mutable=True)
|
||||||
|
data['archive'] = 'false'
|
||||||
|
else:
|
||||||
|
# QueryDict instances need to be copied to be mutable
|
||||||
|
try:
|
||||||
|
if 'archive' not in data:
|
||||||
|
data = data.copy()
|
||||||
|
data['archive'] = 'false'
|
||||||
|
except Exception:
|
||||||
|
# Fallback for non-QueryDict mappings
|
||||||
|
if isinstance(data, dict) and 'archive' not in data:
|
||||||
|
data = dict(data)
|
||||||
|
data['archive'] = 'false'
|
||||||
if not request.user.groups.filter(name="atlas_editor").exists():
|
if not request.user.groups.filter(name="atlas_editor").exists():
|
||||||
queryset = queryset.prefetch_related("author").filter(
|
queryset = queryset.prefetch_related("author").filter(
|
||||||
author__id=request.user.id
|
author__id=request.user.id
|
||||||
|
|||||||
Reference in New Issue
Block a user