Skip to content

Commit 0b700d3

Browse files
authored
Merge pull request #1499 from maykinmedia/task/2880-zaak-list-resultaat
[#2880] Show different label for zaak results
2 parents 4a41173 + 3d28cef commit 0b700d3

File tree

4 files changed

+89
-68
lines changed

4 files changed

+89
-68
lines changed

src/open_inwoner/openzaak/api_models.py

+23-14
Original file line numberDiff line numberDiff line change
@@ -76,23 +76,31 @@ def status_text(self) -> str:
7676
("status.statustype.statustekst", "status.statustype.omschrijving"),
7777
default="",
7878
)
79-
if self.einddatum and self.resultaat:
80-
_status_text = glom_multiple(
81-
self,
82-
(
83-
"resultaat.resultaattype.naam",
84-
"resultaat.resultaattype.omschrijving",
85-
"resultaat.resultaattype.omschrijving_generiek",
86-
"resultaat.resultaattype.resultaattypeomschrijving",
87-
),
88-
default="",
89-
)
90-
_status_text = _status_text or _("No data available")
91-
92-
return _status_text
79+
80+
return _status_text or _("No data available")
81+
82+
@property
83+
def result_text(self) -> str:
84+
if not self.einddatum or not self.resultaat:
85+
return ""
86+
87+
_result_text = glom_multiple(
88+
self,
89+
(
90+
"resultaat.resultaattype.naam",
91+
"resultaat.resultaattype.omschrijving",
92+
"resultaat.resultaattype.omschrijving_generiek",
93+
"resultaat.resultaattype.resultaattypeomschrijving",
94+
),
95+
default="",
96+
)
97+
return _result_text
9398

9499
@property
95100
def description(self) -> str:
101+
if isinstance(self.zaaktype, str):
102+
return ""
103+
96104
from open_inwoner.openzaak.models import OpenZaakConfig
97105

98106
zaak_config = OpenZaakConfig.get_solo()
@@ -114,6 +122,7 @@ def process_data(self) -> dict:
114122
"end_date": getattr(self, "einddatum", None),
115123
"description": self.description,
116124
"current_status": self.status_text,
125+
"result": self.result_text,
117126
"zaaktype_config": getattr(self, "zaaktype_config", None),
118127
"statustype_config": getattr(self, "statustype_config", None),
119128
"case_type": "Zaak",

src/open_inwoner/openzaak/tests/test_api_models.py

+37-46
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
class ZaakAPIModelTest(TestCase):
1111
def setUp(self):
1212
self.zaak_data = {
13-
"url": "",
13+
"url": "http://zaak-api-model-test.nl/0f70e292-ec68-46fd-870c-772b38fe5b28",
1414
"identificatie": "",
1515
"bronorganisatie": "",
1616
"omschrijving": "",
@@ -20,77 +20,68 @@ def setUp(self):
2020
"vertrouwelijkheidaanduiding": "",
2121
"status": {
2222
"statustype": {
23-
"statustekst": "",
24-
"omschrijving": "",
23+
"statustekst": "statustekst",
24+
"omschrijving": "omschrijving",
2525
}
2626
},
27-
"einddatum": None,
27+
"einddatum": "2024-08-06",
2828
"resultaat": {
2929
"resultaattype": {
30-
"naam": "",
31-
"omschrijving": "",
32-
"omschrijving_generiek": "",
33-
"resultaattypeomschrijving": "",
30+
"naam": "resultaat naam",
31+
"omschrijving": "resultaat omschrijving",
32+
"omschrijving_generiek": "resultaat omschrijving_generiek",
33+
"resultaattypeomschrijving": "resultaattypeomschrijving",
3434
},
3535
},
3636
}
3737

38-
def test_status_text_no_result(self):
39-
zaak_statustype = self.zaak_data["status"]["statustype"]
40-
41-
zaak_statustype["statustekst"] = "test statustekst"
42-
zaak_statustype["omschrijving"] = "test omschrijving"
43-
38+
def test_status_text(self):
4439
case = factory(Zaak, data=self.zaak_data)
4540

46-
self.assertEqual(case.status_text, "test statustekst")
41+
data = case.process_data()
42+
self.assertEqual(data["current_status"], "statustekst")
4743

4844
case.status["statustype"]["statustekst"] = ""
45+
data = case.process_data()
46+
self.assertEqual(data["current_status"], "omschrijving")
4947

50-
self.assertEqual(case.status_text, "test omschrijving")
51-
52-
def test_status_text_with_result(self):
53-
self.zaak_data["status"]["statustype"]["statustekst"] = "test statustekst"
54-
self.zaak_data["einddatum"] = "2024-08-06"
55-
56-
resultaattype = self.zaak_data["resultaat"]["resultaattype"]
57-
58-
resultaattype["naam"] = "test naam"
59-
resultaattype["omschrijving"] = "test omschrijving"
60-
resultaattype["omschrijving_generiek"] = "test omschrijving_generiek"
61-
resultaattype["resultaattypeomschrijving"] = "test resultaattypeomschrijving"
62-
48+
def test_result_text(self):
6349
case = factory(Zaak, data=self.zaak_data)
6450

65-
self.assertEqual(case.status_text, "test naam")
66-
67-
case.resultaat["resultaattype"]["naam"] = ""
51+
data = case.process_data()
52+
self.assertEqual(data["result"], "resultaat naam")
6853

69-
self.assertEqual(case.status_text, "test omschrijving")
54+
resultaattype = case.resultaat["resultaattype"]
7055

71-
case.resultaat["resultaattype"]["omschrijving"] = ""
56+
resultaattype["naam"] = ""
57+
data = case.process_data()
58+
self.assertEqual(data["result"], "resultaat omschrijving")
7259

73-
self.assertEqual(case.status_text, "test omschrijving_generiek")
60+
resultaattype["omschrijving"] = ""
61+
data = case.process_data()
62+
self.assertEqual(data["result"], "resultaat omschrijving_generiek")
7463

75-
case.resultaat["resultaattype"]["omschrijving_generiek"] = ""
64+
resultaattype["omschrijving_generiek"] = ""
65+
data = case.process_data()
66+
self.assertEqual(data["result"], "resultaattypeomschrijving")
7667

77-
self.assertEqual(case.status_text, "test resultaattypeomschrijving")
68+
def test_status_text_no_end_date(self):
69+
zaak_data_no_end_date = self.zaak_data
70+
zaak_data_no_end_date["einddatum"] = None
71+
case = factory(Zaak, data=zaak_data_no_end_date)
7872

79-
def test_status_text_with_result_but_no_end_data(self):
80-
self.zaak_data["status"]["statustype"]["statustekst"] = "test statustekst"
73+
data = case.process_data()
8174

82-
resultaattype = self.zaak_data["resultaat"]["resultaattype"]
83-
84-
resultaattype["naam"] = "test naam"
85-
86-
case = factory(Zaak, data=self.zaak_data)
87-
88-
self.assertEqual(case.status_text, "test statustekst")
75+
self.assertEqual(data["result"], "")
8976

9077
def test_status_text_default(self):
9178
case = factory(Zaak, data=self.zaak_data)
79+
case.status["statustype"]["statustekst"] = ""
80+
case.status["statustype"]["omschrijving"] = ""
81+
82+
data = case.process_data()
9283

93-
self.assertEqual(case.status_text, _("No data available"))
84+
self.assertEqual(data["current_status"], _("No data available"))
9485

9586
def test_zaak_omschrijving(self):
9687
zaaktype = factory(

src/open_inwoner/openzaak/tests/test_cases.py

+26-5
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,7 @@ def __init__(self, *, zaken_root: str, catalogi_root: str, user, eherkenning_use
346346
startdatum="2021-07-26",
347347
einddatum="2022-01-16",
348348
status=f"{zaken_root}statussen/98659876-bbb3-476a-ad13-n3nvcght758js",
349+
resultaat=f"{zaken_root}resultaten/3da81560-c7fc-476a-ad13-beu760sle929",
349350
vertrouwelijkheidaanduiding=VertrouwelijkheidsAanduidingen.openbaar,
350351
)
351352
self.status3 = generate_oas_component_cached(
@@ -531,6 +532,7 @@ def test_list_cases(self, m):
531532
"identification": mock.zaak2["identificatie"],
532533
"description": mock.zaaktype["omschrijving"],
533534
"current_status": mock.status_type_initial["omschrijving"],
535+
"result": "",
534536
"zaaktype_config": mock.zaaktype_config1,
535537
"statustype_config": mock.zt_statustype_config1,
536538
"case_type": "Zaak",
@@ -545,6 +547,7 @@ def test_list_cases(self, m):
545547
"identification": mock.zaak1["identificatie"],
546548
"description": mock.zaaktype["omschrijving"],
547549
"current_status": mock.status_type_initial["omschrijving"],
550+
"result": "",
548551
"zaaktype_config": mock.zaaktype_config1,
549552
"statustype_config": mock.zt_statustype_config1,
550553
"case_type": "Zaak",
@@ -561,6 +564,7 @@ def test_list_cases(self, m):
561564
"identification": mock.zaak3["identificatie"],
562565
"description": mock.zaaktype["omschrijving"],
563566
"current_status": mock.status_type_finish["statustekst"],
567+
"result": mock.resultaat_type["omschrijving"],
564568
"zaaktype_config": mock.zaaktype_config1,
565569
"statustype_config": None,
566570
"case_type": "Zaak",
@@ -574,8 +578,8 @@ def test_list_cases(self, m):
574578
"end_date": datetime.date(2022, 1, 13),
575579
"identification": mock.zaak_result["identificatie"],
576580
"description": mock.zaaktype["omschrijving"],
577-
# use result here
578-
"current_status": mock.resultaat_type["omschrijving"],
581+
"current_status": mock.status_type_initial["omschrijving"],
582+
"result": mock.resultaat_type["omschrijving"],
579583
"zaaktype_config": mock.zaaktype_config1,
580584
"statustype_config": mock.zt_statustype_config1,
581585
"case_type": "Zaak",
@@ -584,6 +588,8 @@ def test_list_cases(self, m):
584588
]
585589
)
586590

591+
cases = response.context["cases"]
592+
587593
self.assertListEqual(response.context["cases"], expected_cases)
588594
# don't show internal cases
589595
for mock in self.mocks:
@@ -613,6 +619,15 @@ def test_list_cases(self, m):
613619
# case filter form is disabled by default
614620
self.assertFalse(response.context.get("filter_form_enabled"))
615621

622+
# check status/result label
623+
doc = PQ(response.content)
624+
625+
status_labels = doc.find(".list-item__caption:Contains('Status')")
626+
result_labels = doc.find(".list-item__caption:Contains('Resultaat')")
627+
628+
self.assertEqual(len(status_labels), 4)
629+
self.assertEqual(len(result_labels), 4)
630+
616631
def test_filter_widget_is_controlled_by_zaken_filter_enabled(self, m):
617632
self.client.force_login(user=self.user)
618633

@@ -717,6 +732,7 @@ def test_list_cases_for_eherkenning_user(self, m):
717732
"current_status": mock.status_type_initial[
718733
"omschrijving"
719734
],
735+
"result": "",
720736
"zaaktype_config": mock.zaaktype_config1,
721737
"statustype_config": mock.zt_statustype_config1,
722738
"case_type": "Zaak",
@@ -735,6 +751,7 @@ def test_list_cases_for_eherkenning_user(self, m):
735751
"current_status": mock.status_type_initial[
736752
"omschrijving"
737753
],
754+
"result": "",
738755
"zaaktype_config": mock.zaaktype_config1,
739756
"statustype_config": mock.zt_statustype_config1,
740757
"case_type": "Zaak",
@@ -793,7 +810,6 @@ def test_list_cases_for_kvk_user_with_vestigingsnummer(self, m):
793810
m.reset_mock()
794811

795812
response = self.client.get(self.inner_url, HTTP_HX_REQUEST="true")
796-
797813
expected_cases = [
798814
{
799815
"uuid": mock.zaak_eherkenning1["uuid"],
@@ -804,6 +820,7 @@ def test_list_cases_for_kvk_user_with_vestigingsnummer(self, m):
804820
"identification": mock.zaak_eherkenning1["identificatie"],
805821
"description": mock.zaaktype["omschrijving"],
806822
"current_status": mock.status_type_initial["omschrijving"],
823+
"result": "",
807824
"zaaktype_config": mock.zaaktype_config1,
808825
"statustype_config": mock.zt_statustype_config1,
809826
"case_type": "Zaak",
@@ -869,6 +886,7 @@ def test_list_cases_for_rsin_user_with_vestigingsnummer(self, m):
869886
"identification": mock.zaak_eherkenning1["identificatie"],
870887
"description": mock.zaaktype["omschrijving"],
871888
"current_status": mock.status_type_initial["omschrijving"],
889+
"result": "",
872890
"zaaktype_config": mock.zaaktype_config1,
873891
"statustype_config": mock.zt_statustype_config1,
874892
"case_type": "Zaak",
@@ -1045,6 +1063,7 @@ def test_list_cases_paginated(self, m):
10451063
"identification": mock.zaak2["identificatie"],
10461064
"description": mock.zaaktype["omschrijving"],
10471065
"current_status": mock.status_type_initial["omschrijving"],
1066+
"result": "",
10481067
"zaaktype_config": mock.zaaktype_config1,
10491068
"statustype_config": mock.zt_statustype_config1,
10501069
"case_type": "Zaak",
@@ -1057,6 +1076,7 @@ def test_list_cases_paginated(self, m):
10571076
"identification": mock.zaak1["identificatie"],
10581077
"description": mock.zaaktype["omschrijving"],
10591078
"current_status": mock.status_type_initial["omschrijving"],
1079+
"result": "",
10601080
"zaaktype_config": mock.zaaktype_config1,
10611081
"statustype_config": mock.zt_statustype_config1,
10621082
"case_type": "Zaak",
@@ -1069,6 +1089,7 @@ def test_list_cases_paginated(self, m):
10691089
"identification": mock.zaak3["identificatie"],
10701090
"description": mock.zaaktype["omschrijving"],
10711091
"current_status": mock.status_type_finish["statustekst"],
1092+
"result": mock.resultaat_type["omschrijving"],
10721093
"zaaktype_config": mock.zaaktype_config1,
10731094
"statustype_config": None,
10741095
"case_type": "Zaak",
@@ -1082,8 +1103,8 @@ def test_list_cases_paginated(self, m):
10821103
"end_date": datetime.date(2022, 1, 13),
10831104
"identification": mock.zaak_result["identificatie"],
10841105
"description": mock.zaaktype["omschrijving"],
1085-
# use result here
1086-
"current_status": mock.resultaat_type["omschrijving"],
1106+
"current_status": mock.status_type_initial["omschrijving"],
1107+
"result": mock.resultaat_type["omschrijving"],
10871108
"zaaktype_config": mock.zaaktype_config1,
10881109
"statustype_config": mock.zt_statustype_config1,
10891110
"case_type": "Zaak",

src/open_inwoner/templates/pages/cases/list_inner.html

+3-3
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,10 @@ <h2 class="card__heading-2">{{ case.description }}</h2>
7373
<li class="list-item list-item--compact">
7474
<p class="card__caption card__text--small"><span>{% trans "Aanvraag ingediend op:" %}</span><span class="card__text--dark">{{ case.start_date }}</span></p>
7575
</li>
76-
{% if case.current_status %}
77-
{% list_item case.current_status caption=_("Status") compact=True strong=False %}
76+
{% if case.result %}
77+
{% list_item case.result caption=_("Resultaat") compact=True strong=False %}
7878
{% else %}
79-
{% list_item "No status" caption=_("Status") compact=True strong=False %}
79+
{% list_item case.current_status caption=_("Status") compact=True strong=False %}
8080
{% endif %}
8181
{% list_item case.identification caption=_("Zaaknummer") compact=True strong=False %}
8282
{% endrender_list %}

0 commit comments

Comments
 (0)