Skip to content

Commit

Permalink
🗃️ [#62] changed models file into folder and added klantcontacten
Browse files Browse the repository at this point in the history
  • Loading branch information
bart-maykin committed Oct 11, 2023
1 parent e8514ad commit 5b57914
Show file tree
Hide file tree
Showing 9 changed files with 258 additions and 22 deletions.
3 changes: 0 additions & 3 deletions src/openklant/components/klantinteracties/admin.py

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@


class Migration(migrations.Migration):

initial = True

dependencies = []
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
# Generated by Django 3.2.18 on 2023-10-10 17:54

import django.core.validators
from django.db import migrations, models
import django.db.models.deletion
import uuid


class Migration(migrations.Migration):
dependencies = [
("klantinteracties", "0001_initial"),
]

operations = [
migrations.CreateModel(
name="Klantcontact",
fields=[
(
"id",
models.UUIDField(
default=uuid.uuid4,
help_text="Unieke (technische) identificatiecode van de betrokkene bij klantcontact.",
primary_key=True,
serialize=False,
unique=True,
),
),
(
"nummer",
models.PositiveIntegerField(
help_text="Uniek identificerend nummer dat tijdens communicatie tussen mensen kan worden gebruikt om de specifieke partij aan te duiden.",
validators=[
django.core.validators.MaxValueValidator(9999999999)
],
verbose_name="Nummer",
),
),
(
"kanaal",
models.CharField(
help_text="Communicatiekanaal dat bij het klantcontact werd gebruikt.",
max_length=50,
verbose_name="Kanaal",
),
),
(
"onderwerp",
models.CharField(
help_text="Datgene waarover het klantcontact ging.",
max_length=200,
verbose_name="Onderwerp",
),
),
(
"inhoud",
models.CharField(
blank=True,
help_text="Informatie die tijdens het klantcontact werd overgebracht of uitgewisseld, voor zover die voor betrokkenen of actoren relevant is.",
max_length=1000,
verbose_name="Inhoud",
),
),
(
"initiator",
models.CharField(
choices=[
("gemeente", "Gemeente"),
("klant", "Klant"),
("vertegenwoordiger", "Vertegenwoordiger"),
],
help_text="Degene die het klantcontact initieerde.",
max_length=17,
verbose_name="Initiator",
),
),
(
"indicatie_contact_gelukt",
models.BooleanField(
help_text="Geeft, indien bekend, aan of de poging contact tussen de gemeente en inwoner(s) of organisatie(s) tot stand te brengen succesvol was.",
null=True,
verbose_name="Indicatie contact gelukt",
),
),
(
"taal",
models.CharField(
help_text="Taal die bij het klantcontact werd gesproken of geschreven.",
max_length=3,
verbose_name="Taal",
),
),
(
"vertrouwelijk",
models.BooleanField(
help_text="Geeft aan of onderwerp, inhoud en kenmerken van het klantcontact vertrouwelijk moeten worden behandeld.",
verbose_name="Vertrouwelijk",
),
),
(
"plaatsgevonden_op",
models.DateTimeField(
help_text="Datum en tijdstip waarop het klantontact plaatsvond. Als het klantcontact een gesprek betrof, is dit het moment waarop het gesprek begon. Als het klantcontact verzending of ontvangst van informatie betrof, is dit bij benadering het moment waarop informatie door gemeente verzonden of ontvangen werd.",
verbose_name="Plaatsgevonden op",
),
),
(
"klantcontact",
models.ForeignKey(
blank=True,
help_text="De persoon of organisatie die betrokken was bij een klantcontact.",
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="klantcontacten",
to="klantinteracties.klantcontact",
verbose_name="Klant contact",
),
),
],
options={
"verbose_name": "klantcontact",
"verbose_name_plural": "klantcontacten",
},
),
]
2 changes: 2 additions & 0 deletions src/openklant/components/klantinteracties/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from .klantcontacten import * # noqa
from .partijen import * # noqa
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
from djchoices import ChoiceItem, DjangoChoices


# TODO: change value when document gets updated: https://vng-realisatie.github.io/klantinteracties/informatiemodel/gegevenswoordenboek#detail_class_Model_Initiator
# TODO: change value when document gets updated:
# https://vng-realisatie.github.io/klantinteracties/informatiemodel/gegevenswoordenboek#detail_class_Model_Initiator
class Initiator(DjangoChoices):
gemeente = ChoiceItem("gemeente", _("Gemeente"))
klant = ChoiceItem("klant", _("Klant"))
Expand Down
110 changes: 110 additions & 0 deletions src/openklant/components/klantinteracties/models/klantcontacten.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
import uuid

from django.core.validators import MaxValueValidator
from django.db import models
from django.utils.translation import gettext_lazy as _

from .constants import Initiator


class Klantcontact(models.Model):
id = models.UUIDField(
primary_key=True,
unique=True,
default=uuid.uuid4,
max_length=40,
help_text=_(
"Unieke (technische) identificatiecode van de betrokkene bij klantcontact."
),
)
klantcontact = models.ForeignKey(
"self",
on_delete=models.SET_NULL,
related_name="klantcontacten",
verbose_name=_("Klant contact"),
help_text=_(
"De persoon of organisatie die betrokken was bij een klantcontact."
),
blank=True,
null=True,
)
# TODO: add fk to Actor
# TODO: add fk to Onderwerpobject
# TODO: add fk to Inhoudsobject
nummer = models.PositiveIntegerField(
_("Nummer"),
help_text=_(
"Uniek identificerend nummer dat tijdens communicatie tussen mensen kan "
"worden gebruikt om de specifieke partij aan te duiden."
),
validators=[MaxValueValidator(9999999999)],
blank=False,
)
kanaal = models.CharField(
_("Kanaal"),
help_text=_("Communicatiekanaal dat bij het klantcontact werd gebruikt."),
max_length=50,
blank=False,
)
onderwerp = models.CharField(
_("Onderwerp"),
help_text=_("Datgene waarover het klantcontact ging."),
max_length=200,
blank=False,
)
inhoud = models.CharField(
_("Inhoud"),
help_text=_(
"Informatie die tijdens het klantcontact werd overgebracht of uitgewisseld, "
"voor zover die voor betrokkenen of actoren relevant is."
),
max_length=1000,
blank=True,
)
initiator = models.CharField(
_("Initiator"),
help_text=_("Degene die het klantcontact initieerde."),
choices=Initiator.choices,
max_length=17,
blank=False,
)
indicatie_contact_gelukt = models.BooleanField(
_("Indicatie contact gelukt"),
help_text=(
"Geeft, indien bekend, aan of de poging contact tussen de gemeente "
"en inwoner(s) of organisatie(s) tot stand te brengen succesvol was."
),
blank=False,
null=True,
)
taal = models.CharField(
_("Taal"),
help_text=_("Taal die bij het klantcontact werd gesproken of geschreven."),
max_length=3,
blank=False,
)
vertrouwelijk = models.BooleanField(
_("Vertrouwelijk"),
help_text=_(
"Geeft aan of onderwerp, inhoud en kenmerken van het klantcontact vertrouwelijk moeten worden behandeld."
),
blank=False,
)
# TODO: does this field require auto_now?
plaatsgevonden_op = models.DateTimeField(
_("Plaatsgevonden op"),
help_text=_(
"Datum en tijdstip waarop het klantontact plaatsvond. Als het klantcontact "
"een gesprek betrof, is dit het moment waarop het gesprek begon. "
"Als het klantcontact verzending of ontvangst van informatie betrof, "
"is dit bij benadering het moment waarop informatie door gemeente verzonden of ontvangen werd."
),
blank=False,
)

class Meta:
verbose_name = "klantcontact"
verbose_name_plural = "klantcontacten"

def __str__(self) -> str:
return self.nummer
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import uuid

from django.core.validators import MaxValueValidator
from django.db import models
from django.utils.translation import gettext_lazy as _
from django.core.validators import MaxValueValidator

from vng_api_common.descriptors import GegevensGroepType

from openklant.components.klantinteracties.constants import SoortPartij
from .constants import SoortPartij


class Partij(models.Model):
Expand All @@ -22,7 +22,8 @@ class Partij(models.Model):
nummer = models.PositiveIntegerField(
_("Nummer"),
help_text=_(
"Uniek identificerend nummer dat tijdens communicatie tussen mensen kan worden gebruikt om de specifieke partij aan te duiden."
"Uniek identificerend nummer dat tijdens communicatie tussen mensen kan "
"worden gebruikt om de specifieke partij aan te duiden."
),
validators=[MaxValueValidator(9999999999)],
blank=False,
Expand All @@ -45,7 +46,8 @@ class Partij(models.Model):
indicatie_geheimhouding = models.BooleanField(
_("Indicatie geheimhouding"),
help_text=_(
"Geeft aan of de verstrekker van partijgegevens heeft aangegeven dat deze gegevens als geheim beschouwd moeten worden."
"Geeft aan of de verstrekker van partijgegevens heeft aangegeven dat "
"deze gegevens als geheim beschouwd moeten worden."
),
blank=False,
)
Expand All @@ -68,7 +70,8 @@ class Partij(models.Model):
indicatie_actief = models.BooleanField(
_("Indicatie actief"),
help_text=_(
"Geeft aan of de contactgegevens van de partij nog gebruikt morgen worden om contact op te nemen. Gegevens van niet-actieve partijen mogen hiervoor niet worden gebruikt."
"Geeft aan of de contactgegevens van de partij nog gebruikt morgen worden om contact op te nemen. "
"Gegevens van niet-actieve partijen mogen hiervoor niet worden gebruikt."
),
blank=False,
)
Expand Down Expand Up @@ -109,7 +112,8 @@ class Partij(models.Model):
correspondentieadres_land = models.CharField(
_("Land"),
help_text=_(
"Een code, opgenomen in Tabel 34, Landentabel, die het land (buiten Nederland) aangeeft alwaar de ingeschrevene verblijft. "
"Een code, opgenomen in Tabel 34, Landentabel, die het land (buiten Nederland) "
"aangeeft alwaar de ingeschrevene verblijft. "
),
max_length=50,
blank=True,
Expand Down Expand Up @@ -151,7 +155,8 @@ class Partij(models.Model):
bezoekadres_land = models.CharField(
_("Land"),
help_text=_(
"Een code, opgenomen in Tabel 34, Landentabel, die het land (buiten Nederland) aangeeft alwaar de ingeschrevene verblijft."
"Een code, opgenomen in Tabel 34, Landentabel, die het land (buiten Nederland) "
"aangeeft alwaar de ingeschrevene verblijft."
),
max_length=50,
blank=True,
Expand Down Expand Up @@ -195,7 +200,8 @@ class Persoon(models.Model):
contactnaam_voorletters = models.CharField(
_("Voorletters"),
help_text=_(
"Een afkorting van de voornamen. Meestal de beginletter, maar in sommige gevallen de beginletter gecombineerd met de tweede letter van een voornaam."
"Een afkorting van de voornamen. Meestal de beginletter, maar in sommige gevallen "
"de beginletter gecombineerd met de tweede letter van een voornaam."
),
max_length=6,
blank=False,
Expand All @@ -211,7 +217,8 @@ class Persoon(models.Model):
contactnaam_voorvoegsel_achternaam = models.CharField(
_("Voorvoegsel achternaam"),
help_text=_(
"Een eventueel voorvoegsel dat hoort bij de achternaam die de persoon wil gebruiken tijdens communicatie met de gemeente."
"Een eventueel voorvoegsel dat hoort bij de achternaam die de persoon "
"wil gebruiken tijdens communicatie met de gemeente."
),
max_length=10,
blank=True,
Expand Down Expand Up @@ -252,7 +259,8 @@ class Contactpersoon(models.Model):
contactnaam_voorletters = models.CharField(
_("Voorletters"),
help_text=_(
"Een afkorting van de voornamen. Meestal de beginletter, maar in sommige gevallen de beginletter gecombineerd met de tweede letter van een voornaam."
"Een afkorting van de voornamen. Meestal de beginletter, maar in sommige gevallen "
"de beginletter gecombineerd met de tweede letter van een voornaam."
),
max_length=6,
blank=False,
Expand All @@ -268,7 +276,8 @@ class Contactpersoon(models.Model):
contactnaam_voorvoegsel_achternaam = models.CharField(
_("Voorvoegsel achternaam"),
help_text=_(
"Een eventueel voorvoegsel dat hoort bij de achternaam die de persoon wil gebruiken tijdens communicatie met de gemeente."
"Een eventueel voorvoegsel dat hoort bij de achternaam die de persoon "
"wil gebruiken tijdens communicatie met de gemeente."
),
max_length=10,
blank=True,
Expand Down
3 changes: 0 additions & 3 deletions src/openklant/components/klantinteracties/tests.py

This file was deleted.

3 changes: 0 additions & 3 deletions src/openklant/components/klantinteracties/views.py

This file was deleted.

0 comments on commit 5b57914

Please sign in to comment.