diff --git a/atlas/filters.py b/atlas/filters.py index 104d0341..a873bbd2 100755 --- a/atlas/filters.py +++ b/atlas/filters.py @@ -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