Enhance case search functionality: exclude cases already in the collection from search results to prevent duplication

This commit is contained in:
Ross
2025-11-16 23:28:23 +00:00
parent 712ecec25d
commit b47bb141e8
+11 -1
View File
@@ -1229,7 +1229,17 @@ def case_search(request):
# Exclude recent cases from the main search results to avoid duplication
recent_pks = [c.pk for c in recent_cases]
cases = qs.exclude(pk__in=recent_pks).order_by("title")[:30]
# Build the base queryset for results, apply excludes first (before slicing)
cases_qs = qs.exclude(pk__in=recent_pks)
# Also exclude any cases that are already present in the collection
if collection is not None:
existing_pks = list(collection.cases.values_list("pk", flat=True))
if existing_pks:
cases_qs = cases_qs.exclude(pk__in=existing_pks)
cases = cases_qs.order_by("title")[:30]
return render(
request,