Skip to content

Commit

Permalink
Merge pull request #1459 from open-zaak/feature/1458-zaak-archive-val…
Browse files Browse the repository at this point in the history
…idation

Check that zaak is not archived
  • Loading branch information
annashamray committed Sep 18, 2023
2 parents 06d3b9b + 2a6afbd commit 330aaab
Show file tree
Hide file tree
Showing 7 changed files with 1,041 additions and 771 deletions.
2 changes: 2 additions & 0 deletions src/openzaak/components/zaken/api/serializers/zaakobjecten.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
EitherFieldRequiredValidator,
JQExpressionValidator,
ObjectTypeOverigeDefinitieValidator,
ZaakArchiefStatusValidator,
)
from .address import ObjectAdresSerializer
from .betrokkenen import (
Expand Down Expand Up @@ -176,6 +177,7 @@ class Meta:
skip_for_updates=True,
),
ObjectTypeOverigeDefinitieValidator(),
ZaakArchiefStatusValidator(),
]

def get_fields(self):
Expand Down
17 changes: 15 additions & 2 deletions src/openzaak/components/zaken/api/serializers/zaken.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@
RolOccurenceValidator,
StatusRolValidator,
UniekeIdentificatieValidator,
ZaakArchiefStatusValidator,
ZaakArchiveIOsArchivedValidator,
)
from .betrokkenen import (
Expand Down Expand Up @@ -524,6 +525,7 @@ class Meta:
EndStatusIOsUnlockedValidator(),
EndStatusIOsIndicatieGebruiksrechtValidator(),
StatusRolValidator(),
ZaakArchiefStatusValidator(),
]
extra_kwargs = {
"url": {"lookup_field": "uuid"},
Expand Down Expand Up @@ -702,6 +704,7 @@ class Meta:
fields=["zaak", "informatieobject"],
),
ObjecttypeInformatieobjecttypeRelationValidator(),
ZaakArchiefStatusValidator(),
]
extra_kwargs = {
"url": {"lookup_field": "uuid"},
Expand Down Expand Up @@ -793,7 +796,10 @@ class Meta:
],
},
}
validators = [CorrectZaaktypeValidator("eigenschap")]
validators = [
CorrectZaaktypeValidator("eigenschap"),
ZaakArchiefStatusValidator(),
]

def validate(self, attrs):
super().validate(attrs)
Expand Down Expand Up @@ -880,6 +886,7 @@ class Meta:
RolOccurenceValidator(RolOmschrijving.initiator, max_amount=1),
RolOccurenceValidator(RolOmschrijving.zaakcoordinator, max_amount=1),
CorrectZaaktypeValidator("roltype"),
ZaakArchiefStatusValidator(),
]
extra_kwargs = {
"url": {"lookup_field": "uuid"},
Expand Down Expand Up @@ -959,7 +966,10 @@ class ResultaatSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Resultaat
fields = ("url", "uuid", "zaak", "resultaattype", "toelichting")
validators = [CorrectZaaktypeValidator("resultaattype")]
validators = [
CorrectZaaktypeValidator("resultaattype"),
ZaakArchiefStatusValidator(),
]
extra_kwargs = {
"url": {"lookup_field": "uuid"},
"uuid": {"read_only": True},
Expand Down Expand Up @@ -1001,6 +1011,7 @@ class Meta:
],
},
}
validator = [ZaakArchiefStatusValidator()]

def create(self, validated_data):
validated_data["zaak"] = self.context["parent_object"]
Expand All @@ -1023,6 +1034,7 @@ class Meta:
]
},
}
validators = [ZaakArchiefStatusValidator()]

def create(self, validated_data):
with transaction.atomic():
Expand Down Expand Up @@ -1071,6 +1083,7 @@ class Meta:
"zaak": {"lookup_field": "uuid"},
"verzoek": {"validators": [verzoek_validator]},
}
validators = [ZaakArchiefStatusValidator()]

def create(self, validated_data):
with transaction.atomic():
Expand Down
18 changes: 18 additions & 0 deletions src/openzaak/components/zaken/api/validators.py
Original file line number Diff line number Diff line change
Expand Up @@ -507,3 +507,21 @@ def __call__(self, attrs):

if gezetdoor.zaak != zaak:
raise serializers.ValidationError(self.message, code=self.code)


class ZaakArchiefStatusValidator:
code = "zaak-archiefstatus-invalid"
message = _(
"De huidige zaak archiefstatus staat dit request niet toe. "
"Archiefstatus moet gelijk zijn aan 'nog_te_archiveren'"
)
requires_context = True

def __call__(self, attrs, serializer):
zaak = get_from_serializer_data_or_instance("zaak", attrs, serializer)

if not zaak:
return

if zaak.archiefstatus != Archiefstatus.nog_te_archiveren:
raise serializers.ValidationError(self.message, code=self.code)

0 comments on commit 330aaab

Please sign in to comment.