Skip to content

Commit

Permalink
Merge pull request #1449 from open-zaak/feature/1448-new-zaak-archive…
Browse files Browse the repository at this point in the history
…-properties

add new Zaak archive properties
  • Loading branch information
annashamray committed Sep 18, 2023
2 parents 1513017 + 8416f8e commit a026866
Show file tree
Hide file tree
Showing 9 changed files with 330 additions and 5 deletions.
20 changes: 20 additions & 0 deletions src/openzaak/components/zaken/api/serializers/zaken.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,12 @@ def update(self, instance, data): # pragma:nocover
raise NotImplementedError("Updating is not supported in this serializer")


class ProcessobjectSerializer(GegevensGroepSerializer):
class Meta:
model = Zaak
gegevensgroep = "processobject"


class ZaakSerializer(
NestedGegevensGroepMixin,
NestedCreateMixin,
Expand Down Expand Up @@ -261,6 +267,16 @@ class ZaakSerializer(
many=True, required=False, help_text=_("Een lijst van relevante andere zaken.")
)

processobject = ProcessobjectSerializer(
required=False,
allow_null=True,
help_text=_(
"Specificatie van de attribuutsoort van het object, subject of gebeurtenis "
" waarop, vanuit archiveringsoptiek, de zaak betrekking heeft en dat "
"bepalend is voor de start van de archiefactietermijn."
),
)

class Meta:
model = Zaak
fields = (
Expand Down Expand Up @@ -307,6 +323,10 @@ class Meta:
"archiefactiedatum",
"resultaat",
"opdrachtgevende_organisatie",
"processobjectaard",
"resultaattoelichting",
"startdatum_bewaartermijn",
"processobject",
)
extra_kwargs = {
"url": {"lookup_field": "uuid"},
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# SPDX-License-Identifier: EUPL-1.2
# Copyright (C) 2023 Dimpact
# Generated by Django 3.2.18 on 2023-08-23 12:21

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("zaken", "0024_alter_status_datum_status_gezet"),
]

operations = [
migrations.AddField(
model_name="zaak",
name="processobject_datumkenmerk",
field=models.CharField(
blank=True,
help_text="De naam van de attribuutsoort van het procesobject dat bepalend is voor het einde van de procestermijn.",
max_length=250,
verbose_name="datumkenmerk",
),
),
migrations.AddField(
model_name="zaak",
name="processobject_identificatie",
field=models.CharField(
blank=True,
help_text="De unieke aanduiding van het procesobject.",
max_length=250,
verbose_name="identificatie",
),
),
migrations.AddField(
model_name="zaak",
name="processobject_objecttype",
field=models.CharField(
blank=True,
help_text="Het soort object dat het procesobject representeert.",
max_length=250,
verbose_name="objecttype",
),
),
migrations.AddField(
model_name="zaak",
name="processobject_registratie",
field=models.CharField(
blank=True,
help_text="De naam van de registratie waarvan het procesobject deel uit maakt.",
max_length=250,
verbose_name="registratie",
),
),
migrations.AddField(
model_name="zaak",
name="processobjectaard",
field=models.CharField(
blank=True,
help_text="Omschrijving van het object, subject of gebeurtenis waarop, vanuit archiveringsoptiek, de zaak betrekking heeft.",
max_length=200,
verbose_name="procesobjectaard",
),
),
migrations.AddField(
model_name="zaak",
name="resultaattoelichting",
field=models.TextField(
blank=True,
help_text="Een toelichting op wat het resultaat van de zaak inhoudt.",
max_length=1000,
verbose_name="resultaattoelichting",
),
),
migrations.AddField(
model_name="zaak",
name="startdatum_bewaartermijn",
field=models.DateField(
blank=True,
help_text="De datum die de start markeert van de termijn waarop het zaakdossier vernietigd moet worden.",
null=True,
verbose_name="startdatum bewaartermijn",
),
),
]
65 changes: 65 additions & 0 deletions src/openzaak/components/zaken/models/zaken.py
Original file line number Diff line number Diff line change
Expand Up @@ -362,6 +362,71 @@ class Zaak(ETagMixin, AuditTrailMixin, APIMixin, ZaakIdentificatie):
blank=True,
)

processobjectaard = models.CharField(
_("procesobjectaard"),
max_length=200,
blank=True,
help_text=_(
"Omschrijving van het object, subject of gebeurtenis waarop, vanuit"
" archiveringsoptiek, de zaak betrekking heeft."
),
)

resultaattoelichting = models.TextField(
_("resultaattoelichting"),
max_length=1000,
blank=True,
help_text=_("Een toelichting op wat het resultaat van de zaak inhoudt."),
)

startdatum_bewaartermijn = models.DateField(
_("startdatum bewaartermijn"),
null=True,
blank=True,
help_text=_(
"De datum die de start markeert van de termijn waarop het zaakdossier"
" vernietigd moet worden."
),
)

processobject_datumkenmerk = models.CharField(
_("datumkenmerk"),
max_length=250,
blank=True,
help_text=_(
"De naam van de attribuutsoort van het procesobject dat bepalend is "
"voor het einde van de procestermijn."
),
)
processobject_identificatie = models.CharField(
_("identificatie"),
max_length=250,
blank=True,
help_text=_("De unieke aanduiding van het procesobject."),
)
processobject_objecttype = models.CharField(
_("objecttype"),
max_length=250,
blank=True,
help_text=_("Het soort object dat het procesobject representeert."),
)
processobject_registratie = models.CharField(
_("registratie"),
max_length=250,
blank=True,
help_text=_(
"De naam van de registratie waarvan het procesobject deel uit maakt."
),
)
processobject = GegevensGroepType(
{
"datumkenmerk": processobject_datumkenmerk,
"identificatie": processobject_identificatie,
"objecttype": processobject_objecttype,
"registratie": processobject_registratie,
},
)

objects = ZaakQuerySet.as_manager()

_current_status_uuid: Optional[UUID]
Expand Down
58 changes: 58 additions & 0 deletions src/openzaak/components/zaken/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6852,6 +6852,44 @@ components:
type: string
maxLength: 40
minLength: 1
Processobject:
description: Specificatie van de attribuutsoort van het object, subject of gebeurtenis waarop,
vanuit archiveringsoptiek, de zaak betrekking heeft en dat bepalend is voor
de start van de archiefactietermijn.
required:
- datumkenmerk
- identificatie
- objecttype
- registratie
type: object
properties:
datumkenmerk:
title: Datumkenmerk
description: De naam van de attribuutsoort van het procesobject dat bepalend
is voor het einde van de procestermijn.
type: string
maxLength: 250
minLength: 1
identificatie:
title: Identificatie
description: De unieke aanduiding van het procesobject.
type: string
maxLength: 250
minLength: 1
objecttype:
title: Objecttype
description: Het soort object dat het procesobject representeert.
type: string
maxLength: 250
minLength: 1
registratie:
title: Registratie
description: De naam van de registratie waarvan het procesobject deel uit
maakt.
type: string
maxLength: 250
minLength: 1
nullable: true
Zaak:
required:
- bronorganisatie
Expand Down Expand Up @@ -7178,6 +7216,26 @@ components:
geeft.
type: string
maxLength: 9
processobjectaard:
title: Procesobjectaard
description: Omschrijving van het object, subject of gebeurtenis waarop,
vanuit archiveringsoptiek, de zaak betrekking heeft.
type: string
maxLength: 200
resultaattoelichting:
title: Resultaattoelichting
description: Een toelichting op wat het resultaat van de zaak inhoudt.
type: string
maxLength: 1000
startdatumBewaartermijn:
title: Startdatum bewaartermijn
description: De datum die de start markeert van de termijn waarop het zaakdossier
vernietigd moet worden.
type: string
format: date
nullable: true
processobject:
$ref: '#/components/schemas/Processobject'
GeoWithin:
type: object
properties:
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 @@ -259,6 +259,9 @@ Uitleg bij mogelijke waarden:
| archiefactiedatum | De datum waarop het gearchiveerde zaakdossier vernietigd moet worden dan wel overgebracht moet worden naar een archiefbewaarplaats. Wordt automatisch berekend bij het aanmaken of wijzigen van een RESULTAAT aan deze ZAAK indien nog leeg. | string | nee | C​R​U​D |
| resultaat | URL-referentie naar het RESULTAAT. Indien geen resultaat bekend is, dan is de waarde 'null' | string | nee | ~~C~~​R​~~U~~~~D~~ |
| opdrachtgevendeOrganisatie | De krachtens publiekrecht ingestelde rechtspersoon dan wel ander niet-natuurlijk persoon waarbinnen het (bestuurs)orgaan zetelt dat opdracht heeft gegeven om taken uit te voeren waaraan de zaak invulling geeft. | string | nee | C​R​U​D |
| processobjectaard | Omschrijving van het object, subject of gebeurtenis waarop, vanuit archiveringsoptiek, de zaak betrekking heeft. | string | nee | C​R​U​D |
| resultaattoelichting | Een toelichting op wat het resultaat van de zaak inhoudt. | string | nee | C​R​U​D |
| startdatumBewaartermijn | De datum die de start markeert van de termijn waarop het zaakdossier vernietigd moet worden. | string | nee | C​R​U​D |

## AuditTrail

Expand Down
63 changes: 63 additions & 0 deletions src/openzaak/components/zaken/swagger2.0.json
Original file line number Diff line number Diff line change
Expand Up @@ -8618,6 +8618,47 @@
}
}
},
"Processobject": {
"description": "Specificatie van de attribuutsoort van het object, subject of gebeurtenis waarop, vanuit archiveringsoptiek, de zaak betrekking heeft en dat bepalend is voor de start van de archiefactietermijn.",
"required": [
"datumkenmerk",
"identificatie",
"objecttype",
"registratie"
],
"type": "object",
"properties": {
"datumkenmerk": {
"title": "Datumkenmerk",
"description": "De naam van de attribuutsoort van het procesobject dat bepalend is voor het einde van de procestermijn.",
"type": "string",
"maxLength": 250,
"minLength": 1
},
"identificatie": {
"title": "Identificatie",
"description": "De unieke aanduiding van het procesobject.",
"type": "string",
"maxLength": 250,
"minLength": 1
},
"objecttype": {
"title": "Objecttype",
"description": "Het soort object dat het procesobject representeert.",
"type": "string",
"maxLength": 250,
"minLength": 1
},
"registratie": {
"title": "Registratie",
"description": "De naam van de registratie waarvan het procesobject deel uit maakt.",
"type": "string",
"maxLength": 250,
"minLength": 1
}
},
"x-nullable": true
},
"Zaak": {
"required": [
"bronorganisatie",
Expand Down Expand Up @@ -8921,6 +8962,28 @@
"description": "De krachtens publiekrecht ingestelde rechtspersoon dan wel ander niet-natuurlijk persoon waarbinnen het (bestuurs)orgaan zetelt dat opdracht heeft gegeven om taken uit te voeren waaraan de zaak invulling geeft.",
"type": "string",
"maxLength": 9
},
"processobjectaard": {
"title": "Procesobjectaard",
"description": "Omschrijving van het object, subject of gebeurtenis waarop, vanuit archiveringsoptiek, de zaak betrekking heeft.",
"type": "string",
"maxLength": 200
},
"resultaattoelichting": {
"title": "Resultaattoelichting",
"description": "Een toelichting op wat het resultaat van de zaak inhoudt.",
"type": "string",
"maxLength": 1000
},
"startdatumBewaartermijn": {
"title": "Startdatum bewaartermijn",
"description": "De datum die de start markeert van de termijn waarop het zaakdossier vernietigd moet worden.",
"type": "string",
"format": "date",
"x-nullable": true
},
"processobject": {
"$ref": "#/definitions/Processobject"
}
}
},
Expand Down
1 change: 1 addition & 0 deletions src/openzaak/components/zaken/tests/test_audittrails.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ def test_update_zaak_audittrails(self):
modified_data = deepcopy(zaak_data)
url = modified_data.pop("url")
modified_data.pop("verlenging")
modified_data.pop("processobject")
modified_data["toelichting"] = "aangepast"

response = self.client.put(url, modified_data, **ZAAK_WRITE_KWARGS)
Expand Down
7 changes: 2 additions & 5 deletions src/openzaak/components/zaken/tests/test_zaak_kenmerken.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ def test_update_zaak_with_kenmerken(self):
data["kenmerken"].append({"kenmerk": "kenmerk 2", "bron": "bron 2"})
data["verlenging"] = None
data["opschorting"] = None
data["processobject"] = None

response = self.client.put(zaak_update_url, data, **ZAAK_WRITE_KWARGS)
self.assertEqual(response.status_code, status.HTTP_200_OK, response.data)
Expand Down Expand Up @@ -207,14 +208,10 @@ def test_full_flow(self):
data = zaak.copy()
data["verlenging"] = None
data["opschorting"] = None
data["processobject"] = None
data["einddatumGepland"] = (
end_date_planned + datetime.timedelta(days=14)
).strftime("%Y-%m-%d")

response = self.client.put(zaak_update_url, data, **ZAAK_WRITE_KWARGS)
self.assertEqual(response.status_code, status.HTTP_200_OK, response.data)

# Voeg documenten toe...
# self.client.post(...)
# Koppel documenten aan Zaak
# self.client.post(...)

0 comments on commit a026866

Please sign in to comment.