Enhance case search functionality: exclude cases already in the collection from search results to prevent duplication
This commit is contained in:
+11
-1
@@ -1229,7 +1229,17 @@ def case_search(request):
|
|||||||
|
|
||||||
# Exclude recent cases from the main search results to avoid duplication
|
# Exclude recent cases from the main search results to avoid duplication
|
||||||
recent_pks = [c.pk for c in recent_cases]
|
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(
|
return render(
|
||||||
request,
|
request,
|
||||||
|
|||||||
Reference in New Issue
Block a user