Skip to content

Commit 55d18c9

Browse files
[#240] Revers logic
1 parent 85b206d commit 55d18c9

File tree

5 files changed

+97
-77
lines changed

5 files changed

+97
-77
lines changed

src/openklant/components/klantinteracties/api/serializers/digitaal_adres.py

+6-9
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class DigitaalAdresSerializer(serializers.HyperlinkedModelSerializer):
4242
)
4343

4444
verstrekt_door_partij = PartijForeignKeySerializer(
45-
required=False,
45+
required=True,
4646
allow_null=True,
4747
help_text=_(
4848
"Digitaal adres dat een partij verstrekte voor gebruik bij "
@@ -51,7 +51,7 @@ class DigitaalAdresSerializer(serializers.HyperlinkedModelSerializer):
5151
source="partij",
5252
)
5353
verstrekt_door_betrokkene = BetrokkeneForeignKeySerializer(
54-
required=False,
54+
required=True,
5555
allow_null=True,
5656
help_text=_(
5757
"Digitaal adres dat een betrokkene bij klantcontact verstrekte voor gebruik bij "
@@ -70,13 +70,6 @@ class DigitaalAdresSerializer(serializers.HyperlinkedModelSerializer):
7070
".internetaken.InterneTaakSerializer",
7171
}
7272

73-
def __init__(self, *args, **kwargs):
74-
super().__init__(*args, **kwargs)
75-
request = self.context.get("request")
76-
if request and request.method in ["PUT", "PATCH"]:
77-
self.fields["verstrekt_door_partij"].required = True
78-
self.fields["verstrekt_door_betrokkene"].required = True
79-
8073
class Meta:
8174
model = DigitaalAdres
8275
fields = (
@@ -110,6 +103,10 @@ class Meta:
110103

111104
def __init__(self, *args, **kwargs):
112105
super().__init__(*args, **kwargs)
106+
request = self.context.get("request", None)
107+
if request and request.method == "POST":
108+
self.fields["verstrekt_door_partij"].required = False
109+
self.fields["verstrekt_door_betrokkene"].required = False
113110

114111
if "soort_digitaal_adres" in self.fields:
115112
# Avoid validating the UniqueConstraint for `soort_digitaal_adres` with

src/openklant/components/klantinteracties/api/serializers/klantcontacten.py

+14-14
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ class BetrokkeneSerializer(
134134
)
135135

136136
was_partij = PartijForeignKeySerializer(
137-
required=False,
137+
required=True,
138138
allow_null=True,
139139
source="partij",
140140
help_text=_("Betrokkene bij klantcontact die een partij was."),
@@ -186,9 +186,9 @@ class BetrokkeneSerializer(
186186

187187
def __init__(self, *args, **kwargs):
188188
super().__init__(*args, **kwargs)
189-
request = self.context.get("request")
190-
if request and request.method in ["PUT", "PATCH"]:
191-
self.fields["was_partij"].required = True
189+
request = self.context.get("request", None)
190+
if request and request.method == "POST":
191+
self.fields["was_partij"].required = False
192192

193193
class Meta:
194194
model = Betrokkene
@@ -342,12 +342,12 @@ class OnderwerpobjectSerializer(
342342
NestedGegevensGroepMixin, serializers.HyperlinkedModelSerializer
343343
):
344344
klantcontact = KlantcontactForeignKeySerializer(
345-
required=False,
345+
required=True,
346346
allow_null=True,
347347
help_text=_("'Klantcontact' ging over 'Onderwerpobject'"),
348348
)
349349
was_klantcontact = KlantcontactForeignKeySerializer(
350-
required=False,
350+
required=True,
351351
allow_null=True,
352352
help_text=_("'Onderwerpobject' was 'Klantcontact'"),
353353
)
@@ -362,10 +362,10 @@ class OnderwerpobjectSerializer(
362362

363363
def __init__(self, *args, **kwargs):
364364
super().__init__(*args, **kwargs)
365-
request = self.context.get("request")
366-
if request and request.method in ["PUT", "PATCH"]:
367-
self.fields["klantcontact"].required = True
368-
self.fields["was_klantcontact"].required = True
365+
request = self.context.get("request", None)
366+
if request and request.method == "POST":
367+
self.fields["klantcontact"].required = False
368+
self.fields["was_klantcontact"].required = False
369369

370370
class Meta:
371371
model = Onderwerpobject
@@ -432,7 +432,7 @@ class BijlageSerializer(
432432
NestedGegevensGroepMixin, serializers.HyperlinkedModelSerializer
433433
):
434434
was_bijlage_van_klantcontact = KlantcontactForeignKeySerializer(
435-
required=False,
435+
required=True,
436436
allow_null=True,
437437
help_text=_("'Klantcontact' ging over 'Onderwerpobject'"),
438438
source="klantcontact",
@@ -448,9 +448,9 @@ class BijlageSerializer(
448448

449449
def __init__(self, *args, **kwargs):
450450
super().__init__(*args, **kwargs)
451-
request = self.context.get("request")
452-
if request and request.method in ["PUT", "PATCH"]:
453-
self.fields["was_bijlage_van_klantcontact"].required = True
451+
request = self.context.get("request", None)
452+
if request and request.method == "POST":
453+
self.fields["was_bijlage_van_klantcontact"].required = False
454454

455455
class Meta:
456456
model = Bijlage

src/openklant/components/klantinteracties/api/serializers/partijen.py

+48-50
Original file line numberDiff line numberDiff line change
@@ -198,18 +198,19 @@ class CategorieRelatieSerializer(serializers.HyperlinkedModelSerializer):
198198
"""Let op: Dit endpoint is EXPERIMENTEEL."""
199199

200200
partij = PartijForeignkeyBaseSerializer(
201-
required=False,
201+
required=True,
202202
allow_null=True,
203203
help_text=_("De partij waar de categorie relatie aan gelinkt is."),
204204
)
205205
categorie = CategorieForeignKeySerializer(
206-
required=False,
206+
required=True,
207207
allow_null=True,
208208
help_text=_(
209209
"De categorie waar de categorie relatie aan gelinkt is: Let op: Dit attribuut is EXPERIMENTEEL."
210210
),
211211
)
212212
begin_datum = serializers.DateField(
213+
required=True,
213214
allow_null=True,
214215
help_text=_(
215216
"Aanduiding van datum volgens de NEN-ISO 8601:2019-standaard. "
@@ -220,10 +221,11 @@ class CategorieRelatieSerializer(serializers.HyperlinkedModelSerializer):
220221

221222
def __init__(self, *args, **kwargs):
222223
super().__init__(*args, **kwargs)
223-
request = self.context.get("request")
224-
if request and request.method in ["PUT", "PATCH"]:
225-
self.fields["partij"].required = True
226-
self.fields["categorie"].required = True
224+
request = self.context.get("request", None)
225+
if request and request.method == "POST":
226+
self.fields["begin_datum"].required = False
227+
self.fields["partij"].required = False
228+
self.fields["categorie"].required = False
227229

228230
class Meta:
229231
model = CategorieRelatie
@@ -246,35 +248,31 @@ class Meta:
246248

247249
@transaction.atomic
248250
def update(self, instance, validated_data):
249-
if "partij" in validated_data:
250-
if partij := validated_data.pop("partij", None):
251-
partij = Partij.objects.get(uuid=str(partij.get("uuid")))
251+
if partij := validated_data.pop("partij", None):
252+
validated_data["partij"] = Partij.objects.get(uuid=str(partij.get("uuid")))
252253

253-
validated_data["partij"] = partij
254-
255-
if "categorie" in validated_data:
256-
if categorie := validated_data.pop("categorie", None):
257-
categorie = Categorie.objects.get(uuid=str(categorie.get("uuid")))
258-
259-
validated_data["categorie"] = categorie
254+
if categorie := validated_data.pop("categorie", None):
255+
validated_data["categorie"] = Categorie.objects.get(
256+
uuid=str(categorie.get("uuid"))
257+
)
260258

261259
return super().update(instance, validated_data)
262260

263261
@transaction.atomic
264262
def create(self, validated_data):
265-
if not validated_data.get("begin_datum"):
266-
validated_data["begin_datum"] = datetime.datetime.today().strftime(
267-
"%Y-%m-%d"
268-
)
263+
begin_datum = validated_data.get(
264+
"begin_datum", datetime.datetime.today().strftime("%Y-%m-%d")
265+
)
269266

270-
if partij := validated_data.pop("partij"):
271-
partij = Partij.objects.get(uuid=str(partij.get("uuid")))
267+
validated_data["begin_datum"] = begin_datum
272268

273-
if categorie := validated_data.pop("categorie"):
274-
categorie = Categorie.objects.get(uuid=str(categorie.get("uuid")))
269+
if partij := validated_data.pop("partij", None):
270+
validated_data["partij"] = Partij.objects.get(uuid=str(partij.get("uuid")))
275271

276-
validated_data["partij"] = partij
277-
validated_data["categorie"] = categorie
272+
if categorie := validated_data.pop("categorie", None):
273+
validated_data["categorie"] = Categorie.objects.get(
274+
uuid=str(categorie.get("uuid"))
275+
)
278276

279277
return super().create(validated_data)
280278

@@ -293,7 +291,7 @@ class Meta:
293291

294292
class PersoonSerializer(NestedGegevensGroepMixin, serializers.ModelSerializer):
295293
contactnaam = PersoonContactSerializer(
296-
required=False,
294+
required=True,
297295
allow_null=True,
298296
help_text=_(
299297
"Naam die een persoon wil gebruiken tijdens contact met de gemeente. "
@@ -307,9 +305,9 @@ class PersoonSerializer(NestedGegevensGroepMixin, serializers.ModelSerializer):
307305

308306
def __init__(self, *args, **kwargs):
309307
super().__init__(*args, **kwargs)
310-
request = self.context.get("request")
311-
if request and request.method in ["PUT", "PATCH"]:
312-
self.fields["contactnaam"].required = True
308+
request = self.context.get("request", None)
309+
if request and request.method == "POST":
310+
self.fields["contactnaam"].required = False
313311

314312
class Meta:
315313
model = Persoon
@@ -324,7 +322,7 @@ def get_volledige_naam(self, obj) -> str:
324322

325323
class ContactpersoonSerializer(NestedGegevensGroepMixin, serializers.ModelSerializer):
326324
werkte_voor_partij = PartijPolymorphicSerializer(
327-
required=False,
325+
required=True,
328326
allow_null=True,
329327
help_text=_("Organisatie waarvoor een contactpersoon werkte."),
330328
)
@@ -343,9 +341,9 @@ class ContactpersoonSerializer(NestedGegevensGroepMixin, serializers.ModelSerial
343341

344342
def __init__(self, *args, **kwargs):
345343
super().__init__(*args, **kwargs)
346-
request = self.context.get("request")
347-
if request and request.method in ["PUT", "PATCH"]:
348-
self.fields["werkte_voor_partij"].required = True
344+
request = self.context.get("request", None)
345+
if request and request.method == "POST":
346+
self.fields["werkte_voor_partij"].required = False
349347

350348
class Meta:
351349
model = Contactpersoon
@@ -389,13 +387,13 @@ class PartijIdentificatorSerializer(
389387
NestedGegevensGroepMixin, serializers.HyperlinkedModelSerializer
390388
):
391389
identificeerde_partij = PartijForeignKeySerializer(
392-
required=False,
390+
required=True,
393391
allow_null=True,
394392
help_text=_("Partij-identificator die hoorde bij een partij."),
395393
source="partij",
396394
)
397395
partij_identificator = PartijIdentificatorGroepTypeSerializer(
398-
required=False,
396+
required=True,
399397
allow_null=True,
400398
help_text=_(
401399
"Gegevens die een partij in een basisregistratie "
@@ -405,10 +403,10 @@ class PartijIdentificatorSerializer(
405403

406404
def __init__(self, *args, **kwargs):
407405
super().__init__(*args, **kwargs)
408-
request = self.context.get("request")
409-
if request and request.method in ["PUT", "PATCH"]:
410-
self.fields["identificeerde_partij"].required = True
411-
self.fields["partij_identificator"].required = True
406+
request = self.context.get("request", None)
407+
if request and request.method == "POST":
408+
self.fields["identificeerde_partij"].required = False
409+
self.fields["partij_identificator"].required = False
412410

413411
class Meta:
414412
model = PartijIdentificator
@@ -487,7 +485,7 @@ class PartijSerializer(NestedGegevensGroepMixin, PolymorphicSerializer):
487485
source="categorierelatie_set",
488486
)
489487
digitale_adressen = DigitaalAdresForeignKeySerializer(
490-
required=False,
488+
required=True,
491489
allow_null=True,
492490
help_text=_(
493491
"Digitaal adresen dat een partij verstrekte voor gebruik bij "
@@ -497,21 +495,21 @@ class PartijSerializer(NestedGegevensGroepMixin, PolymorphicSerializer):
497495
many=True,
498496
)
499497
voorkeurs_digitaal_adres = DigitaalAdresForeignKeySerializer(
500-
required=False,
498+
required=True,
501499
allow_null=True,
502500
help_text=_(
503501
"Digitaal adres waarop een partij bij voorkeur door de gemeente benaderd wordt."
504502
),
505503
)
506504
rekeningnummers = RekeningnummerForeignKeySerializer(
507-
required=False,
505+
required=True,
508506
allow_null=True,
509507
help_text=_("Rekeningnummers van een partij"),
510508
source="rekeningnummer_set",
511509
many=True,
512510
)
513511
voorkeurs_rekeningnummer = RekeningnummerForeignKeySerializer(
514-
required=False,
512+
required=True,
515513
allow_null=True,
516514
help_text=_("Rekeningsnummer die een partij bij voorkeur gebruikt."),
517515
)
@@ -554,12 +552,12 @@ class PartijSerializer(NestedGegevensGroepMixin, PolymorphicSerializer):
554552

555553
def __init__(self, *args, **kwargs):
556554
super().__init__(*args, **kwargs)
557-
request = self.context.get("request")
558-
if request and request.method in ["PUT", "PATCH"]:
559-
self.fields["digitale_adressen"].required = True
560-
self.fields["voorkeurs_digitaal_adres"].required = True
561-
self.fields["rekeningnummers"].required = True
562-
self.fields["voorkeurs_rekeningnummer"].required = True
555+
request = self.context.get("request", None)
556+
if request and request.method == "POST":
557+
self.fields["digitale_adressen"].required = False
558+
self.fields["voorkeurs_digitaal_adres"].required = False
559+
self.fields["rekeningnummers"].required = False
560+
self.fields["voorkeurs_rekeningnummer"].required = False
563561

564562
class Meta:
565563
model = Partij

src/openklant/components/klantinteracties/api/serializers/rekeningnummers.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,16 @@ class RekeningnummerSerializer(serializers.HyperlinkedModelSerializer):
3333
)
3434

3535
partij = PartijForeignKeySerializer(
36-
required=False,
36+
required=True,
3737
allow_null=True,
3838
help_text=_("Rekeningnummer van een partij"),
3939
)
4040

4141
def __init__(self, *args, **kwargs):
4242
super().__init__(*args, **kwargs)
43-
request = self.context.get("request")
44-
if request and request.method in ["PUT", "PATCH"]:
45-
self.fields["partij"].required = True
43+
request = self.context.get("request", None)
44+
if request and request.method == "POST":
45+
self.fields["partij"].required = False
4646

4747
class Meta:
4848
model = Rekeningnummer

0 commit comments

Comments
 (0)