From 7428af178868a3b3a3241599bc7874b82b9a1f36 Mon Sep 17 00:00:00 2001 From: Hamza Ahmad Date: Fri, 11 Aug 2023 11:29:23 +0300 Subject: [PATCH 1/2] Removed leases from search which have no decisions --- leasing/viewsets/lease.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/leasing/viewsets/lease.py b/leasing/viewsets/lease.py index 4e946314..71d2ebe0 100644 --- a/leasing/viewsets/lease.py +++ b/leasing/viewsets/lease.py @@ -496,6 +496,9 @@ def get_queryset(self): # noqa: C901 ) ) + # filtering all leases with no decisions + queryset = queryset.filter(decisions__isnull=False) + return queryset.distinct() def get_serializer_class(self): From 5b26d1648d1650b3f613d8e7b9281dfbff6ff48a Mon Sep 17 00:00:00 2001 From: Hamza Ahmad Date: Tue, 22 Aug 2023 14:44:02 +0300 Subject: [PATCH 2/2] fixed failing tests --- leasing/tests/api/test_lease_search.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/leasing/tests/api/test_lease_search.py b/leasing/tests/api/test_lease_search.py index 8d1edc03..14e05e1c 100644 --- a/leasing/tests/api/test_lease_search.py +++ b/leasing/tests/api/test_lease_search.py @@ -6,11 +6,12 @@ @pytest.mark.parametrize("value", ["A1128-1", " A1128-1", "A1128-1 ", " A1128-1 "]) @pytest.mark.parametrize("param_name", ["search", "identifier"]) def test_search_finds_one_lease_by_full_identifier( - django_db_setup, admin_client, lease_factory, value, param_name + django_db_setup, admin_client, lease_factory, decision_factory, value, param_name ): lease = lease_factory( type_id=1, municipality_id=1, district_id=29, notice_period_id=1 ) + decision_factory(lease_id=lease.id) lease_factory(type_id=1, municipality_id=1, district_id=1, notice_period_id=1) response = admin_client.get(reverse("lease-list"), data={param_name: value}) @@ -24,11 +25,12 @@ def test_search_finds_one_lease_by_full_identifier( @pytest.mark.django_db @pytest.mark.parametrize("param_name", ["search", "identifier"]) def test_search_finds_one_lease_by_full_identifier_where_type_has_two_letters( - django_db_setup, admin_client, lease_factory, param_name + django_db_setup, admin_client, lease_factory, decision_factory, param_name ): lease = lease_factory( type_id=33, municipality_id=1, district_id=1, notice_period_id=1 ) + decision_factory(lease_id=lease.id) lease_factory(type_id=33, municipality_id=1, district_id=2, notice_period_id=1) response = admin_client.get(reverse("lease-list"), data={param_name: "MA100-1"})