Skip to content

Commit

Permalink
Merge pull request #273 from maykinmedia/feature/226-partij-betrokken…
Browse files Browse the repository at this point in the history
…e-optional

🐛[#226] make digitalAdres betrokkene optional in admin
  • Loading branch information
Coperh authored Oct 28, 2024
2 parents 61d8c5e + 0aa690b commit ebef919
Show file tree
Hide file tree
Showing 4 changed files with 73 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Generated by Django 4.2.15 on 2024-10-22 13:43

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
("klantinteracties", "0020_alter_digitaaladres_soort_digitaal_adres"),
]

operations = [
migrations.AlterField(
model_name="digitaaladres",
name="betrokkene",
field=models.ForeignKey(
blank=True,
help_text="'Digitaal Adres' had 'Betrokkene bij klantcontact'",
null=True,
on_delete=django.db.models.deletion.CASCADE,
to="klantinteracties.betrokkene",
verbose_name="betrokkene",
),
),
]
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ class DigitaalAdres(APIMixin, models.Model):
on_delete=models.CASCADE,
verbose_name=_("betrokkene"),
help_text=_("'Digitaal Adres' had 'Betrokkene bij klantcontact'"),
blank=True,
null=True,
)
soort_digitaal_adres = models.CharField(
Expand Down
36 changes: 36 additions & 0 deletions src/openklant/components/klantinteracties/tests/test_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,19 @@
from django.urls import reverse

from django_webtest import WebTest
from maykin_2fa.test import disable_admin_mfa
from webtest import Form, TestResponse

from openklant.accounts.tests.factories import SuperUserFactory
from openklant.components.klantinteracties.models import DigitaalAdres
from openklant.components.klantinteracties.models.tests.factories.digitaal_adres import (
DigitaalAdresFactory,
)
from openklant.components.klantinteracties.models.tests.factories.partijen import (
PartijFactory,
PersoonFactory,
)
from openklant.utils.tests.webtest import add_dynamic_field


class PartijAdminTests(WebTest):
Expand Down Expand Up @@ -90,3 +94,35 @@ def test_search(self):
self.assertContains(search_response, digitaal_adres_persoon.get_full_name())
self.assertNotContains(search_response, nummer_persoon.get_full_name())
self.assertNotContains(search_response, uuid_persoon.get_full_name())

@disable_admin_mfa()
def test_digitaal_adres_inline(self):
"""
Regression test for #226
betrokkene should be optional
"""

SuperUserFactory(username="admin", password="admin")
self._login_user(username="admin", password="admin")

partij = PartijFactory(soort_partij="persoon", voorkeurs_digitaal_adres=None)
PersoonFactory(partij=partij)
url = reverse("admin:klantinteracties_partij_change", args=[partij.pk])

response = self.app.get(url)

form = response.form
form["digitaaladres_set-TOTAL_FORMS"] = 1
add_dynamic_field(form, "digitaaladres_set-0-omschrijving", "description")
add_dynamic_field(form, "digitaaladres_set-0-soort_digitaal_adres", "email")
add_dynamic_field(form, "digitaaladres_set-0-adres", "[email protected]")

response = form.submit()
self.assertEqual(response.status_code, 302)

adres = DigitaalAdres.objects.get()

self.assertEqual(adres.omschrijving, "description")
self.assertEqual(adres.adres, "[email protected]")
self.assertIsNone(adres.betrokkene)
10 changes: 10 additions & 0 deletions src/openklant/utils/tests/webtest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from webtest import forms


def add_dynamic_field(form: forms.Form, name: str, value: str) -> None:
"""
Helper to add fields to a webtest form that is typically done in JS otherwise.
"""
field = forms.Text(form, "input", name, pos=999, value=value)
form.fields[name] = [field]
form.field_order.append((name, field))

0 comments on commit ebef919

Please sign in to comment.