|
|
|
|
@ -81,15 +81,11 @@ class ProspectStatusFilter(admin.SimpleListFilter): |
|
|
|
|
if self.value() == Status.NONE: |
|
|
|
|
return queryset.filter(activities__isnull=True) |
|
|
|
|
elif self.value(): |
|
|
|
|
# Get prospects whose most recent activity has the selected status |
|
|
|
|
return queryset.filter( |
|
|
|
|
activities__status=self.value() |
|
|
|
|
).annotate( |
|
|
|
|
latest_activity_date=Max('activities__creation_date') |
|
|
|
|
).filter( |
|
|
|
|
activities__creation_date=F('latest_activity_date'), |
|
|
|
|
activities__status=self.value() |
|
|
|
|
).distinct() |
|
|
|
|
prospects_with_status = [] |
|
|
|
|
for prospect in queryset: |
|
|
|
|
if prospect.current_status() == self.value(): |
|
|
|
|
prospects_with_status.append(prospect.id) |
|
|
|
|
return queryset.filter(id__in=prospects_with_status) |
|
|
|
|
else: |
|
|
|
|
return queryset |
|
|
|
|
|
|
|
|
|
|