Skip to content

Commit

Permalink
Merge pull request #24 from maykinmedia/feature/23-partial-filters
Browse files Browse the repository at this point in the history
[#23] Support partial filters
  • Loading branch information
SilviaAmAm authored May 15, 2024
2 parents 9137237 + 989f817 commit f937b93
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 32 deletions.
64 changes: 32 additions & 32 deletions backend/src/openarchiefbeheer/zaken/api/filtersets.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,48 +52,48 @@ class ZaakFilter(FilterSet):
class Meta:
model = Zaak
fields = {
"uuid": ["exact"],
"url": ["exact"],
"status": ["exact"],
"uuid": ["exact", "icontains"],
"url": ["exact", "icontains"],
"status": ["exact", "icontains"],
"einddatum": ["exact", "gt", "lt", "isnull"],
"hoofdzaak": ["exact"],
"hoofdzaak": ["exact", "icontains"],
"startdatum": ["exact", "gt", "lt", "gte", "lte"],
"toelichting": ["exact"],
"omschrijving": ["exact"],
"archiefstatus": ["exact", "in"],
"identificatie": ["exact"],
"bronorganisatie": ["exact", "in"],
"publicatiedatum": ["exact"],
"archiefnominatie": ["exact", "in"],
"toelichting": ["exact", "icontains"],
"omschrijving": ["exact", "icontains"],
"archiefstatus": ["exact", "in", "icontains"],
"identificatie": ["exact", "icontains"],
"bronorganisatie": ["exact", "in", "icontains"],
"publicatiedatum": ["exact", "icontains"],
"archiefnominatie": ["exact", "in", "icontains"],
"einddatum_gepland": ["exact", "gt", "lt"],
"registratiedatum": ["exact", "gt", "lt"],
"archiefactiedatum": ["exact", "gt", "lt", "isnull"],
"processobjectaard": ["exact"],
"betalingsindicatie": ["exact"],
"communicatiekanaal": ["exact"],
"laatste_betaaldatum": ["exact"],
"selectielijstklasse": ["exact"],
"startdatum_bewaartermijn": ["exact"],
"betalingsindicatie_weergave": ["exact"],
"opdrachtgevende_organisatie": ["exact"],
"vertrouwelijkheidaanduiding": ["exact"],
"processobjectaard": ["exact", "icontains"],
"betalingsindicatie": ["exact", "icontains"],
"communicatiekanaal": ["exact", "icontains"],
"laatste_betaaldatum": ["exact", "icontains"],
"selectielijstklasse": ["exact", "icontains"],
"startdatum_bewaartermijn": ["exact", "icontains"],
"betalingsindicatie_weergave": ["exact", "icontains"],
"opdrachtgevende_organisatie": ["exact", "icontains"],
"vertrouwelijkheidaanduiding": ["exact", "icontains"],
"uiterlijke_einddatum_afdoening": ["exact", "gt", "lt"],
"verantwoordelijke_organisatie": ["exact"],
"verantwoordelijke_organisatie": ["exact", "icontains"],
# TODO Decide what to do with these fields and if/how we want to filter them
# # Array Fields
# "rollen": ["exact"],
# "deelzaken": ["exact"],
# "zaakobjecten": ["exact"],
# "eigenschappen": ["exact"],
# "producten_of_diensten": ["exact"],
# "zaakinformatieobjecten": ["exact"],
# "rollen": ["exact", "icontains"],
# "deelzaken": ["exact", "icontains"],
# "zaakobjecten": ["exact", "icontains"],
# "eigenschappen": ["exact", "icontains"],
# "producten_of_diensten": ["exact", "icontains"],
# "zaakinformatieobjecten": ["exact", "icontains"],
# # JSON Fields
# "kenmerken": ["exact"],
# "verlenging": ["exact"],
# "opschorting": ["exact"],
# "processobject": ["exact"],
# "kenmerken": ["exact", "icontains"],
# "verlenging": ["exact", "icontains"],
# "opschorting": ["exact", "icontains"],
# "processobject": ["exact", "icontains"],
# # Geometry Field
# "zaakgeometrie": ["exact"],
# "zaakgeometrie": ["exact", "icontains"],
}

def filter_not_in_destruction_list(
Expand Down
17 changes: 17 additions & 0 deletions backend/src/openarchiefbeheer/zaken/tests/test_viewsets.py
Original file line number Diff line number Diff line change
Expand Up @@ -235,3 +235,20 @@ def test_filter_heeft_relaties(self):

self.assertIn(str(no_relations_zaken[0].uuid), uuids)
self.assertIn(str(no_relations_zaken[1].uuid), uuids)

def test_partial_filter(self):
ZaakFactory.create(identificatie="ZAAK-ABCDEF-01")
ZaakFactory.create(identificatie="ZAAK-ABC-02")
ZaakFactory.create(identificatie="ZAAK-BCDEF-02")

user = UserFactory(username="record_manager", role__can_start_destruction=True)

endpoint = furl(reverse("api:zaken-list"))
endpoint.args["identificatie__icontains"] = "ABC"

self.client.force_authenticate(user)
response = self.client.get(endpoint.url)
data = response.json()

self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(data["count"], 2)

0 comments on commit f937b93

Please sign in to comment.