From 6b763bd649f9db5d817f564ddd2ebccd741e099b Mon Sep 17 00:00:00 2001 From: joerivrij Date: Fri, 29 Mar 2024 13:53:39 +0100 Subject: [PATCH] adds fields (#238) Adds field to set inhoud_is_vervallen. This version also bumps to v1.5.0 inline with: https://github.com/VNG-Realisatie/gemma-zaken/issues/2242 --- .bumpversion.cfg | 2 +- CHANGELOG.rst | 6 + README.rst | 6 +- package.json | 2 +- requirements/base.in | 2 +- requirements/base.txt | 6 +- requirements/ci.txt | 6 +- requirements/dev.txt | 6 +- requirements/production.txt | 4 +- src/drc/__init__.py | 2 +- .../enkelvoudig_informatieobject.py | 1 + src/drc/api/tests/test_auth.py | 1 + src/drc/api/tests/test_caching.py | 1 + src/drc/api/tests/test_dso_api_strategy.py | 2 +- .../tests/test_enkelvoudiginformatieobject.py | 2 + src/drc/api/validators.py | 3 +- .../api/views/enkelvoudig_informatieobject.py | 10 +- src/drc/conf/api.py | 2 +- src/drc/conf/plugins.py | 1 + src/drc/datamodel/constants.py | 22 +++- .../migrations/0065_auto_20231204_1305.py | 98 +++++++++++++++ .../migrations/0066_auto_20240325_0929.py | 50 ++++++++ .../models/enkelvoudig_informatieobject.py | 11 ++ src/drc/datamodel/tests/test_statussen.py | 1 + src/drc/setup.py | 1 + src/drc/tests/test_userstory_154.py | 1 + src/drc/tests/test_userstory_169.py | 1 + src/drc/tests/test_userstory_349.py | 1 + src/drc/tests/test_userstory_39.py | 1 + ...erstory_609_vertrouwelijkheidaanduiding.py | 1 + src/drc/wsgi.py | 1 + src/openapi.yaml | 117 +++++++++++++++--- src/resources.md | 7 +- 33 files changed, 325 insertions(+), 53 deletions(-) create mode 100644 src/drc/datamodel/migrations/0065_auto_20231204_1305.py create mode 100644 src/drc/datamodel/migrations/0066_auto_20240325_0929.py diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 77a94cf0..60e26e03 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,7 +1,7 @@ [bumpversion] commit = False tag = False -current_version = 1.4.3 +current_version = 1.5.0 parse = (?P\d+)\.(?P\d+)\.(?P\d+)([-](?P(rc|alpha))+(?P\d+))? serialize = {major}.{minor}.{patch}-{release}{build} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index a0e6f080..357ec2b5 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,5 +1,11 @@ =========== Wijzigingen +=========== +1.5.0 (2024-25-03) +=========== + +- **Added:** Fields on EIO (inhoudIsVervallen). + =========== 1.4.3 (2023-10-24) =========== diff --git a/README.rst b/README.rst index e3b746d3..a8709547 100644 --- a/README.rst +++ b/README.rst @@ -2,7 +2,7 @@ Documenten API ============== -:Version: 1.4.3 +:Version: 1.5.0 :Source: https://github.com/VNG-Realisatie/documenten-api :Keywords: zaken, zaakgericht werken, GEMMA, RGBZ, DRC @@ -24,7 +24,9 @@ Versie Release datum API specificatie master n.v.t. `ReDoc `_, `Scopes `_ `Berichtkenmerken `_ `Swagger `_ (`verschillen `_) -1.4.3 2023-10-24 `ReDoc `_, `Scopes `_ `Berichtkenmerken `_ +1.5.0 2024-03-25 `ReDoc `_, `Scopes `_ `Berichtkenmerken `_ + `Swagger `_ +1.4.3 2023-10-24 `ReDoc `_, `Scopes `_ `Berichtkenmerken `_ `Swagger `_ 1.4.1 2023-08-29 `ReDoc `_, `Scopes `_ `Berichtkenmerken `_ `Swagger `_ diff --git a/package.json b/package.json index 45befd19..38cb0516 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "drc", - "version": "1.4.3", + "version": "1.5.0", "description": "drc referentie implementatie API", "main": "src/index.js", "directories": { diff --git a/requirements/base.in b/requirements/base.in index ad7e6875..287ae053 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -1,4 +1,4 @@ -Pillow +Pillow==10.2.0 psycopg2-binary python-dotenv python-dateutil diff --git a/requirements/base.txt b/requirements/base.txt index ae7fa4b0..12aff78c 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -144,9 +144,9 @@ oyaml==0.7 # via vng-api-common packaging==21.3 # via sphinx -pillow==6.2.1 +pillow==10.2.0 # via -r requirements/base.in -psycopg2-binary==2.9.3 +psycopg2-binary==2.9.9 # via -r requirements/base.in pycparser==2.21 # via cffi @@ -190,7 +190,7 @@ raven==6.9.0 # via -r requirements/base.in regex==2022.7.25 # via textile -requests==2.21 +requests==2.21.0 # via # gemma-zds-client # requests-mock diff --git a/requirements/ci.txt b/requirements/ci.txt index c2ef0789..43cba6f0 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -235,13 +235,13 @@ pathspec==0.9.0 # via black pep8==1.7.1 # via -r requirements/testing.in -pillow==6.2.1 +pillow==10.2.0 # via -r requirements/base.txt platformdirs==2.5.2 # via # black # pylint -psycopg2-binary==2.9.3 +psycopg2-binary==2.9.9 # via -r requirements/base.txt pycparser==2.21 # via @@ -360,7 +360,7 @@ tomli==2.0.1 # pylint tomlkit==0.11.4 # via pylint -typing-extensions==4.3.0 +typing-extensions==4.10.0 # via # astroid # black diff --git a/requirements/dev.txt b/requirements/dev.txt index 1a6560c5..babceb03 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -238,13 +238,13 @@ pathspec==0.9.0 # via black pep8==1.7.1 # via -r requirements/testing.in -pillow==6.2.1 +pillow==10.2.0 # via -r requirements/base.txt platformdirs==2.5.2 # via # black # pylint -psycopg2-binary==2.9.3 +psycopg2-binary==2.9.9 # via -r requirements/base.txt pycparser==2.21 # via @@ -364,7 +364,7 @@ tomli==2.0.1 # pylint tomlkit==0.11.4 # via pylint -typing-extensions==4.3.0 +typing-extensions==4.10.0 # via # astroid # black diff --git a/requirements/production.txt b/requirements/production.txt index 1bfb79c9..1ca2c41b 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -205,9 +205,9 @@ packaging==21.3 # via # -r requirements/base.txt # sphinx -pillow==6.2.1 +pillow==10.2.0 # via -r requirements/base.txt -psycopg2-binary==2.9.3 +psycopg2-binary==2.9.9 # via -r requirements/base.txt pycparser==2.21 # via diff --git a/src/drc/__init__.py b/src/drc/__init__.py index dc821658..e0b8de6e 100644 --- a/src/drc/__init__.py +++ b/src/drc/__init__.py @@ -7,7 +7,7 @@ import re from collections import namedtuple -__version__ = "1.4.3" +__version__ = "1.5.0" __author__ = "VNG Realisatie" __homepage__ = "https://github.com/VNG-Realisatie/documenten-api" __docformat__ = "restructuredtext" diff --git a/src/drc/api/serializers/enkelvoudig_informatieobject.py b/src/drc/api/serializers/enkelvoudig_informatieobject.py index 0d74ac8f..4c13dcd4 100644 --- a/src/drc/api/serializers/enkelvoudig_informatieobject.py +++ b/src/drc/api/serializers/enkelvoudig_informatieobject.py @@ -132,6 +132,7 @@ class Meta: "locked", "bestandsdelen", "trefwoorden", + "inhoud_is_vervallen", ) extra_kwargs = { "informatieobjecttype": { diff --git a/src/drc/api/tests/test_auth.py b/src/drc/api/tests/test_auth.py index c5502153..f6118b3b 100644 --- a/src/drc/api/tests/test_auth.py +++ b/src/drc/api/tests/test_auth.py @@ -1,6 +1,7 @@ """ Guarantee that the proper authorization amchinery is in place. """ + from django.test import override_settings from rest_framework import status diff --git a/src/drc/api/tests/test_caching.py b/src/drc/api/tests/test_caching.py index 2fd02c30..fe59320c 100644 --- a/src/drc/api/tests/test_caching.py +++ b/src/drc/api/tests/test_caching.py @@ -1,6 +1,7 @@ """ Test that the caching mechanisms are in place. """ + from rest_framework import status from rest_framework.test import APITestCase, APITransactionTestCase from vng_api_common.tests import CacheMixin, JWTAuthMixin, generate_jwt_auth, reverse diff --git a/src/drc/api/tests/test_dso_api_strategy.py b/src/drc/api/tests/test_dso_api_strategy.py index 79d4d0fa..9c1f55c7 100644 --- a/src/drc/api/tests/test_dso_api_strategy.py +++ b/src/drc/api/tests/test_dso_api_strategy.py @@ -23,7 +23,7 @@ def test_api_19_documentation_version_yaml(self): @override_settings(ROOT_URLCONF="drc.api.tests.test_urls") def test_api_24_version_header(self): response = self.client.get("/test-view") - self.assertEqual(response["API-version"], "1.4.3") + self.assertEqual(response["API-version"], "1.5.0") class DSOApi50Tests(APITestCase): diff --git a/src/drc/api/tests/test_enkelvoudiginformatieobject.py b/src/drc/api/tests/test_enkelvoudiginformatieobject.py index c6cecf2c..9261c5a7 100644 --- a/src/drc/api/tests/test_enkelvoudiginformatieobject.py +++ b/src/drc/api/tests/test_enkelvoudiginformatieobject.py @@ -57,6 +57,7 @@ def test_create(self, *mocks): "informatieobjecttype": INFORMATIEOBJECTTYPE, "vertrouwelijkheidaanduiding": "openbaar", "verschijningsvorm": "Vorm A", + "inhoudIsVervallen": None, } # Send to the API @@ -175,6 +176,7 @@ def test_read(self): "locked": False, "bestandsdelen": [], "trefwoorden": None, + "inhoudIsVervallen": None, } response_data = response.json() self.assertEqual(sorted(response_data.keys()), sorted(expected.keys())) diff --git a/src/drc/api/validators.py b/src/drc/api/validators.py index 4dacb38d..bbe78174 100644 --- a/src/drc/api/validators.py +++ b/src/drc/api/validators.py @@ -22,7 +22,8 @@ class OneAddressValidator: """ Class to validate that only one address is send with each request and only one address is associated with each Verzending within the database. To replace an address with PUT/PATCH, if it is the same GegevensGroepType, it can just be overwritten. If it is to be replaced with another GegevensGroepType, - the existing GegevensGroepType address, mijn_overheid, emailadres and faxnummer have to be set equal to None to indicate it will be removed.""" + the existing GegevensGroepType address, mijn_overheid, emailadres and faxnummer have to be set equal to None to indicate it will be removed. + """ def set_context(self, serializer): self.instance = getattr(serializer, "instance", None) diff --git a/src/drc/api/views/enkelvoudig_informatieobject.py b/src/drc/api/views/enkelvoudig_informatieobject.py index 8da96a10..fd906d68 100644 --- a/src/drc/api/views/enkelvoudig_informatieobject.py +++ b/src/drc/api/views/enkelvoudig_informatieobject.py @@ -95,19 +95,13 @@ update=extend_schema( summary=_("Werk een (ENKELVOUDIG) INFORMATIEOBJECT in zijn geheel bij."), description=_( - "Dit creëert altijd een nieuwe versie van het (ENKELVOUDIG) INFORMATIEOBJECT. \n" - " \n**Er wordt gevalideerd op**\n" - "- correcte `lock` waarde\n" - "- status NIET `definitief`" + "Dit creëert altijd een nieuwe versie van het (ENKELVOUDIG) INFORMATIEOBJECT." ), ), partial_update=extend_schema( summary=_("Werk een (ENKELVOUDIG) INFORMATIEOBJECT deels bij."), description=_( - "Dit creëert altijd een nieuwe versie van het (ENKELVOUDIG) INFORMATIEOBJECT. \n" - "\n**Er wordt gevalideerd op**\n" - " - correcte `lock` waarde\n" - " - status NIET `definitief`" + "Dit creëert altijd een nieuwe versie van het (ENKELVOUDIG) INFORMATIEOBJECT." ), ), destroy=extend_schema( diff --git a/src/drc/conf/api.py b/src/drc/conf/api.py index 81197d6b..854e95c0 100644 --- a/src/drc/conf/api.py +++ b/src/drc/conf/api.py @@ -2,7 +2,7 @@ from vng_api_common.conf.api import * # noqa - imports white-listed -API_VERSION = "1.4.3" +API_VERSION = "1.5.0" REST_FRAMEWORK = BASE_REST_FRAMEWORK.copy() diff --git a/src/drc/conf/plugins.py b/src/drc/conf/plugins.py index c822a21f..950c04e8 100644 --- a/src/drc/conf/plugins.py +++ b/src/drc/conf/plugins.py @@ -1,6 +1,7 @@ """ Settings for plugins """ + import os import sys from importlib import import_module diff --git a/src/drc/datamodel/constants.py b/src/drc/datamodel/constants.py index b8e9b93f..8d4f4ec0 100644 --- a/src/drc/datamodel/constants.py +++ b/src/drc/datamodel/constants.py @@ -12,10 +12,14 @@ class Statussen(DjangoChoices): _("In bewerking"), description=_("Aan het informatieobject wordt nog gewerkt."), ) - ter_vaststelling = ChoiceItem( - "ter_vaststelling", - _("Ter vaststelling"), - description=_("Informatieobject gereed maar moet nog vastgesteld " "worden."), + concept = ChoiceItem( + "concept", + _("Concept"), + description=_( + "Het document is inhoudelijk klaar om voorgelegd te" + "worden aan anderen en zo nodig aangepast te worden op" + "basis van commentaar.." + ), ) definitief = ChoiceItem( "definitief", @@ -25,6 +29,16 @@ class Statussen(DjangoChoices): "vastgesteld dan wel ontvangen." ), ) + ter_vaststelling = ChoiceItem( + "ter_vaststelling", + _("Ter vaststelling"), + description=_("Informatieobject gereed maar moet nog vastgesteld " "worden."), + ) + Vastgesteld = ChoiceItem( + "vastgesteld", + _("Vastgesteld"), + description=_("Het besluitvormingstraject is afgerond."), + ) gearchiveerd = ChoiceItem( "gearchiveerd", _("Gearchiveerd"), diff --git a/src/drc/datamodel/migrations/0065_auto_20231204_1305.py b/src/drc/datamodel/migrations/0065_auto_20231204_1305.py new file mode 100644 index 00000000..afbafe19 --- /dev/null +++ b/src/drc/datamodel/migrations/0065_auto_20231204_1305.py @@ -0,0 +1,98 @@ +# Generated by Django 3.2.13 on 2023-12-04 13:05 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("datamodel", "0064_bestandsdeel_lock"), + ] + + operations = [ + migrations.AddField( + model_name="enkelvoudiginformatieobject", + name="archiefstatus", + field=models.CharField( + choices=[ + ( + "nog_te_archiveren", + "De zaak cq. het zaakdossier is nog niet als geheel gearchiveerd.", + ), + ( + "gearchiveerd", + "De zaak cq. het zaakdossier is als geheel niet-wijzigbaar bewaarbaar gemaakt.", + ), + ], + default="nog_te_archiveren", + help_text="Aanduiding of het zaakdossier blijvend bewaard of na een bepaalde termijn vernietigd moet worden.", + max_length=40, + verbose_name="archiefstatus", + ), + ), + migrations.AddField( + model_name="enkelvoudiginformatieobject", + name="bevat_persoonsgegevens", + field=models.CharField( + choices=[ + ( + "onbekend", + "Niet bekend of het document persoonsgegevens bevat dieniet vrijelijk openbaar gemaakt mogen worden.", + ), + ( + "ja", + "Niet bekend of het document persoonsgegevens bevat dieniet vrijelijk openbaar gemaakt mogen worden.", + ), + ( + "nee", + "Bevat geen persoonsgegevens die niet vrijelijk openbaargemaakt mogen worden.", + ), + ], + default="onbekend", + help_text="Legt vast of het document persoonsgegevens bevat die niet vrijelijk openbaar gemaakt mogen worden.", + max_length=40, + null=True, + verbose_name="bevat persoonsgegevens", + ), + ), + migrations.AddField( + model_name="enkelvoudiginformatieobject", + name="ontvangen", + field=models.BooleanField( + blank=True, + default=None, + help_text="Legt vast of het document afkomstig is van een externe partij.", + null=True, + verbose_name="ontvangen", + ), + ), + migrations.AddField( + model_name="enkelvoudiginformatieobject", + name="vervallen", + field=models.BooleanField( + blank=True, + default=None, + help_text="Legt vast of het document een rol speelt in het huidige of toekomstige proces.", + null=True, + verbose_name="vervallen", + ), + ), + migrations.AlterField( + model_name="enkelvoudiginformatieobject", + name="status", + field=models.CharField( + blank=True, + choices=[ + ("in_bewerking", "In bewerking"), + ("concept", "Concept"), + ("definitief", "Definitief"), + ("ter_vaststelling", "Ter vaststelling"), + ("vastgesteld", "Vastgesteld"), + ("gearchiveerd", "Gearchiveerd"), + ], + help_text="Aanduiding van de stand van zaken van een INFORMATIEOBJECT. De waarden 'in bewerking' en 'ter vaststelling' komen niet voor als het attribuut `ontvangstdatum` van een waarde is voorzien. Wijziging van de Status in 'gearchiveerd' impliceert dat het informatieobject een duurzaam, niet-wijzigbaar Formaat dient te hebben.", + max_length=20, + verbose_name="status", + ), + ), + ] diff --git a/src/drc/datamodel/migrations/0066_auto_20240325_0929.py b/src/drc/datamodel/migrations/0066_auto_20240325_0929.py new file mode 100644 index 00000000..72986a98 --- /dev/null +++ b/src/drc/datamodel/migrations/0066_auto_20240325_0929.py @@ -0,0 +1,50 @@ +# Generated by Django 3.2.13 on 2024-03-25 09:29 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("datamodel", "0065_auto_20231204_1305"), + ] + + operations = [ + migrations.RemoveField( + model_name="enkelvoudiginformatieobject", + name="archiefstatus", + ), + migrations.RemoveField( + model_name="enkelvoudiginformatieobject", + name="bevat_persoonsgegevens", + ), + migrations.RemoveField( + model_name="enkelvoudiginformatieobject", + name="ontvangen", + ), + migrations.RemoveField( + model_name="enkelvoudiginformatieobject", + name="vervallen", + ), + migrations.AddField( + model_name="enkelvoudiginformatieobject", + name="inhoud_is_vervallen", + field=models.BooleanField( + blank=True, + default=None, + help_text="Geeft aan of de inhoud van het informatieobject vervallen (dus niet langer geldig) is.", + null=True, + verbose_name="inhoud is vervallen", + ), + ), + migrations.AlterField( + model_name="bestandsdeel", + name="lock", + field=models.CharField( + blank=True, + default="", + help_text="Hash string, which represents id of the lock", + max_length=100, + ), + ), + ] diff --git a/src/drc/datamodel/models/enkelvoudig_informatieobject.py b/src/drc/datamodel/models/enkelvoudig_informatieobject.py index 679bbdec..58eb9def 100644 --- a/src/drc/datamodel/models/enkelvoudig_informatieobject.py +++ b/src/drc/datamodel/models/enkelvoudig_informatieobject.py @@ -89,6 +89,7 @@ class EnkelvoudigInformatieObject(ETagMixin, APIMixin, InformatieObject): "informatieobject is vastgelegd, inclusief extensie." ), ) + bestandsomvang = models.BigIntegerField( _("bestandsomvang"), validators=[MinValueValidator(0)], @@ -156,5 +157,15 @@ class EnkelvoudigInformatieObject(ETagMixin, APIMixin, InformatieObject): null=True, ) + inhoud_is_vervallen = models.BooleanField( + _("inhoud is vervallen"), + blank=True, + default=None, + null=True, + help_text=_( + "Geeft aan of de inhoud van het informatieobject vervallen (dus niet langer geldig) is." + ), + ) + class Meta: unique_together = ("uuid", "versie") diff --git a/src/drc/datamodel/tests/test_statussen.py b/src/drc/datamodel/tests/test_statussen.py index bd896262..b54f33c8 100644 --- a/src/drc/datamodel/tests/test_statussen.py +++ b/src/drc/datamodel/tests/test_statussen.py @@ -1,6 +1,7 @@ """ Tests for the business logic w/r to statussen, from RGBZ. """ + from datetime import date from django.core.exceptions import ValidationError diff --git a/src/drc/setup.py b/src/drc/setup.py index adfcc92d..fc7252ad 100644 --- a/src/drc/setup.py +++ b/src/drc/setup.py @@ -9,6 +9,7 @@ do NOT import anything Django related here, as this file needs to be loaded before Django is initialized. """ + import os from dotenv import load_dotenv diff --git a/src/drc/tests/test_userstory_154.py b/src/drc/tests/test_userstory_154.py index 446b66fe..7079d0c3 100644 --- a/src/drc/tests/test_userstory_154.py +++ b/src/drc/tests/test_userstory_154.py @@ -5,6 +5,7 @@ * https://github.com/VNG-Realisatie/gemma-zaken/issues/154 (us) * https://github.com/VNG-Realisatie/gemma-zaken/issues/239 (mapping) """ + from rest_framework import status from rest_framework.test import APITestCase from vng_api_common.tests import JWTAuthMixin, TypeCheckMixin, get_operation_url diff --git a/src/drc/tests/test_userstory_169.py b/src/drc/tests/test_userstory_169.py index 4c099cbf..00b546b2 100644 --- a/src/drc/tests/test_userstory_169.py +++ b/src/drc/tests/test_userstory_169.py @@ -5,6 +5,7 @@ * https://github.com/VNG-Realisatie/gemma-zaken/issues/169 (us) * https://github.com/VNG-Realisatie/gemma-zaken/issues/182 (mapping) """ + import base64 from io import BytesIO from unittest.mock import patch diff --git a/src/drc/tests/test_userstory_349.py b/src/drc/tests/test_userstory_349.py index 52acf527..42d56b01 100644 --- a/src/drc/tests/test_userstory_349.py +++ b/src/drc/tests/test_userstory_349.py @@ -1,6 +1,7 @@ """ Ref: https://github.com/VNG-Realisatie/gemma-zaken/issues/349 """ + from django.test import override_settings from rest_framework import status diff --git a/src/drc/tests/test_userstory_39.py b/src/drc/tests/test_userstory_39.py index 23b402b3..fa40ffc0 100644 --- a/src/drc/tests/test_userstory_39.py +++ b/src/drc/tests/test_userstory_39.py @@ -1,6 +1,7 @@ """ Test the flow described in https://github.com/VNG-Realisatie/gemma-zaken/issues/39 """ + import base64 from datetime import date from unittest.mock import patch diff --git a/src/drc/tests/test_userstory_609_vertrouwelijkheidaanduiding.py b/src/drc/tests/test_userstory_609_vertrouwelijkheidaanduiding.py index ad3c34b2..2ac318d7 100644 --- a/src/drc/tests/test_userstory_609_vertrouwelijkheidaanduiding.py +++ b/src/drc/tests/test_userstory_609_vertrouwelijkheidaanduiding.py @@ -4,6 +4,7 @@ See: https://github.com/VNG-Realisatie/gemma-zaken/issues/609 """ + from base64 import b64encode from unittest.mock import patch diff --git a/src/drc/wsgi.py b/src/drc/wsgi.py index 1c2944db..d2f40401 100644 --- a/src/drc/wsgi.py +++ b/src/drc/wsgi.py @@ -6,6 +6,7 @@ For more information on this file, see https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/ """ + import os from django.core.wsgi import get_wsgi_application diff --git a/src/openapi.yaml b/src/openapi.yaml index 3d0eef1b..931aefc3 100644 --- a/src/openapi.yaml +++ b/src/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.0.3 info: title: Documenten API - version: 1.4.3 + version: 1.5.0 description: "Een API om een documentregistratiecomponent (DRC) te benaderen.\n\n\ In een documentregistratiecomponent worden INFORMATIEOBJECTen opgeslagen. Een\n\ @@ -83,6 +83,7 @@ paths: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/BestandsDeelRequest' + required: true security: - JWT-Claims: - documenten.bijwerken @@ -1103,8 +1104,7 @@ paths: operationId: enkelvoudiginformatieobject_update description: "Dit cre\xEBert altijd een nieuwe versie van het (ENKELVOUDIG)\ - \ INFORMATIEOBJECT. \n \n**Er wordt gevalideerd op**\n- correcte `lock` waarde\n\ - - status NIET `definitief`" + \ INFORMATIEOBJECT." summary: Werk een (ENKELVOUDIG) INFORMATIEOBJECT in zijn geheel bij. parameters: - in: path @@ -1292,8 +1292,7 @@ paths: operationId: enkelvoudiginformatieobject_partial_update description: "Dit cre\xEBert altijd een nieuwe versie van het (ENKELVOUDIG)\ - \ INFORMATIEOBJECT. \n\n**Er wordt gevalideerd op**\n - correcte `lock` waarde\n\ - \ - status NIET `definitief`" + \ INFORMATIEOBJECT." summary: Werk een (ENKELVOUDIG) INFORMATIEOBJECT deels bij. parameters: - in: path @@ -5452,7 +5451,6 @@ components: title: voltooid lock: type: string - readOnly: true description: Hash string, which represents id of the lock of related informatieobject title: lock required: @@ -5470,6 +5468,13 @@ components: writeOnly: true description: De (binaire) bestandsinhoud van dit specifieke bestandsdeel. title: inhoud + lock: + type: string + minLength: 1 + description: Hash string, which represents id of the lock of related informatieobject + title: lock + required: + - lock BestandsDeelResponse: type: object properties: @@ -5922,12 +5927,17 @@ components: * `in_bewerking` - (In bewerking) Aan het informatieobject wordt nog gewerkt. - * `ter_vaststelling` - (Ter vaststelling) Informatieobject gereed maar - moet nog vastgesteld worden. + * `concept` - (Concept) Het document is inhoudelijk klaar om voorgelegd + teworden aan anderen en zo nodig aangepast te worden opbasis van commentaar.. * `definitief` - (Definitief) Informatieobject door bevoegd iets of iemand vastgesteld dan wel ontvangen. + * `ter_vaststelling` - (Ter vaststelling) Informatieobject gereed maar + moet nog vastgesteld worden. + + * `vastgesteld` - (Vastgesteld) Het besluitvormingstraject is afgerond. + * `gearchiveerd` - (Gearchiveerd) Informatieobject duurzaam bewaarbaar gemaakt; een gearchiveerd informatie-element." title: status @@ -6086,6 +6096,13 @@ components: nullable: true description: Een lijst van trefwoorden gescheiden door comma's. title: trefwoorden + inhoudIsVervallen: + type: boolean + nullable: true + description: + Geeft aan of de inhoud van het informatieobject vervallen (dus + niet langer geldig) is. + title: inhoud is vervallen required: - auteur - beginRegistratie @@ -6183,12 +6200,17 @@ components: * `in_bewerking` - (In bewerking) Aan het informatieobject wordt nog gewerkt. - * `ter_vaststelling` - (Ter vaststelling) Informatieobject gereed maar - moet nog vastgesteld worden. + * `concept` - (Concept) Het document is inhoudelijk klaar om voorgelegd + teworden aan anderen en zo nodig aangepast te worden opbasis van commentaar.. * `definitief` - (Definitief) Informatieobject door bevoegd iets of iemand vastgesteld dan wel ontvangen. + * `ter_vaststelling` - (Ter vaststelling) Informatieobject gereed maar + moet nog vastgesteld worden. + + * `vastgesteld` - (Vastgesteld) Het besluitvormingstraject is afgerond. + * `gearchiveerd` - (Gearchiveerd) Informatieobject duurzaam bewaarbaar gemaakt; een gearchiveerd informatie-element." title: status @@ -6321,6 +6343,13 @@ components: nullable: true description: Een lijst van trefwoorden gescheiden door comma's. title: trefwoorden + inhoudIsVervallen: + type: boolean + nullable: true + description: + Geeft aan of de inhoud van het informatieobject vervallen (dus + niet langer geldig) is. + title: inhoud is vervallen required: - auteur - bronorganisatie @@ -6420,12 +6449,17 @@ components: * `in_bewerking` - (In bewerking) Aan het informatieobject wordt nog gewerkt. - * `ter_vaststelling` - (Ter vaststelling) Informatieobject gereed maar - moet nog vastgesteld worden. + * `concept` - (Concept) Het document is inhoudelijk klaar om voorgelegd + teworden aan anderen en zo nodig aangepast te worden opbasis van commentaar.. * `definitief` - (Definitief) Informatieobject door bevoegd iets of iemand vastgesteld dan wel ontvangen. + * `ter_vaststelling` - (Ter vaststelling) Informatieobject gereed maar + moet nog vastgesteld worden. + + * `vastgesteld` - (Vastgesteld) Het besluitvormingstraject is afgerond. + * `gearchiveerd` - (Gearchiveerd) Informatieobject duurzaam bewaarbaar gemaakt; een gearchiveerd informatie-element." title: status @@ -6584,6 +6618,13 @@ components: nullable: true description: Een lijst van trefwoorden gescheiden door comma's. title: trefwoorden + inhoudIsVervallen: + type: boolean + nullable: true + description: + Geeft aan of de inhoud van het informatieobject vervallen (dus + niet langer geldig) is. + title: inhoud is vervallen required: - auteur - beginRegistratie @@ -6681,12 +6722,17 @@ components: * `in_bewerking` - (In bewerking) Aan het informatieobject wordt nog gewerkt. - * `ter_vaststelling` - (Ter vaststelling) Informatieobject gereed maar - moet nog vastgesteld worden. + * `concept` - (Concept) Het document is inhoudelijk klaar om voorgelegd + teworden aan anderen en zo nodig aangepast te worden opbasis van commentaar.. * `definitief` - (Definitief) Informatieobject door bevoegd iets of iemand vastgesteld dan wel ontvangen. + * `ter_vaststelling` - (Ter vaststelling) Informatieobject gereed maar + moet nog vastgesteld worden. + + * `vastgesteld` - (Vastgesteld) Het besluitvormingstraject is afgerond. + * `gearchiveerd` - (Gearchiveerd) Informatieobject duurzaam bewaarbaar gemaakt; een gearchiveerd informatie-element." title: status @@ -6819,6 +6865,13 @@ components: nullable: true description: Een lijst van trefwoorden gescheiden door comma's. title: trefwoorden + inhoudIsVervallen: + type: boolean + nullable: true + description: + Geeft aan of de inhoud van het informatieobject vervallen (dus + niet langer geldig) is. + title: inhoud is vervallen lock: type: string writeOnly: true @@ -7378,12 +7431,17 @@ components: * `in_bewerking` - (In bewerking) Aan het informatieobject wordt nog gewerkt. - * `ter_vaststelling` - (Ter vaststelling) Informatieobject gereed maar - moet nog vastgesteld worden. + * `concept` - (Concept) Het document is inhoudelijk klaar om voorgelegd + teworden aan anderen en zo nodig aangepast te worden opbasis van commentaar.. * `definitief` - (Definitief) Informatieobject door bevoegd iets of iemand vastgesteld dan wel ontvangen. + * `ter_vaststelling` - (Ter vaststelling) Informatieobject gereed maar + moet nog vastgesteld worden. + + * `vastgesteld` - (Vastgesteld) Het besluitvormingstraject is afgerond. + * `gearchiveerd` - (Gearchiveerd) Informatieobject duurzaam bewaarbaar gemaakt; een gearchiveerd informatie-element." title: status @@ -7516,6 +7574,13 @@ components: nullable: true description: Een lijst van trefwoorden gescheiden door comma's. title: trefwoorden + inhoudIsVervallen: + type: boolean + nullable: true + description: + Geeft aan of de inhoud van het informatieobject vervallen (dus + niet langer geldig) is. + title: inhoud is vervallen lock: type: string writeOnly: true @@ -7824,12 +7889,17 @@ components: * `in_bewerking` - (In bewerking) Aan het informatieobject wordt nog gewerkt. - * `ter_vaststelling` - (Ter vaststelling) Informatieobject gereed maar - moet nog vastgesteld worden. + * `concept` - (Concept) Het document is inhoudelijk klaar om voorgelegd + teworden aan anderen en zo nodig aangepast te worden opbasis van commentaar.. * `definitief` - (Definitief) Informatieobject door bevoegd iets of iemand vastgesteld dan wel ontvangen. + * `ter_vaststelling` - (Ter vaststelling) Informatieobject gereed maar + moet nog vastgesteld worden. + + * `vastgesteld` - (Vastgesteld) Het besluitvormingstraject is afgerond. + * `gearchiveerd` - (Gearchiveerd) Informatieobject duurzaam bewaarbaar gemaakt; een gearchiveerd informatie-element." title: status @@ -7988,6 +8058,13 @@ components: nullable: true description: Een lijst van trefwoorden gescheiden door comma's. title: trefwoorden + inhoudIsVervallen: + type: boolean + nullable: true + description: + Geeft aan of de inhoud van het informatieobject vervallen (dus + niet langer geldig) is. + title: inhoud is vervallen required: - auteur - beginRegistratie @@ -8009,8 +8086,10 @@ components: StatusEnum: enum: - in_bewerking - - ter_vaststelling + - concept - definitief + - ter_vaststelling + - vastgesteld - gearchiveerd type: string UnlockEnkelvoudigInformatieObjectRequest: diff --git a/src/resources.md b/src/resources.md index c4507ab4..6754a9c3 100755 --- a/src/resources.md +++ b/src/resources.md @@ -60,7 +60,7 @@ Objecttype op [GEMMA Online](https://www.gemmaonline.nl/index.php/Rgbz_1.0/doc/o | volgnummer | Een volgnummer dat de volgorde van de bestandsdelen aangeeft. | integer | ja | ~~C~~​R​~~U~~​~~D~~ | | omvang | De grootte van dit specifieke bestandsdeel. | integer | ja | ~~C~~​R​~~U~~​~~D~~ | | voltooid | Indicatie of dit bestandsdeel volledig is geupload. Dat wil zeggen: het aantal bytes dat staat genoemd bij grootte is daadwerkelijk ontvangen. | boolean | ja | ~~C~~​R​~~U~~​~~D~~ | -| lock | Hash string, which represents id of the lock of related informatieobject | string | ja | ~~C~~​R​~~U~~​~~D~~ | +| lock | Hash string, which represents id of the lock of related informatieobject | string | ja | C​R​U​D | ## EnkelvoudigInformatieObject @@ -91,8 +91,10 @@ Uitleg bij mogelijke waarden: Uitleg bij mogelijke waarden: * `in_bewerking` - (In bewerking) Aan het informatieobject wordt nog gewerkt. -* `ter_vaststelling` - (Ter vaststelling) Informatieobject gereed maar moet nog vastgesteld worden. +* `concept` - (Concept) Het document is inhoudelijk klaar om voorgelegd teworden aan anderen en zo nodig aangepast te worden opbasis van commentaar.. * `definitief` - (Definitief) Informatieobject door bevoegd iets of iemand vastgesteld dan wel ontvangen. +* `ter_vaststelling` - (Ter vaststelling) Informatieobject gereed maar moet nog vastgesteld worden. +* `vastgesteld` - (Vastgesteld) Het besluitvormingstraject is afgerond. * `gearchiveerd` - (Gearchiveerd) Informatieobject duurzaam bewaarbaar gemaakt; een gearchiveerd informatie-element. | | nee | C​R​U​D | | formaat | Het "Media Type" (voorheen "MIME type") voor de wijze waaropde inhoud van het INFORMATIEOBJECT is vastgelegd in een computerbestand. Voorbeeld: `application/msword`. Zie: https://www.iana.org/assignments/media-types/media-types.xhtml | string | nee | C​R​U​D | | taal | Een ISO 639-2/B taalcode waarin de inhoud van het INFORMATIEOBJECT is vastgelegd. Voorbeeld: `dut`. Zie: https://www.iso.org/standard/4767.html | string | ja | C​R​U​D | @@ -117,6 +119,7 @@ Uitleg bij mogelijke waarden: | locked | Geeft aan of het document gelocked is. Alleen als een document gelocked is, mogen er aanpassingen gemaakt worden. | boolean | ja | ~~C~~​R​~~U~~​~~D~~ | | bestandsdelen | | array | ja | ~~C~~​R​~~U~~​~~D~~ | | trefwoorden | Een lijst van trefwoorden gescheiden door comma's. | array | nee | C​R​U​D | +| inhoudIsVervallen | Geeft aan of de inhoud van het informatieobject vervallen (dus niet langer geldig) is. | boolean | nee | C​R​U​D | ## Gebruiksrechten