Set default archive filter to False in CaseCollectionFilter

This commit is contained in:
Ross
2026-02-09 11:06:39 +00:00
parent ea139456a8
commit e7de6c8970
+17
View File
@@ -21,6 +21,7 @@ from .models import (
)
from django.contrib.auth.models import User
from django.db.models import Q
from django.http import QueryDict
def get_authors(request):
@@ -85,6 +86,22 @@ class CaseCollectionFilter(django_filters.FilterSet):
user=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():
queryset = queryset.prefetch_related("author").filter(
author__id=request.user.id