diff --git a/facilities/filters/facility_filters.py b/facilities/filters/facility_filters.py index ee8afbbf..84ca4517 100755 --- a/facilities/filters/facility_filters.py +++ b/facilities/filters/facility_filters.py @@ -401,6 +401,15 @@ def filter_approved_facilities(self, qs, name, value): return qs.filter(Q(approved=True)) else: return qs.filter(Q(approved=None) | Q(rejected=True)) + + def filter_facilities_with_pending_updates(self, qs, name, value): + + if value in TRUTH_NESS: + facilities_pending_updates = qs.filter(has_edits=True) + + facilities_latest_updates_ids = [f.id for f in facilities_pending_updates if f.latest_update is None] + + return facilities_pending_updates.exclude(id__in=facilities_latest_updates_ids) def filter_unpublished_facilities_national_level(self, qs, name, value): """ @@ -561,6 +570,8 @@ def filter_number_cots(self, qs, name, value): method='filter_incomplete_facilities') to_publish = django_filters.CharFilter( method='filter_unpublished_facilities_national_level') + have_updates = django_filters.CharFilter( + method='filter_facilities_with_pending_updates') approved_national_level = django_filters.TypedChoiceFilter( choices=BOOLEAN_CHOICES, coerce=strtobool)