Skip to content

Commit 1c42096

Browse files
authored
Merge pull request #487 from maykinmedia/fix/427-fix-inconsistent-choices-api
[#427] Fix inconsistent choices api
2 parents 3bf1089 + cee5a15 commit 1c42096

File tree

7 files changed

+17
-40
lines changed

7 files changed

+17
-40
lines changed

backend/src/openarchiefbeheer/utils/tests/gherkin.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ async def handle(route):
236236
{
237237
"label": "11.1 - Verleend - vernietigen - P1Y",
238238
"value": "https://www.example.com",
239-
"detail": {
239+
"extraData": {
240240
"bewaartermijn": "P5Y",
241241
},
242242
}

backend/src/openarchiefbeheer/zaken/api/serializers.py

+1-24
Original file line numberDiff line numberDiff line change
@@ -61,35 +61,12 @@ class Meta:
6161
class ChoiceSerializer(serializers.Serializer):
6262
label = serializers.CharField(help_text=_("The description field of the choice."))
6363
value = serializers.CharField(help_text=_("The URL of the choice."))
64-
extra = serializers.CharField(
64+
extra_data = serializers.JSONField(
6565
help_text=_("Any extra information about this choice."),
6666
required=False,
6767
)
6868

6969

70-
class ZaaktypeChoiceSerializer(serializers.Serializer):
71-
label = serializers.CharField(help_text=_("The description field of the zaaktype."))
72-
value = serializers.CharField(help_text=_("The URL field of the zaaktype."))
73-
extra = serializers.CharField(
74-
help_text=_(
75-
"A combination of the identification and the date on which "
76-
"the zaaktype will no longer be valid (if present)."
77-
),
78-
required=False,
79-
)
80-
81-
82-
class SelectielijstklasseChoicesSerializer(serializers.Serializer):
83-
label = serializers.CharField(
84-
help_text=_(
85-
"The description field of the resultaat from the selectielijst API."
86-
)
87-
)
88-
value = serializers.CharField(
89-
help_text=_("The URL field of the resultaat from the selectielijst API.")
90-
)
91-
92-
9370
class SelectielijstklasseChoicesQueryParamSerializer(serializers.Serializer):
9471
zaak = serializers.URLField(
9572
required=False,

backend/src/openarchiefbeheer/zaken/api/views.py

+3-5
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@
2525
from .serializers import (
2626
ChoiceSerializer,
2727
SelectielijstklasseChoicesQueryParamSerializer,
28-
SelectielijstklasseChoicesSerializer,
29-
ZaaktypeChoiceSerializer,
3028
)
3129

3230

@@ -63,7 +61,7 @@ def get_queryset(self):
6361
),
6462
tags=["private"],
6563
responses={
66-
200: ZaaktypeChoiceSerializer(many=True),
64+
200: ChoiceSerializer(many=True),
6765
},
6866
)
6967
@method_decorator(cache_page(60 * 15))
@@ -78,7 +76,7 @@ def get(self, request, *args, **kwargs):
7876
)
7977
zaaktypen_choices = format_zaaktype_choices(zaaktypen)
8078

81-
serializer = ZaaktypeChoiceSerializer(data=zaaktypen_choices, many=True)
79+
serializer = ChoiceSerializer(data=zaaktypen_choices, many=True)
8280
serializer.is_valid(raise_exception=True)
8381
return Response(serializer.data, status=status.HTTP_200_OK)
8482

@@ -93,7 +91,7 @@ class SelectielijstklasseChoicesView(APIView):
9391
),
9492
tags=["private"],
9593
responses={
96-
200: SelectielijstklasseChoicesSerializer,
94+
200: ChoiceSerializer(many=True),
9795
},
9896
parameters=[SelectielijstklasseChoicesQueryParamSerializer],
9997
)

backend/src/openarchiefbeheer/zaken/tests/test_views.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -490,21 +490,21 @@ def test_retrieve_choices(self, m):
490490
{
491491
"value": "http://selectielijst.nl/api/v1/resultaten/2e86a8ca-0269-446c-8da2-6f4d08be422d",
492492
"label": "11.1 - Verleend - vernietigen - P1Y",
493-
"detail": {
493+
"extraData": {
494494
"bewaartermijn": "P1Y",
495495
},
496496
},
497497
{
498498
"value": "http://selectielijst.nl/api/v1/resultaten/5038528b-0eb7-4502-a415-a3093987d69b",
499499
"label": "1 - Verleend - vernietigen - P2Y",
500-
"detail": {
500+
"extraData": {
501501
"bewaartermijn": "P2Y",
502502
},
503503
},
504504
{
505505
"value": "http://selectielijst.nl/api/v1/resultaten/5d102cc6-4a74-4262-a14a-538bbfe3f2da",
506506
"label": "11.1.2 - Verleend - vernietigen",
507-
"detail": {
507+
"extraData": {
508508
"bewaartermijn": None,
509509
},
510510
},
@@ -575,21 +575,21 @@ def test_retrieve_choices_without_zaak(self, m):
575575
{
576576
"value": "http://selectielijst.nl/api/v1/resultaten/2e86a8ca-0269-446c-8da2-6f4d08be422d",
577577
"label": "11.1 - Verleend - vernietigen - P1Y",
578-
"detail": {
578+
"extraData": {
579579
"bewaartermijn": "P1Y",
580580
},
581581
},
582582
{
583583
"value": "http://selectielijst.nl/api/v1/resultaten/5038528b-0eb7-4502-a415-a3093987d69b",
584584
"label": "1 - Verleend - vernietigen - P2Y",
585-
"detail": {
585+
"extraData": {
586586
"bewaartermijn": "P2Y",
587587
},
588588
},
589589
{
590590
"value": "http://selectielijst.nl/api/v1/resultaten/5d102cc6-4a74-4262-a14a-538bbfe3f2da",
591591
"label": "11.1.2 - Verleend - vernietigen",
592-
"detail": {
592+
"extraData": {
593593
"bewaartermijn": None,
594594
},
595595
},

backend/src/openarchiefbeheer/zaken/types.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@
66
class DropDownChoice:
77
label: str
88
value: str
9-
extra_data: Optional[int] = None
9+
extra_data: Optional[dict] = None

backend/src/openarchiefbeheer/zaken/utils.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ def format_selectielijstklasse_choice(resultaat: Resultaat) -> DropDownChoice:
120120
return {
121121
"label": description,
122122
"value": resultaat["url"],
123-
"detail": {
123+
"extra_data": {
124124
"bewaartermijn": resultaat.get("bewaartermijn"),
125125
},
126126
}

frontend/src/pages/destructionlist/detail/pages/DestructionListProcessReviewPage/components/DestructionListProcessZaakReviewModal/DestructionListProcessZaakReviewModal.tsx

+4-2
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,11 @@ export const DestructionListProcessZaakReviewModal: React.FC<
138138
const getBewaartermijn = (selectielijstklasse: string) => {
139139
const selectedChoice = selectieLijstKlasseChoices.find(
140140
(choice) => choice.value === selectielijstklasse,
141-
) as (Option & { detail?: { bewaartermijn: string | null } }) | undefined;
141+
) as
142+
| (Option & { extraData?: { bewaartermijn: string | null } })
143+
| undefined;
142144

143-
return selectedChoice?.detail?.bewaartermijn;
145+
return selectedChoice?.extraData?.bewaartermijn;
144146
};
145147

146148
/**

0 commit comments

Comments
 (0)