Skip to content

Commit

Permalink
[#1859] Replace e-suite subject with OIP subject in contactmomenten
Browse files Browse the repository at this point in the history
  • Loading branch information
pi-sigma committed Jan 10, 2024
1 parent f6d660b commit 0e0538d
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 7 deletions.
14 changes: 12 additions & 2 deletions src/open_inwoner/accounts/views/contactmoments.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

from open_inwoner.openklant.api_models import KlantContactMoment
from open_inwoner.openklant.constants import Status
from open_inwoner.openklant.models import OpenKlantConfig
from open_inwoner.openklant.models import ContactFormSubject, OpenKlantConfig
from open_inwoner.openklant.wrap import (
fetch_klantcontactmoment,
fetch_klantcontactmomenten,
Expand Down Expand Up @@ -77,10 +77,20 @@ def get_kcm_data(self, kcm: KlantContactMoment) -> KCMDict:
# eSuite extra
"identificatie": kcm.contactmoment.identificatie,
"type": kcm.contactmoment.type,
"onderwerp": kcm.contactmoment.onderwerp,
"status": Status.safe_label(kcm.contactmoment.status, _("Onbekend")),
"antwoord": kcm.contactmoment.antwoord,
}

# replace e_suite_subject_code with OIP configured subject, if applicable
e_suite_subject_code = kcm.contactmoment.onderwerp

try:
subject = ContactFormSubject.objects.get(subject_code=e_suite_subject_code)
except ContactFormSubject.DoesNotExist:
data["onderwerp"] = ""
else:
data["onderwerp"] = subject.subject

return data

def get_context_data(self, **kwargs):
Expand Down
2 changes: 2 additions & 0 deletions src/open_inwoner/openklant/tests/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ def __init__(self):
kanaal="MAIL",
status=Status.afgehandeld,
antwoord="",
onderwerp="e_suite_subject_code",
)
self.contactmoment2 = generate_oas_component(
"cmc",
Expand All @@ -146,6 +147,7 @@ def __init__(self):
kanaal="MAIL",
status=Status.afgehandeld,
antwoord="",
onderwerp="e_suite_subject_code",
)
self.klant_contactmoment = generate_oas_component(
"cmc",
Expand Down
25 changes: 20 additions & 5 deletions src/open_inwoner/openklant/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from django_webtest import WebTest

from open_inwoner.accounts.tests.factories import UserFactory
from open_inwoner.openklant.models import OpenKlantConfig
from open_inwoner.openklant.models import ContactFormSubject, OpenKlantConfig
from open_inwoner.openklant.tests.data import MockAPIReadData
from open_inwoner.utils.test import ClearCachesMixin, DisableRequestLogMixin

Expand All @@ -27,6 +27,13 @@ def setUpTestData(cls):
super().setUpTestData()
MockAPIReadData.setUpServices()

# for testing replacement of e-suite "onderwerp" code with OIP configured subject
ContactFormSubject.objects.create(
subject="oip_subject",
subject_code="e_suite_subject_code",
config=OpenKlantConfig.get_solo(),
)

def test_list_for_bsn(self, m):
data = MockAPIReadData().install_mocks(m)

Expand All @@ -48,7 +55,9 @@ def test_list_for_bsn(self, m):
),
"channel": data.contactmoment["kanaal"].title(),
"text": data.contactmoment["tekst"],
"onderwerp": data.contactmoment["onderwerp"],
"onderwerp": OpenKlantConfig.get_solo()
.contactformsubject_set.get()
.subject,
"antwoord": data.contactmoment["antwoord"],
"identificatie": data.contactmoment["identificatie"],
"type": data.contactmoment["type"],
Expand Down Expand Up @@ -88,7 +97,9 @@ def test_list_for_kvk_or_rsin(self, m):
),
"channel": data.contactmoment2["kanaal"].title(),
"text": data.contactmoment2["tekst"],
"onderwerp": data.contactmoment2["onderwerp"],
"onderwerp": OpenKlantConfig.get_solo()
.contactformsubject_set.get()
.subject,
"antwoord": data.contactmoment2["antwoord"],
"identificatie": data.contactmoment2["identificatie"],
"type": data.contactmoment2["type"],
Expand All @@ -115,7 +126,9 @@ def test_show_detail_for_bsn(self, m):
),
"channel": data.contactmoment["kanaal"].title(),
"text": data.contactmoment["tekst"],
"onderwerp": data.contactmoment["onderwerp"],
"onderwerp": OpenKlantConfig.get_solo()
.contactformsubject_set.get()
.subject,
"antwoord": data.contactmoment["antwoord"],
"identificatie": data.contactmoment["identificatie"],
"type": data.contactmoment["type"],
Expand Down Expand Up @@ -152,7 +165,9 @@ def test_show_detail_for_kvk_or_rsin(self, m):
),
"channel": data.contactmoment2["kanaal"].title(),
"text": data.contactmoment2["tekst"],
"onderwerp": data.contactmoment2["onderwerp"],
"onderwerp": OpenKlantConfig.get_solo()
.contactformsubject_set.get()
.subject,
"antwoord": data.contactmoment2["antwoord"],
"identificatie": data.contactmoment2["identificatie"],
"type": data.contactmoment2["type"],
Expand Down

0 comments on commit 0e0538d

Please sign in to comment.