diff --git a/src/openklant/components/klantinteracties/admin/partijen.py b/src/openklant/components/klantinteracties/admin/partijen.py index 6bed1107..be795913 100644 --- a/src/openklant/components/klantinteracties/admin/partijen.py +++ b/src/openklant/components/klantinteracties/admin/partijen.py @@ -113,6 +113,7 @@ class PartijAdmin(admin.ModelAdmin): "fields": [ "uuid", "voorkeurs_digitaal_adres", + "voorkeurs_rekeningnummer", "nummer", "interne_notitie", "soort_partij", diff --git a/src/openklant/components/klantinteracties/api/serializers/digitaal_adres.py b/src/openklant/components/klantinteracties/api/serializers/digitaal_adres.py index ec138c0c..2918400a 100644 --- a/src/openklant/components/klantinteracties/api/serializers/digitaal_adres.py +++ b/src/openklant/components/klantinteracties/api/serializers/digitaal_adres.py @@ -3,6 +3,9 @@ from rest_framework import serializers +from openklant.components.klantinteracties.api.serializers.constants import ( + SERIALIZER_PATH, +) from openklant.components.klantinteracties.api.validators import digitaal_adres_exists from openklant.components.klantinteracties.models.digitaal_adres import DigitaalAdres from openklant.components.klantinteracties.models.klantcontacten import Betrokkene @@ -53,6 +56,16 @@ class DigitaalAdresSerializer(serializers.HyperlinkedModelSerializer): source="betrokkene", ) + inclusion_serializers = { + # 1 level + "verstrekt_door_betrokkene": f"{SERIALIZER_PATH}.klantcontacten.BetrokkeneSerializer", + # 2 levels + "verstrekt_door_betrokkene.had_klantcontact": f"{SERIALIZER_PATH}.klantcontacten.KlantcontactSerializer", + # 3 levels + "verstrekt_door_betrokkene.had_klantcontact.leidde_tot_interne_taken": f"{SERIALIZER_PATH}" + ".internetaken.InterneTaakSerializer", + } + class Meta: model = DigitaalAdres fields = ( diff --git a/src/openklant/components/klantinteracties/api/viewsets/digitaal_adres.py b/src/openklant/components/klantinteracties/api/viewsets/digitaal_adres.py index 0a03303f..b3da8da0 100644 --- a/src/openklant/components/klantinteracties/api/viewsets/digitaal_adres.py +++ b/src/openklant/components/klantinteracties/api/viewsets/digitaal_adres.py @@ -8,6 +8,7 @@ from openklant.components.klantinteracties.models.digitaal_adres import DigitaalAdres from openklant.components.token.authentication import TokenAuthentication from openklant.components.token.permission import TokenPermissions +from openklant.components.utils.mixins import ExpandMixin @extend_schema(tags=["digitale adressen"]) @@ -37,7 +38,7 @@ description="Verwijder een digitaal adres.", ), ) -class DigitaalAdresViewSet(viewsets.ModelViewSet): +class DigitaalAdresViewSet(ExpandMixin, viewsets.ModelViewSet): """ Digitaal adres dat een betrokkene bij klantcontact verstrekte voor gebruik bij opvolging van een klantcontact. diff --git a/src/openklant/components/klantinteracties/openapi.yaml b/src/openklant/components/klantinteracties/openapi.yaml index 56e6055b..e57e9797 100644 --- a/src/openklant/components/klantinteracties/openapi.yaml +++ b/src/openklant/components/klantinteracties/openapi.yaml @@ -1080,7 +1080,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PaginatedDigitaalAdresList' + $ref: '#/components/schemas/PaginatedExpandDigitaalAdresList' description: '' post: operationId: digitaleadressenCreate @@ -1125,7 +1125,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/DigitaalAdres' + $ref: '#/components/schemas/ExpandDigitaalAdres' description: '' put: operationId: digitaleadressenUpdate @@ -3221,6 +3221,28 @@ components: required: - url - uuid + ExpandDigitaalAdres: + allOf: + - $ref: '#/components/schemas/DigitaalAdres' + - type: object + properties: + _expand: + type: object + description: Display details of the linked resources requested in the + `expand` parameter + properties: + verstrekt_door_betrokkene: + allOf: + - $ref: '#/components/schemas/Betrokkene' + nullable: true + description: Digitaal adres dat een betrokkene bij klantcontact verstrekte + voor gebruik bij opvolging van een klantcontact. + verstrekt_door_partij: + allOf: + - $ref: '#/components/schemas/Partij' + nullable: true + description: Digitaal adres dat een partij verstrekte voor gebruik + bij toekomstig contact met de gemeente. ExpandKlantcontact: allOf: - $ref: '#/components/schemas/Klantcontact' @@ -3717,6 +3739,29 @@ components: type: array items: $ref: '#/components/schemas/DigitaalAdres' + PaginatedExpandDigitaalAdresList: + type: object + required: + - count + - results + properties: + count: + type: integer + example: 123 + next: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=4 + previous: + type: string + nullable: true + format: uri + example: http://api.example.org/accounts/?page=2 + results: + type: array + items: + $ref: '#/components/schemas/ExpandDigitaalAdres' PaginatedExpandKlantcontactList: type: object required: diff --git a/src/openklant/conf/dev.py b/src/openklant/conf/dev.py index d95bc0e9..ef7eda28 100644 --- a/src/openklant/conf/dev.py +++ b/src/openklant/conf/dev.py @@ -18,6 +18,7 @@ os.environ.setdefault("RELEASE", "dev") os.environ.setdefault("LOG_REQUESTS", "no") +os.environ.setdefault("DISABLE_2FA", "yes") from .base import * # noqa isort:skip