Skip to content

Commit

Permalink
Merge pull request #1444 from open-zaak/Gemeente-DenHaag-feature/zake…
Browse files Browse the repository at this point in the history
…n-rol-identificaties-filters

Gemeente den haag feature/zaken rol identificaties filters
  • Loading branch information
annashamray committed Sep 11, 2023
2 parents 36e4a86 + 77d54a2 commit 1513017
Show file tree
Hide file tree
Showing 4 changed files with 336 additions and 1 deletion.
32 changes: 32 additions & 0 deletions src/openzaak/components/zaken/api/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,38 @@ class ZaakFilter(FilterSet):
"zaken.NatuurlijkPersoon", "inp_bsn", "max_length"
),
)
rol__betrokkene_identificatie__natuurlijk_persoon__anp_identificatie = filters.CharFilter(
field_name="rol__natuurlijkpersoon__anp_identificatie",
help_text=get_help_text("zaken.NatuurlijkPersoon", "anp_identificatie"),
max_length=get_field_attribute(
"zaken.NatuurlijkPersoon", "anp_identificatie", "max_length"
),
)
rol__betrokkene_identificatie__natuurlijk_persoon__inp_a_nummer = filters.CharFilter(
field_name="rol__natuurlijkpersoon__inp_a_nummer",
help_text=get_help_text("zaken.NatuurlijkPersoon", "inp_a_nummer"),
max_length=get_field_attribute(
"zaken.NatuurlijkPersoon", "inp_a_nummer", "max_length"
),
)
rol__betrokkene_identificatie__niet_natuurlijk_persoon__inn_nnp_id = filters.CharFilter(
field_name="rol__nietnatuurlijkpersoon__inn_nnp_id",
help_text=get_help_text("zaken.NietNatuurlijkPersoon", "inn_nnp_id"),
)
rol__betrokkene_identificatie__niet_natuurlijk_persoon__ann_identificatie = filters.CharFilter(
field_name="rol__nietnatuurlijkpersoon__ann_identificatie",
help_text=get_help_text("zaken.NietNatuurlijkPersoon", "ann_identificatie"),
max_length=get_field_attribute(
"zaken.NietNatuurlijkPersoon", "ann_identificatie", "max_length"
),
)
rol__betrokkene_identificatie__vestiging__vestigings_nummer = filters.CharFilter(
field_name="rol__vestiging__vestigings_nummer",
help_text=get_help_text("zaken.Vestiging", "vestigings_nummer"),
max_length=get_field_attribute(
"zaken.Vestiging", "vestigings_nummer", "max_length"
),
)
rol__betrokkene_identificatie__medewerker__identificatie = filters.CharFilter(
field_name="rol__medewerker__identificatie",
help_text=get_help_text("zaken.Medewerker", "identificatie"),
Expand Down
65 changes: 65 additions & 0 deletions src/openzaak/components/zaken/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2899,6 +2899,43 @@ paths:
schema:
type: string
maxLength: 9
- name: rol__betrokkeneIdentificatie__natuurlijkPersoon__anpIdentificatie
in: query
description: Het door de gemeente uitgegeven unieke nummer voor een ANDER
NATUURLIJK PERSOON
required: false
schema:
type: string
maxLength: 17
- name: rol__betrokkeneIdentificatie__natuurlijkPersoon__inpA_nummer
in: query
description: Het administratienummer van de persoon, bedoeld in de Wet BRP
required: false
schema:
type: string
maxLength: 10
- name: rol__betrokkeneIdentificatie__nietNatuurlijkPersoon__innNnpId
in: query
description: Het door een kamer toegekend uniek nummer voor de INGESCHREVEN
NIET-NATUURLIJK PERSOON
required: false
schema:
type: string
- name: rol__betrokkeneIdentificatie__nietNatuurlijkPersoon__annIdentificatie
in: query
description: Het door de gemeente uitgegeven unieke nummer voor een ANDER
NIET-NATUURLIJK PERSOON
required: false
schema:
type: string
maxLength: 17
- name: rol__betrokkeneIdentificatie__vestiging__vestigingsNummer
in: query
description: Een korte unieke aanduiding van de Vestiging.
required: false
schema:
type: string
maxLength: 24
- name: rol__betrokkeneIdentificatie__medewerker__identificatie
in: query
description: Een korte unieke aanduiding van de MEDEWERKER.
Expand Down Expand Up @@ -7368,6 +7405,34 @@ components:
algemene bepalingen burgerservicenummer.
type: string
minLength: 1
rol__betrokkeneIdentificatie__natuurlijkPersoon__anpIdentificatie:
title: Rol betrokkeneidentificatie natuurlijkpersoon anpidentificatie
description: Het door de gemeente uitgegeven unieke nummer voor een ANDER
NATUURLIJK PERSOON
type: string
minLength: 1
rol__betrokkeneIdentificatie__natuurlijkPersoon__inpA_nummer:
title: Rol betrokkeneidentificatie natuurlijkpersoon inpa nummer
description: Het administratienummer van de persoon, bedoeld in de Wet BRP
type: string
minLength: 1
rol__betrokkeneIdentificatie__nietNatuurlijkPersoon__innNnpId:
title: Rol betrokkeneidentificatie nietnatuurlijkpersoon innnnpid
description: Het door een kamer toegekend uniek nummer voor de INGESCHREVEN
NIET-NATUURLIJK PERSOON
type: string
minLength: 1
rol__betrokkeneIdentificatie__nietNatuurlijkPersoon__annIdentificatie:
title: Rol betrokkeneidentificatie nietnatuurlijkpersoon annidentificatie
description: Het door de gemeente uitgegeven unieke nummer voor een ANDER
NIET-NATUURLIJK PERSOON
type: string
minLength: 1
rol__betrokkeneIdentificatie__vestiging__vestigingsNummer:
title: Rol betrokkeneidentificatie vestiging vestigingsnummer
description: Een korte unieke aanduiding van de Vestiging.
type: string
minLength: 1
rol__betrokkeneIdentificatie__medewerker__identificatie:
title: Rol betrokkeneidentificatie medewerker identificatie
description: Een korte unieke aanduiding van de MEDEWERKER.
Expand Down
69 changes: 69 additions & 0 deletions src/openzaak/components/zaken/swagger2.0.json
Original file line number Diff line number Diff line change
Expand Up @@ -3915,6 +3915,45 @@
"type": "string",
"maxLength": 9
},
{
"name": "rol__betrokkeneIdentificatie__natuurlijkPersoon__anpIdentificatie",
"in": "query",
"description": "Het door de gemeente uitgegeven unieke nummer voor een ANDER NATUURLIJK PERSOON",
"required": false,
"type": "string",
"maxLength": 17
},
{
"name": "rol__betrokkeneIdentificatie__natuurlijkPersoon__inpA_nummer",
"in": "query",
"description": "Het administratienummer van de persoon, bedoeld in de Wet BRP",
"required": false,
"type": "string",
"maxLength": 10
},
{
"name": "rol__betrokkeneIdentificatie__nietNatuurlijkPersoon__innNnpId",
"in": "query",
"description": "Het door een kamer toegekend uniek nummer voor de INGESCHREVEN NIET-NATUURLIJK PERSOON",
"required": false,
"type": "string"
},
{
"name": "rol__betrokkeneIdentificatie__nietNatuurlijkPersoon__annIdentificatie",
"in": "query",
"description": "Het door de gemeente uitgegeven unieke nummer voor een ANDER NIET-NATUURLIJK PERSOON",
"required": false,
"type": "string",
"maxLength": 17
},
{
"name": "rol__betrokkeneIdentificatie__vestiging__vestigingsNummer",
"in": "query",
"description": "Een korte unieke aanduiding van de Vestiging.",
"required": false,
"type": "string",
"maxLength": 24
},
{
"name": "rol__betrokkeneIdentificatie__medewerker__identificatie",
"in": "query",
Expand Down Expand Up @@ -9063,6 +9102,36 @@
"type": "string",
"minLength": 1
},
"rol__betrokkeneIdentificatie__natuurlijkPersoon__anpIdentificatie": {
"title": "Rol betrokkeneidentificatie natuurlijkpersoon anpidentificatie",
"description": "Het door de gemeente uitgegeven unieke nummer voor een ANDER NATUURLIJK PERSOON",
"type": "string",
"minLength": 1
},
"rol__betrokkeneIdentificatie__natuurlijkPersoon__inpA_nummer": {
"title": "Rol betrokkeneidentificatie natuurlijkpersoon inpa nummer",
"description": "Het administratienummer van de persoon, bedoeld in de Wet BRP",
"type": "string",
"minLength": 1
},
"rol__betrokkeneIdentificatie__nietNatuurlijkPersoon__innNnpId": {
"title": "Rol betrokkeneidentificatie nietnatuurlijkpersoon innnnpid",
"description": "Het door een kamer toegekend uniek nummer voor de INGESCHREVEN NIET-NATUURLIJK PERSOON",
"type": "string",
"minLength": 1
},
"rol__betrokkeneIdentificatie__nietNatuurlijkPersoon__annIdentificatie": {
"title": "Rol betrokkeneidentificatie nietnatuurlijkpersoon annidentificatie",
"description": "Het door de gemeente uitgegeven unieke nummer voor een ANDER NIET-NATUURLIJK PERSOON",
"type": "string",
"minLength": 1
},
"rol__betrokkeneIdentificatie__vestiging__vestigingsNummer": {
"title": "Rol betrokkeneidentificatie vestiging vestigingsnummer",
"description": "Een korte unieke aanduiding van de Vestiging.",
"type": "string",
"minLength": 1
},
"rol__betrokkeneIdentificatie__medewerker__identificatie": {
"title": "Rol betrokkeneidentificatie medewerker identificatie",
"description": "Een korte unieke aanduiding van de MEDEWERKER.",
Expand Down
171 changes: 170 additions & 1 deletion src/openzaak/components/zaken/tests/test_zaken.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,14 @@
SCOPEN_ZAKEN_HEROPENEN,
)
from ..constants import BetalingsIndicatie
from ..models import Medewerker, NatuurlijkPersoon, OrganisatorischeEenheid, Zaak
from ..models import (
Medewerker,
NatuurlijkPersoon,
NietNatuurlijkPersoon,
OrganisatorischeEenheid,
Vestiging,
Zaak,
)
from .constants import POLYGON_AMSTERDAM_CENTRUM
from .factories import ResultaatFactory, RolFactory, StatusFactory, ZaakFactory
from .utils import (
Expand Down Expand Up @@ -575,6 +582,168 @@ def test_correct_zaak_verlenging_when_set(self):
)


class ZakenFilterTests(JWTAuthMixin, APITestCase):
heeft_alle_autorisaties = True

def test_rol_nnp_id(self):
url = reverse(Zaak)
rol = RolFactory.create(
betrokkene_type=RolTypes.niet_natuurlijk_persoon,
omschrijving_generiek=RolOmschrijving.initiator,
)
NietNatuurlijkPersoon.objects.create(rol=rol, inn_nnp_id="129117729")

with self.subTest(expected="no-match"):
response = self.client.get(
url,
{
"rol__betrokkeneIdentificatie__nietNatuurlijkPersoon__innNnpId": "000000000"
},
**ZAAK_READ_KWARGS,
)

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

with self.subTest(expected="match"):
response = self.client.get(
url,
{
"rol__betrokkeneIdentificatie__nietNatuurlijkPersoon__innNnpId": "129117729"
},
**ZAAK_READ_KWARGS,
)

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

def test_rol_nnp_ann_identificatie(self):
url = reverse(Zaak)
rol = RolFactory.create(
betrokkene_type=RolTypes.niet_natuurlijk_persoon,
omschrijving_generiek=RolOmschrijving.initiator,
)
NietNatuurlijkPersoon.objects.create(rol=rol, ann_identificatie="12345")

with self.subTest(expected="no-match"):
response = self.client.get(
url,
{
"rol__betrokkeneIdentificatie__nietNatuurlijkPersoon__annIdentificatie": "000000000"
},
**ZAAK_READ_KWARGS,
)

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

with self.subTest(expected="match"):
response = self.client.get(
url,
{
"rol__betrokkeneIdentificatie__nietNatuurlijkPersoon__annIdentificatie": "12345"
},
**ZAAK_READ_KWARGS,
)

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

def test_rol_np_anp_identificatie(self):
url = reverse(Zaak)
rol = RolFactory.create(
betrokkene_type=RolTypes.natuurlijk_persoon,
omschrijving_generiek=RolOmschrijving.initiator,
)
NatuurlijkPersoon.objects.create(rol=rol, anp_identificatie="12345")

with self.subTest(expected="no-match"):
response = self.client.get(
url,
{
"rol__betrokkeneIdentificatie__natuurlijkPersoon__anpIdentificatie": "000000000"
},
**ZAAK_READ_KWARGS,
)

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

with self.subTest(expected="match"):
response = self.client.get(
url,
{
"rol__betrokkeneIdentificatie__natuurlijkPersoon__anpIdentificatie": "12345"
},
**ZAAK_READ_KWARGS,
)

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

def test_rol_np_inp_a_nummer(self):
url = reverse(Zaak)
rol = RolFactory.create(
betrokkene_type=RolTypes.natuurlijk_persoon,
omschrijving_generiek=RolOmschrijving.initiator,
)
NatuurlijkPersoon.objects.create(rol=rol, inp_a_nummer="12345")

with self.subTest(expected="no-match"):
response = self.client.get(
url,
{
"rol__betrokkeneIdentificatie__natuurlijkPersoon__inpA_nummer": "000000000"
},
**ZAAK_READ_KWARGS,
)

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

with self.subTest(expected="match"):
response = self.client.get(
url,
{
"rol__betrokkeneIdentificatie__natuurlijkPersoon__inpA_nummer": "12345"
},
**ZAAK_READ_KWARGS,
)

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

def test_rol_vestiging_vestigings_nummer(self):
url = reverse(Zaak)
rol = RolFactory.create(
betrokkene_type=RolTypes.vestiging,
omschrijving_generiek=RolOmschrijving.initiator,
)
Vestiging.objects.create(rol=rol, vestigings_nummer="12345")

with self.subTest(expected="no-match"):
response = self.client.get(
url,
{
"rol__betrokkeneIdentificatie__vestiging__vestigingsNummer": "000000000"
},
**ZAAK_READ_KWARGS,
)

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

with self.subTest(expected="match"):
response = self.client.get(
url,
{"rol__betrokkeneIdentificatie__vestiging__vestigingsNummer": "12345"},
**ZAAK_READ_KWARGS,
)

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


class ZaakArchivingTests(JWTAuthMixin, APITestCase):

heeft_alle_autorisaties = True
Expand Down

0 comments on commit 1513017

Please sign in to comment.