Skip to content

Commit

Permalink
Merge pull request #1447 from open-zaak/feature/1446-zaken-links-to-s…
Browse files Browse the repository at this point in the history
…ubresources

links to zaak subresources into Zaken endpoints
  • Loading branch information
annashamray committed Sep 11, 2023
2 parents 2bc90c6 + bd5c9d0 commit 32b4438
Show file tree
Hide file tree
Showing 7 changed files with 105 additions and 9 deletions.
27 changes: 27 additions & 0 deletions src/openzaak/components/zaken/api/serializers/zaken.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,14 @@ class ZaakSerializer(
parent_lookup_kwargs={"zaak_uuid": "zaak__uuid"},
source="zaakeigenschap_set",
)
rollen = NestedHyperlinkedRelatedField(
many=True,
read_only=True,
lookup_field="uuid",
view_name="rol-detail",
source="rol_set",
help_text=_("URL-referenties naar ROLLen."),
)
status = serializers.HyperlinkedRelatedField(
source="current_status_uuid",
read_only=True,
Expand All @@ -182,6 +190,22 @@ class ZaakSerializer(
lookup_url_kwarg="uuid",
help_text=_("Indien geen status bekend is, dan is de waarde 'null'"),
)
zaakinformatieobjecten = NestedHyperlinkedRelatedField(
many=True,
read_only=True,
lookup_field="uuid",
view_name="zaakinformatieobject-detail",
source="zaakinformatieobject_set",
help_text=_("URL-referenties naar ZAAKINFORMATIEOBJECTen."),
)
zaakobjecten = NestedHyperlinkedRelatedField(
many=True,
read_only=True,
lookup_field="uuid",
view_name="zaakobject-detail",
source="zaakobject_set",
help_text=_("URL-referenties naar ZAAKOBJECTen."),
)

kenmerken = ZaakKenmerkSerializer(
source="zaakkenmerk_set",
Expand Down Expand Up @@ -270,7 +294,10 @@ class Meta:
"relevante_andere_zaken",
"eigenschappen",
# read-only veld, on-the-fly opgevraagd
"rollen",
"status",
"zaakinformatieobjecten",
"zaakobjecten",
# Writable inline resource, as opposed to eigenschappen for demo
# purposes. Eventually, we need to choose one form.
"kenmerken",
Expand Down
3 changes: 3 additions & 0 deletions src/openzaak/components/zaken/api/viewsets.py
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,9 @@ class ZaakViewSet(
models.Prefetch(
"status_set", queryset=Status.objects.order_by("-datum_status_gezet")
),
"rol_set",
"zaakinformatieobject_set",
"zaakobject_set",
)
.order_by("-pk")
.distinct()
Expand Down
27 changes: 27 additions & 0 deletions src/openzaak/components/zaken/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7030,13 +7030,40 @@ components:
format: uri
readOnly: true
uniqueItems: true
rollen:
description: URL-referenties naar ROLLen.
type: array
items:
description: URL-referenties naar ROLLen.
type: string
format: uri
readOnly: true
uniqueItems: true
status:
title: Status
description: Indien geen status bekend is, dan is de waarde 'null'
type: string
format: uri
readOnly: true
nullable: true
zaakinformatieobjecten:
description: URL-referenties naar ZAAKINFORMATIEOBJECTen.
type: array
items:
description: URL-referenties naar ZAAKINFORMATIEOBJECTen.
type: string
format: uri
readOnly: true
uniqueItems: true
zaakobjecten:
description: URL-referenties naar ZAAKOBJECTen.
type: array
items:
description: URL-referenties naar ZAAKOBJECTen.
type: string
format: uri
readOnly: true
uniqueItems: true
kenmerken:
description: Lijst van kenmerken. Merk op dat refereren naar gerelateerde
objecten beter kan via `ZaakObject`.
Expand Down
3 changes: 3 additions & 0 deletions src/openzaak/components/zaken/resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,10 @@ Uitleg bij mogelijke waarden:
| deelzaken | URL-referenties naar deel ZAAKen. | array | nee | ~~C~~​R​~~U~~~~D~~ |
| relevanteAndereZaken | Een lijst van relevante andere zaken. | array | nee | C​R​U​D |
| eigenschappen | | array | nee | ~~C~~​R​~~U~~~~D~~ |
| rollen | URL-referenties naar ROLLen. | array | nee | ~~C~~​R​~~U~~~~D~~ |
| status | Indien geen status bekend is, dan is de waarde 'null' | string | nee | ~~C~~​R​~~U~~~~D~~ |
| zaakinformatieobjecten | URL-referenties naar ZAAKINFORMATIEOBJECTen. | array | nee | ~~C~~​R​~~U~~~~D~~ |
| zaakobjecten | URL-referenties naar ZAAKOBJECTen. | array | nee | ~~C~~​R​~~U~~~~D~~ |
| kenmerken | Lijst van kenmerken. Merk op dat refereren naar gerelateerde objecten beter kan via `ZaakObject`. | array | nee | C​R​U​D |
| archiefnominatie | Aanduiding of het zaakdossier blijvend bewaard of na een bepaalde termijn vernietigd moet worden.

Expand Down
33 changes: 33 additions & 0 deletions src/openzaak/components/zaken/swagger2.0.json
Original file line number Diff line number Diff line change
Expand Up @@ -8793,6 +8793,17 @@
"readOnly": true,
"uniqueItems": true
},
"rollen": {
"description": "URL-referenties naar ROLLen.",
"type": "array",
"items": {
"description": "URL-referenties naar ROLLen.",
"type": "string",
"format": "uri"
},
"readOnly": true,
"uniqueItems": true
},
"status": {
"title": "Status",
"description": "Indien geen status bekend is, dan is de waarde 'null'",
Expand All @@ -8801,6 +8812,28 @@
"readOnly": true,
"x-nullable": true
},
"zaakinformatieobjecten": {
"description": "URL-referenties naar ZAAKINFORMATIEOBJECTen.",
"type": "array",
"items": {
"description": "URL-referenties naar ZAAKINFORMATIEOBJECTen.",
"type": "string",
"format": "uri"
},
"readOnly": true,
"uniqueItems": true
},
"zaakobjecten": {
"description": "URL-referenties naar ZAAKOBJECTen.",
"type": "array",
"items": {
"description": "URL-referenties naar ZAAKOBJECTen.",
"type": "string",
"format": "uri"
},
"readOnly": true,
"uniqueItems": true
},
"kenmerken": {
"description": "Lijst van kenmerken. Merk op dat refereren naar gerelateerde objecten beter kan via `ZaakObject`.",
"type": "array",
Expand Down
2 changes: 1 addition & 1 deletion src/openzaak/components/zaken/tests/test_auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ def test_zaak_list_performance(self):
# queries because of the permission checks
PERMISSION_CHECK_NUM_QUERIES = 2
# queries because of the list endpoint itself
ENDPOINT_NUM_QUERIES = 8
ENDPOINT_NUM_QUERIES = 11
TOTAL_EXPECTED_QUERIES = (
BASE_NUM_QUERIES + PERMISSION_CHECK_NUM_QUERIES + ENDPOINT_NUM_QUERIES
)
Expand Down
19 changes: 11 additions & 8 deletions src/openzaak/components/zaken/tests/test_create.py
Original file line number Diff line number Diff line change
Expand Up @@ -518,19 +518,22 @@ def test_create_zaak_local_zaaktype(self, mock_notif):
26-31: query related objects for etag update that may be affected (should be
skipped, it's create of root resource!) vng_api_common.caching.signals
32: select zaak relevantezaakrelatie (nested inline create, can't avoid this)
33: select zaak kenmerken (nested inline create, can't avoid this)
34: insert audit trail
35-36: notifications, select created zaak (?), notifs config
37: release savepoint (from NotificationsCreateMixin)
38: savepoint create transaction.on_commit ETag handler (start new transaction)
39: update ETag column of zaak
40: release savepoint (commit transaction)
33: select zaak rollen
34: select zaak zaakinformatieobjecten
35: select zaak zaakobjecten
36: select zaak kenmerken (nested inline create, can't avoid this)
37: insert audit trail
38-39: notifications, select created zaak (?), notifs config
40: release savepoint (from NotificationsCreateMixin)
41: savepoint create transaction.on_commit ETag handler (start new transaction)
42: update ETag column of zaak
43: release savepoint (commit transaction)
"""
# create a random zaak to get some other initial setup queries out of the way
# (most notable figuring out the PG/postgres version)
ZaakFactory.create()

EXPECTED_NUM_QUERIES = 40
EXPECTED_NUM_QUERIES = 43

zaaktype_url = reverse(self.zaaktype)
url = get_operation_url("zaak_create")
Expand Down

0 comments on commit 32b4438

Please sign in to comment.