From f6e017dcd08aa086eb7babe9012ea4b4da819a93 Mon Sep 17 00:00:00 2001 From: Paul Schilling Date: Fri, 26 Jul 2024 12:40:04 +0200 Subject: [PATCH 1/3] [#2640] Add 'naam' field to ResultaatType for E-suite compatibility --- src/open_inwoner/openzaak/api_models.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/open_inwoner/openzaak/api_models.py b/src/open_inwoner/openzaak/api_models.py index 81e0a41a96..27f3c89dec 100644 --- a/src/open_inwoner/openzaak/api_models.py +++ b/src/open_inwoner/openzaak/api_models.py @@ -83,6 +83,7 @@ def process_data(self) -> dict: result_text = glom_multiple( self, ( + "resultaat.resultaattype.naam", "resultaat.resultaattype.omschrijving", "resultaat.resultaattype.omschrijving_generiek", "resultaat.resultaattype.resultaattypeomschrijving", @@ -230,6 +231,9 @@ class ResultaatType(ZGWModel): archiefactietermijn: Optional[relativedelta] = None brondatum_archiefprocedure: Optional[dict] = None + # E-suite compatibility + naam: str = "" # for result description ("omschrijving") with >20 chars + @dataclass class Resultaat(ZGWModel): From c57f14db3ace0625718a1bcf47ef741420c44c6d Mon Sep 17 00:00:00 2001 From: Paul Schilling Date: Fri, 26 Jul 2024 14:26:40 +0200 Subject: [PATCH 2/3] [#2640] Refactor mocks for case detail tests - Group mocks according to API (Catalogi API, Documenten API etc.) - Sort API mocks according to order of dependency (e.g. Zaken API depends on Catalogi API but not vice versa) --- .../openzaak/tests/test_case_detail.py | 343 +++++++++--------- 1 file changed, 176 insertions(+), 167 deletions(-) diff --git a/src/open_inwoner/openzaak/tests/test_case_detail.py b/src/open_inwoner/openzaak/tests/test_case_detail.py index 4805c9dfa6..896d42cc2d 100644 --- a/src/open_inwoner/openzaak/tests/test_case_detail.py +++ b/src/open_inwoner/openzaak/tests/test_case_detail.py @@ -126,54 +126,14 @@ def setUp(self): ) # - # zaken + # Catalogi API (ZTC) + # https://test.openzaak.nl/catalogi/api/v1/schema/ # - self.zaak = generate_oas_component_cached( - "zrc", - "schemas/Zaak", - uuid="d8bbdeb7-770f-4ca9-b1ea-77b4730bf67d", - url=f"{ZAKEN_ROOT}zaken/d8bbdeb7-770f-4ca9-b1ea-77b4730bf67d", - zaaktype=f"{CATALOGI_ROOT}zaaktypen/0caa29cb-0167-426f-8dc1-88bebd7c8804", - identificatie="ZAAK-2022-0000000024", - omschrijving="Zaak naar aanleiding van ingezonden formulier", - startdatum="2022-01-02", - einddatumGepland="2022-01-04", - uiterlijkeEinddatumAfdoening="2022-01-05", - status=f"{ZAKEN_ROOT}statussen/3da89990-c7fc-476a-ad13-c9023450083c", - resultaat=f"{ZAKEN_ROOT}resultaten/a44153aa-ad2c-6a07-be75-15add5113", - vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduidingen.openbaar, - ) - self.zaak_eherkenning = generate_oas_component_cached( - "zrc", - "schemas/Zaak", - uuid="3b751e7e-cf17-4200-9ee4-4a42d801ea21", - url=f"{ZAKEN_ROOT}zaken/3b751e7e-cf17-4200-9ee4-4a42d801ea21", - zaaktype=f"{CATALOGI_ROOT}zaaktypen/0caa29cb-0167-426f-8dc1-88bebd7c8804", - identificatie="ZAAK-2022-0000000025", - omschrijving="Zaak naar aanleiding van ingezonden formulier", - startdatum="2022-01-02", - einddatumGepland="2022-01-04", - uiterlijkeEinddatumAfdoening="2022-01-05", - status=f"{ZAKEN_ROOT}statussen/3da89990-c7fc-476a-ad13-c9023450083c", - resultaat=f"{ZAKEN_ROOT}resultaten/a44153aa-ad2c-6a07-be75-15add5113", - vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduidingen.openbaar, - ) - self.zaak_invisible = generate_oas_component_cached( - "zrc", - "schemas/Zaak", - uuid="213b0a04-fcbc-4fee-8d11-cf950a0a0bbb", - url=f"{ZAKEN_ROOT}zaken/213b0a04-fcbc-4fee-8d11-cf950a0a0bbb", - zaaktype=self.zaak["zaaktype"], - identificatie="ZAAK-2022-invisible", - omschrijving="Zaak invisible", - startdatum="2022-01-02", - vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduidingen.geheim, - ) self.zaaktype = generate_oas_component_cached( "ztc", "schemas/ZaakType", uuid="0caa29cb-0167-426f-8dc1-88bebd7c8804", - url=self.zaak["zaaktype"], + url=f"{CATALOGI_ROOT}zaaktypen/0caa29cb-0167-426f-8dc1-88bebd7c8804", identificatie="ZAAKTYPE-2020-0000000001", omschrijving="Coffee zaaktype", catalogus=f"{CATALOGI_ROOT}catalogussen/1b643db-81bb-d71bd5a2317a", @@ -194,34 +154,10 @@ def setUp(self): self.zaaktype_config = ZaakTypeConfigFactory.create( identificatie=self.zaaktype["identificatie"], ) - # - # statuses - # - self.status_new = generate_oas_component_cached( - "zrc", - "schemas/Status", - url=f"{ZAKEN_ROOT}statussen/3da81560-c7fc-476a-ad13-beu760sle929", - zaak=self.zaak["url"], - statustype=f"{CATALOGI_ROOT}statustypen/e3798107-ab27-4c3c-977d-777yu878km09", - datumStatusGezet="2021-01-12", - statustoelichting="", - ) - self.status_finish = generate_oas_component_cached( - "zrc", - "schemas/Status", - url=f"{ZAKEN_ROOT}statussen/29ag1264-c4he-249j-bc24-jip862tle833", - zaak=self.zaak["url"], - statustype=f"{CATALOGI_ROOT}statustypen/d4839012-gh35-3a8d-866h-444uy935acv7", - datumStatusGezet="2021-03-12", - statustoelichting="", - ) - # - # status types - # self.status_type_new = generate_oas_component_cached( "ztc", "schemas/StatusType", - url=self.status_new["statustype"], + url=f"{CATALOGI_ROOT}statustypen/e3798107-ab27-4c3c-977d-777yu878km09", zaaktype=self.zaaktype["url"], catalogus=f"{CATALOGI_ROOT}catalogussen/1b643db-81bb-d71bd5a2317a", omschrijving="Initial request", @@ -243,6 +179,18 @@ def setUp(self): volgnummer=3, isEindstatus=False, ) + self.status_type_finish = generate_oas_component_cached( + "ztc", + "schemas/StatusType", + url=f"{CATALOGI_ROOT}statustypen/d4839012-gh35-3a8d-866h-444uy935acv7", + zaaktype=self.zaaktype["url"], + catalogus=f"{CATALOGI_ROOT}catalogussen/1b643db-81bb-d71bd5a2317a", + omschrijving="Finish", + omschrijvingGeneriek="some content", + statustekst="", + volgnummer=4, + isEindstatus=True, + ) # we need to use a `StatusType` object, not the oas_component (a `dict`) self.second_status_preview = StatusType( url=self.status_type_in_behandeling["url"], @@ -256,18 +204,160 @@ def setUp(self): is_eindstatus=self.status_type_in_behandeling["isEindstatus"], informeren=self.status_type_in_behandeling["informeren"], ) - self.status_type_finish = generate_oas_component_cached( + self.informatie_object_type = generate_oas_component_cached( "ztc", - "schemas/StatusType", - url=self.status_finish["statustype"], - zaaktype=self.zaaktype["url"], + "schemas/InformatieObjectType", + url=f"{CATALOGI_ROOT}informatieobjecttype/014c38fe-b010-4412-881c-3000032fb321", catalogus=f"{CATALOGI_ROOT}catalogussen/1b643db-81bb-d71bd5a2317a", - omschrijving="Finish", - omschrijvingGeneriek="some content", - statustekst="", - volgnummer=4, - isEindstatus=True, + omschrijving="Some content", + ) + self.zaaktype_informatie_object_type = generate_oas_component_cached( + "ztc", + "schemas/ZaakTypeInformatieObjectType", + uuid="3fb03882-f6f9-4e0d-ad92-f810e24b9abb", + url=f"{CATALOGI_ROOT}zaaktype-informatieobjecttypen/93250e6d-ef92-4474-acca-a6dbdcd61b7e", + catalogus=f"{CATALOGI_ROOT}catalogussen/1b643db-81bb-d71bd5a2317a", + zaaktype=self.zaaktype["url"], + informatieobjecttype=self.informatie_object_type["url"], + volgnummer=1, + richting="inkomend", + statustype=self.status_type_finish, + ) + + # + # Documenten API (DRC) + # https://test.openzaak.nl/documenten/api/v1/schema/ + # + self.informatie_object = generate_oas_component_cached( + "drc", + "schemas/EnkelvoudigInformatieObject", + uuid="014c38fe-b010-4412-881c-3000032fb812", + url=f"{DOCUMENTEN_ROOT}enkelvoudiginformatieobjecten/014c38fe-b010-4412-881c-3000032fb812", + inhoud=f"{DOCUMENTEN_ROOT}enkelvoudiginformatieobjecten/014c38fe-b010-4412-881c-3000032fb812/download", + informatieobjecttype=self.informatie_object_type["url"], + status="definitief", + vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduidingen.openbaar, + bestandsnaam="uploaded_document.txt", + titel="uploaded_document_title.txt", + bestandsomvang=123, + ) + self.informatie_object_2 = generate_oas_component_cached( + "drc", + "schemas/EnkelvoudigInformatieObject", + uuid="015c38fe-b010-4412-881c-3000032fb812", + url=f"{DOCUMENTEN_ROOT}enkelvoudiginformatieobjecten/015c38fe-b010-4412-881c-3000032fb812", + inhoud=f"{DOCUMENTEN_ROOT}enkelvoudiginformatieobjecten/015c38fe-b010-4412-881c-3000032fb812/download", + informatieobjecttype=self.informatie_object_type["url"], + status="definitief", + vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduidingen.openbaar, + bestandsnaam="uploaded_document.txt", + titel="another_document_title.txt", + bestandsomvang=123, + ) + self.informatie_object_no_date = generate_oas_component_cached( + "drc", + "schemas/EnkelvoudigInformatieObject", + uuid="015c38fe-b010-4412-881c-3000032fb812", + url=f"{DOCUMENTEN_ROOT}enkelvoudiginformatieobjecten/016c38fe-b010-4412-881c-3000032fb812", + inhoud=f"{DOCUMENTEN_ROOT}enkelvoudiginformatieobjecten/016c38fe-b010-4412-881c-3000032fb812/download", + informatieobjecttype=self.informatie_object_type["url"], + status="definitief", + vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduidingen.openbaar, + bestandsnaam="uploaded_document.txt", + titel="yet_another_document_title.txt", + bestandsomvang=123, + ) + self.uploaded_informatie_object = generate_oas_component_cached( + "drc", + "schemas/EnkelvoudigInformatieObject", + uuid="85079ba3-554a-450f-b963-2ce20b176c90", + url=self.informatie_object["url"], + inhoud=f"{DOCUMENTEN_ROOT}enkelvoudiginformatieobjecten/85079ba3-554a-450f-b963-2ce20b176c90/download", + informatieobjecttype=self.informatie_object_type["url"], + status="definitief", + vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduidingen.openbaar, + bestandsnaam="upload.txt", + bestandsomvang=123, + titel="uploaded file", + ) + self.informatie_object_invisible = generate_oas_component_cached( + "drc", + "schemas/EnkelvoudigInformatieObject", + uuid="994c38fe-b010-4412-881c-3000032fb123", + url=f"{DOCUMENTEN_ROOT}enkelvoudiginformatieobjecten/994c38fe-b010-4412-881c-3000032fb123", + inhoud=f"{DOCUMENTEN_ROOT}enkelvoudiginformatieobjecten/994c38fe-b010-4412-881c-3000032fb123/download", + informatieobjecttype=self.informatie_object_type["url"], + status="definitief", + vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduidingen.geheim, + bestandsnaam="geheim-document.txt", + bestandsomvang=123, + ) + + # + # Zaken API (ZRC) + # https://test.openzaak.nl/zaken/api/v1/schema/ + # + self.zaak = generate_oas_component_cached( + "zrc", + "schemas/Zaak", + uuid="d8bbdeb7-770f-4ca9-b1ea-77b4730bf67d", + url=f"{ZAKEN_ROOT}zaken/d8bbdeb7-770f-4ca9-b1ea-77b4730bf67d", + zaaktype=self.zaaktype["url"], + identificatie="ZAAK-2022-0000000024", + omschrijving="Zaak naar aanleiding van ingezonden formulier", + startdatum="2022-01-02", + einddatumGepland="2022-01-04", + uiterlijkeEinddatumAfdoening="2022-01-05", + status=f"{ZAKEN_ROOT}statussen/3da89990-c7fc-476a-ad13-c9023450083c", + resultaat=f"{ZAKEN_ROOT}resultaten/a44153aa-ad2c-6a07-be75-15add5113", + vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduidingen.openbaar, + ) + self.zaak_eherkenning = generate_oas_component_cached( + "zrc", + "schemas/Zaak", + uuid="3b751e7e-cf17-4200-9ee4-4a42d801ea21", + url=f"{ZAKEN_ROOT}zaken/3b751e7e-cf17-4200-9ee4-4a42d801ea21", + zaaktype=f"{CATALOGI_ROOT}zaaktypen/0caa29cb-0167-426f-8dc1-88bebd7c8804", + identificatie="ZAAK-2022-0000000025", + omschrijving="Zaak naar aanleiding van ingezonden formulier", + startdatum="2022-01-02", + einddatumGepland="2022-01-04", + uiterlijkeEinddatumAfdoening="2022-01-05", + status=f"{ZAKEN_ROOT}statussen/3da89990-c7fc-476a-ad13-c9023450083c", + resultaat=f"{ZAKEN_ROOT}resultaten/a44153aa-ad2c-6a07-be75-15add5113", + vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduidingen.openbaar, + ) + self.zaak_invisible = generate_oas_component_cached( + "zrc", + "schemas/Zaak", + uuid="213b0a04-fcbc-4fee-8d11-cf950a0a0bbb", + url=f"{ZAKEN_ROOT}zaken/213b0a04-fcbc-4fee-8d11-cf950a0a0bbb", + zaaktype=self.zaak["zaaktype"], + identificatie="ZAAK-2022-invisible", + omschrijving="Zaak invisible", + startdatum="2022-01-02", + vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduidingen.geheim, + ) + # statuses + self.status_new = generate_oas_component_cached( + "zrc", + "schemas/Status", + url=f"{ZAKEN_ROOT}statussen/3da81560-c7fc-476a-ad13-beu760sle929", + zaak=self.zaak["url"], + statustype=self.status_type_new["url"], + datumStatusGezet="2021-01-12", + statustoelichting="", ) + self.status_finish = generate_oas_component_cached( + "zrc", + "schemas/Status", + url=f"{ZAKEN_ROOT}statussen/29ag1264-c4he-249j-bc24-jip862tle833", + zaak=self.zaak["url"], + statustype=self.status_type_finish["url"], + datumStatusGezet="2021-03-12", + statustoelichting="", + ) + # user roles self.user_role = generate_oas_component_cached( "zrc", "schemas/Rol", @@ -332,6 +422,7 @@ def setUp(self): "geslachtsnaam": "Else", }, ) + # results self.result = generate_oas_component_cached( "zrc", "schemas/Resultaat", @@ -341,11 +432,12 @@ def setUp(self): zaak=self.zaak["url"], toelichting="resultaat toelichting", ) + # informatie objecten self.zaak_informatie_object_old = generate_oas_component_cached( "zrc", "schemas/ZaakInformatieObject", url=f"{ZAKEN_ROOT}zaakinformatieobjecten/e55153aa-ad2c-4a07-ae75-15add57d6", - informatieobject=f"{DOCUMENTEN_ROOT}enkelvoudiginformatieobjecten/014c38fe-b010-4412-881c-3000032fb812", + informatieobject=self.informatie_object["url"], zaak=self.zaak["url"], aardRelatieWeergave="some content", titel="info object 1", @@ -356,122 +448,38 @@ def setUp(self): "zrc", "schemas/ZaakInformatieObject", url=f"{ZAKEN_ROOT}zaakinformatieobjecten/e55153aa-ad2c-4a07-ae75-15add57d7", - informatieobject=f"{DOCUMENTEN_ROOT}enkelvoudiginformatieobjecten/015c38fe-b010-4412-881c-3000032fb812", + informatieobject=self.informatie_object_2["url"], zaak=self.zaak["url"], aardRelatieWeergave="some content", titel="info object 2", beschrijving="", registratiedatum="2024-01-12T00:00:00+01:00", ) - # informatie_object without registratiedatum self.zaak_informatie_object_no_date = generate_oas_component_cached( "zrc", "schemas/ZaakInformatieObject", url=f"{ZAKEN_ROOT}zaakinformatieobjecten/e55153aa-ad2c-4a07-ae75-15add57d7", - informatieobject=f"{DOCUMENTEN_ROOT}enkelvoudiginformatieobjecten/016c38fe-b010-4412-881c-3000032fb812", + informatieobject=self.informatie_object_no_date["url"], zaak=self.zaak["url"], aardRelatieWeergave="some content", titel="info object 3", beschrijving="", registratiedatum=None, ) - self.informatie_object_type = generate_oas_component_cached( - "ztc", - "schemas/InformatieObjectType", - url=f"{CATALOGI_ROOT}informatieobjecttype/014c38fe-b010-4412-881c-3000032fb321", - catalogus=f"{CATALOGI_ROOT}catalogussen/1b643db-81bb-d71bd5a2317a", - omschrijving="Some content", - ) - self.zaaktype_informatie_object_type = generate_oas_component_cached( - "ztc", - "schemas/ZaakTypeInformatieObjectType", - uuid="3fb03882-f6f9-4e0d-ad92-f810e24b9abb", - url=f"{CATALOGI_ROOT}zaaktype-informatieobjecttypen/93250e6d-ef92-4474-acca-a6dbdcd61b7e", - catalogus=f"{CATALOGI_ROOT}catalogussen/1b643db-81bb-d71bd5a2317a", - zaaktype=self.zaaktype["url"], - informatieobjecttype=self.informatie_object_type["url"], - volgnummer=1, - richting="inkomend", - statustype=self.status_type_finish, - ) - self.informatie_object = generate_oas_component_cached( - "drc", - "schemas/EnkelvoudigInformatieObject", - uuid="014c38fe-b010-4412-881c-3000032fb812", - url=self.zaak_informatie_object_old["informatieobject"], - inhoud=f"{DOCUMENTEN_ROOT}enkelvoudiginformatieobjecten/014c38fe-b010-4412-881c-3000032fb812/download", - informatieobjecttype=self.informatie_object_type["url"], - status="definitief", - vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduidingen.openbaar, - bestandsnaam="uploaded_document.txt", - titel="uploaded_document_title.txt", - bestandsomvang=123, - ) - self.informatie_object_2 = generate_oas_component_cached( - "drc", - "schemas/EnkelvoudigInformatieObject", - uuid="015c38fe-b010-4412-881c-3000032fb812", - url=self.zaak_informatie_object_new["informatieobject"], - inhoud=f"{DOCUMENTEN_ROOT}enkelvoudiginformatieobjecten/015c38fe-b010-4412-881c-3000032fb812/download", - informatieobjecttype=self.informatie_object_type["url"], - status="definitief", - vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduidingen.openbaar, - bestandsnaam="uploaded_document.txt", - titel="another_document_title.txt", - bestandsomvang=123, - ) - self.informatie_object_no_date = generate_oas_component_cached( - "drc", - "schemas/EnkelvoudigInformatieObject", - uuid="015c38fe-b010-4412-881c-3000032fb812", - url=self.zaak_informatie_object_no_date["informatieobject"], - inhoud=f"{DOCUMENTEN_ROOT}enkelvoudiginformatieobjecten/016c38fe-b010-4412-881c-3000032fb812/download", - informatieobjecttype=self.informatie_object_type["url"], - status="definitief", - vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduidingen.openbaar, - bestandsnaam="uploaded_document.txt", - titel="yet_another_document_title.txt", - bestandsomvang=123, - ) - self.uploaded_informatie_object = generate_oas_component_cached( - "drc", - "schemas/EnkelvoudigInformatieObject", - uuid="85079ba3-554a-450f-b963-2ce20b176c90", - url=self.zaak_informatie_object_old["informatieobject"], - inhoud=f"{DOCUMENTEN_ROOT}enkelvoudiginformatieobjecten/85079ba3-554a-450f-b963-2ce20b176c90/download", - informatieobjecttype=self.informatie_object_type["url"], - status="definitief", - vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduidingen.openbaar, - bestandsnaam="upload.txt", - bestandsomvang=123, - titel="uploaded file", - ) - self.zaak_informatie_object_invisible = generate_oas_component_cached( "zrc", "schemas/ZaakInformatieObject", url=f"{ZAKEN_ROOT}zaakinformatieobjecten/fa5153aa-ad2c-4a07-ae75-15add57ee", - informatieobject=f"{DOCUMENTEN_ROOT}enkelvoudiginformatieobjecten/994c38fe-b010-4412-881c-3000032fb123", + informatieobject=self.informatie_object_invisible["url"], zaak=self.zaak_invisible["url"], aardRelatieWeergave="some invisible content", titel="", beschrijving="", registratiedatum="2021-01-12", ) - self.informatie_object_invisible = generate_oas_component_cached( - "drc", - "schemas/EnkelvoudigInformatieObject", - uuid="994c38fe-b010-4412-881c-3000032fb123", - url=self.zaak_informatie_object_invisible["informatieobject"], - inhoud=f"{DOCUMENTEN_ROOT}enkelvoudiginformatieobjecten/994c38fe-b010-4412-881c-3000032fb123/download", - informatieobjecttype=self.informatie_object_type["url"], - status="definitief", - vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduidingen.geheim, - bestandsnaam="geheim-document.txt", - bestandsomvang=123, - ) + # - # contactmomenten + # Contactmomenten API (CMC) # self.contactmoment_old = generate_oas_component_cached( "cmc", @@ -524,6 +532,7 @@ def setUp(self): object_type="zaak", contactmoment=self.contactmoment_old["url"], ) + # # documents # From 292d39937323e17e05af107da6e6cfb914927d5a Mon Sep 17 00:00:00 2001 From: Paul Schilling Date: Fri, 26 Jul 2024 16:05:50 +0200 Subject: [PATCH 3/3] [#2640] Update tests to check long case result description --- .../cms/cases/tests/test_contactform.py | 14 ++++++++- src/open_inwoner/cms/cases/tests/test_htmx.py | 13 +++++++- src/open_inwoner/cms/cases/views/status.py | 24 +++++++++++--- .../tests/bootstrap/test_setup_cms.py | 1 - src/open_inwoner/openzaak/api_models.py | 3 +- src/open_inwoner/openzaak/tests/factories.py | 8 +++++ .../openzaak/tests/test_case_detail.py | 31 +++++++++++++++---- 7 files changed, 80 insertions(+), 14 deletions(-) diff --git a/src/open_inwoner/cms/cases/tests/test_contactform.py b/src/open_inwoner/cms/cases/tests/test_contactform.py index 13360b04cd..dcb3e099b5 100644 --- a/src/open_inwoner/cms/cases/tests/test_contactform.py +++ b/src/open_inwoner/cms/cases/tests/test_contactform.py @@ -221,12 +221,23 @@ def setUp(self): volgnummer=1, isEindstatus=True, ) + self.resultaattype_with_naam = generate_oas_component_cached( + "ztc", + "schemas/ResultaatType", + url=f"{CATALOGI_ROOT}resultaattypen/b1a268dd-4322-47bb-a930-b83066b4a32c", + zaaktype=self.zaaktype["url"], + omschrijving="Short description", + resultaattypeomschrijving="http://example.com", + selectielijstklasse="http://example.com", + naam="Long description (>20 chars) of result", + ) self.result = generate_oas_component_cached( "zrc", "schemas/Resultaat", uuid="a44153aa-ad2c-6a07-be75-15add5113", url=self.zaak["resultaat"], - resultaattype=f"{CATALOGI_ROOT}resultaattypen/b1a268dd-4322-47bb-a930-b83066b4a32c", + # resultaattype=f"{CATALOGI_ROOT}resultaattypen/b1a268dd-4322-47bb-a930-b83066b4a32c", + resultaattype=self.resultaattype_with_naam["url"], zaak=self.zaak["url"], toelichting="resultaat toelichting", ) @@ -260,6 +271,7 @@ def _setUpMocks(self, m): for resource in [ self.zaak, self.result, + self.resultaattype_with_naam, self.zaaktype, self.status_finish, self.status_type_finish, diff --git a/src/open_inwoner/cms/cases/tests/test_htmx.py b/src/open_inwoner/cms/cases/tests/test_htmx.py index dd5a766784..309796a7c6 100644 --- a/src/open_inwoner/cms/cases/tests/test_htmx.py +++ b/src/open_inwoner/cms/cases/tests/test_htmx.py @@ -188,12 +188,22 @@ def setUp(self) -> None: "geslachtsnaam": "Bazz", }, ) + self.resultaattype_with_naam = generate_oas_component_cached( + "ztc", + "schemas/ResultaatType", + url=f"{CATALOGI_ROOT}resultaattypen/b1a268dd-4322-47bb-a930-b83066b4a32c", + zaaktype=self.zaaktype["url"], + omschrijving="Short description", + resultaattypeomschrijving="http://example.com", + selectielijstklasse="http://example.com", + naam="Long description (>20 chars) of result", + ) self.result = generate_oas_component_cached( "zrc", "schemas/Resultaat", uuid="a44153aa-ad2c-6a07-be75-15add5113", url=self.zaak["resultaat"], - resultaattype=f"{CATALOGI_ROOT}resultaattypen/b1a268dd-4322-47bb-a930-b83066b4a32c", + resultaattype=self.resultaattype_with_naam["url"], zaak=self.zaak["url"], toelichting="resultaat toelichting", ) @@ -324,6 +334,7 @@ def _setUpMocks(self, m): for resource in [ self.zaak, + self.resultaattype_with_naam, self.result, self.zaaktype, self.status_type_new, diff --git a/src/open_inwoner/cms/cases/views/status.py b/src/open_inwoner/cms/cases/views/status.py index 1414ee9f5c..c8ad5e6507 100644 --- a/src/open_inwoner/cms/cases/views/status.py +++ b/src/open_inwoner/cms/cases/views/status.py @@ -205,7 +205,10 @@ def get_context_data(self, **kwargs): end_statustype=self.handle_end_statustype(statuses, statustypen), ) result_data = self.get_result_data( - self.case, self.resulttype_config_mapping, zaken_client + self.case, + self.resulttype_config_mapping, + zaken_client, + catalogi_client, ) hooks.case_status_seen(self.request.user, self.case) @@ -526,15 +529,28 @@ def get_upload_info_context(self, case: Zaak): @staticmethod def get_result_data( - case: Zaak, result_type_config_mapping: dict, client: ZakenClient + case: Zaak, + result_type_config_mapping: dict, + zaken_client: ZakenClient, + catalogi_client: CatalogiClient, ) -> dict: + """ + Get display and description for the result of `case` + + Note: + For the description, we try the `esuite_compat_naam` attribute of the corresponding + resultaattype first. This is for E-suite compatibility in case the E-suite returns + a description longer than 20 chars. Alternatively, we get the description from the + config of the resultaattype. + """ if not case.resultaat: return {} - result = client.fetch_single_result(case.resultaat) + result = zaken_client.fetch_single_result(case.resultaat) + result_type = catalogi_client.fetch_single_resultaat_type(result.resultaattype) display = result.toelichting - description = getattr( + description = getattr(result_type, "esuite_compat_naam", "") or getattr( result_type_config_mapping.get(result.resultaattype), "description", "" ) diff --git a/src/open_inwoner/configurations/tests/bootstrap/test_setup_cms.py b/src/open_inwoner/configurations/tests/bootstrap/test_setup_cms.py index 863188153b..e83bd67e0c 100644 --- a/src/open_inwoner/configurations/tests/bootstrap/test_setup_cms.py +++ b/src/open_inwoner/configurations/tests/bootstrap/test_setup_cms.py @@ -153,7 +153,6 @@ def test_cms_ssd_override_settings(self): self.assertTrue(benefits_page_is_published()) - # import pdbr;pdbr.set_trace() # check common extension page = Page.objects.get(publisher_is_draft=False) extension = page.commonextension diff --git a/src/open_inwoner/openzaak/api_models.py b/src/open_inwoner/openzaak/api_models.py index 27f3c89dec..2a8cc01560 100644 --- a/src/open_inwoner/openzaak/api_models.py +++ b/src/open_inwoner/openzaak/api_models.py @@ -232,7 +232,8 @@ class ResultaatType(ZGWModel): brondatum_archiefprocedure: Optional[dict] = None # E-suite compatibility - naam: str = "" # for result description ("omschrijving") with >20 chars + # result description ("omschrijving") with >20 chars + esuite_compat_naam: str = "" @dataclass diff --git a/src/open_inwoner/openzaak/tests/factories.py b/src/open_inwoner/openzaak/tests/factories.py index 12dc867862..39e9a2c27e 100644 --- a/src/open_inwoner/openzaak/tests/factories.py +++ b/src/open_inwoner/openzaak/tests/factories.py @@ -17,6 +17,7 @@ UserCaseStatusNotification, ZaakTypeConfig, ZaakTypeInformatieObjectTypeConfig, + ZaakTypeResultaatTypeConfig, ZaakTypeStatusTypeConfig, ZGWApiGroupConfig, ) @@ -90,6 +91,13 @@ class Meta: model = ZaakTypeConfig +class ZaakTypeResultaatTypeConfigFactory(factory.django.DjangoModelFactory): + zaaktype_config = factory.SubFactory(ZaakTypeConfigFactory) + + class Meta: + model = ZaakTypeResultaatTypeConfig + + class ZaakTypeInformatieObjectTypeConfigFactory(factory.django.DjangoModelFactory): zaaktype_config = factory.SubFactory(ZaakTypeConfigFactory) informatieobjecttype_url = factory.Faker("url") diff --git a/src/open_inwoner/openzaak/tests/test_case_detail.py b/src/open_inwoner/openzaak/tests/test_case_detail.py index 896d42cc2d..81181351ed 100644 --- a/src/open_inwoner/openzaak/tests/test_case_detail.py +++ b/src/open_inwoner/openzaak/tests/test_case_detail.py @@ -36,6 +36,7 @@ from open_inwoner.openzaak.tests.factories import ( ZaakTypeConfigFactory, ZaakTypeInformatieObjectTypeConfigFactory, + ZaakTypeResultaatTypeConfigFactory, ZaakTypeStatusTypeConfigFactory, ) from open_inwoner.utils.test import ( @@ -127,7 +128,7 @@ def setUp(self): # # Catalogi API (ZTC) - # https://test.openzaak.nl/catalogi/api/v1/schema/ + # https://vng-realisatie.github.io/gemma-zaken/standaard/catalogi/ # self.zaaktype = generate_oas_component_cached( "ztc", @@ -223,10 +224,20 @@ def setUp(self): richting="inkomend", statustype=self.status_type_finish, ) + self.resultaattype_with_naam = generate_oas_component_cached( + "ztc", + "schemas/ResultaatType", + url=f"{CATALOGI_ROOT}resultaattypen/3dc5e2d3-ed72-41ec-a91e-000f72a7b291", + zaaktype=self.zaaktype["url"], + omschrijving="Short description", + resultaattypeomschrijving="http://example.com", + selectielijstklasse="http://example.com", + esuite_compat_naam="Long description (>20 chars) of result", + ) # # Documenten API (DRC) - # https://test.openzaak.nl/documenten/api/v1/schema/ + # https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/ # self.informatie_object = generate_oas_component_cached( "drc", @@ -295,7 +306,7 @@ def setUp(self): # # Zaken API (ZRC) - # https://test.openzaak.nl/zaken/api/v1/schema/ + # https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/ # self.zaak = generate_oas_component_cached( "zrc", @@ -428,7 +439,7 @@ def setUp(self): "schemas/Resultaat", uuid="a44153aa-ad2c-6a07-be75-15add5113", url=self.zaak["resultaat"], - resultaattype=f"{CATALOGI_ROOT}resultaattypen/b1a268dd-4322-47bb-a930-b83066b4a32c", + resultaattype=self.resultaattype_with_naam["url"], zaak=self.zaak["url"], toelichting="resultaat toelichting", ) @@ -594,6 +605,7 @@ def _setUpMocks(self, m, use_eindstatus=True): self.informatie_object, self.informatie_object_2, self.informatie_object_invisible, + self.resultaattype_with_naam, self.zaaktype_informatie_object_type, self.status_type_new, self.status_type_in_behandeling, @@ -726,6 +738,13 @@ def test_status_is_retrieved_when_user_logged_in_via_digid( case_link_text="Bekijk aanvraag", ) + ZaakTypeResultaatTypeConfigFactory.create( + zaaktype_config=self.zaaktype_config, + resultaattype_url=self.resultaattype_with_naam["url"], + omschrijving=self.resultaattype_with_naam["omschrijving"], + zaaktype_uuids=[self.zaaktype["uuid"]], + ) + self._setUpMocks(m) status_new_obj, status_finish_obj = factory( Status, [self.status_new, self.status_finish] @@ -779,7 +798,7 @@ def test_status_is_retrieved_when_user_logged_in_via_digid( ], "initiator": "Foo Bar van der Bazz", "result": "resultaat toelichting", - "result_description": "", + "result_description": "Long description (>20 chars) of result", "case_type_config_description": "", "case_type_document_upload_description": "", "internal_upload_enabled": False, @@ -901,7 +920,7 @@ def test_pass_endstatus_type_data_if_endstatus_not_reached(self, m): ], "initiator": "Foo Bar van der Bazz", "result": "resultaat toelichting", - "result_description": "", + "result_description": "Long description (>20 chars) of result", "case_type_config_description": "", "case_type_document_upload_description": "", "internal_upload_enabled": False,