Skip to content

Commit

Permalink
✨ [#93] added admin pages for the new models
Browse files Browse the repository at this point in the history
  • Loading branch information
bart-maykin committed Oct 20, 2023
1 parent f154ee0 commit 70edb3e
Show file tree
Hide file tree
Showing 12 changed files with 348 additions and 21 deletions.
4 changes: 4 additions & 0 deletions src/openklant/components/klantinteracties/admin/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from .actoren import * # noqa
from .digitaal_adres import * # noqa
from .klantcontacten import * # noqa
from .partijen import * # noqa
44 changes: 44 additions & 0 deletions src/openklant/components/klantinteracties/admin/actoren.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
from django.contrib import admin

from django.utils.translation import gettext_lazy as _

from ..admin.internezaken import InterneTaakInlineAdmin
from ..models.actoren import Actor


@admin.register(Actor)
class ActorAdmin(admin.ModelAdmin):
list_display = [
"naam",
"soort_actor",
"indicatie_actief",
]
list_filter = [
"soort_actor",
"indicatie_actief",
]
search_fields = ("naam",)
inlines = [InterneTaakInlineAdmin]
fieldsets = [
(
None,
{
"fields": [
"naam",
"soort_actor",
"indicatie_actief",
]
},
),
(
_("Objectidentificator velden"),
{
"fields": [
"objectidentificator_objecttype",
"objectidentificator_soort_object_id",
"objectidentificator_object_id",
"objectidentificator_register",
]
},
),
]
10 changes: 10 additions & 0 deletions src/openklant/components/klantinteracties/admin/digitaal_adres.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from django.contrib import admin

from django.utils.translation import gettext_lazy as _

from ..models.digitaal_adres import DigitaalAdres


@admin.register(DigitaalAdres)
class DigitaalAdresAdmin(admin.ModelAdmin):
search_fields = ("adres",)
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
from django.contrib import admin

from ..models.internetaken import InterneTaak


class InterneTaakInlineAdmin(admin.StackedInline):
model = InterneTaak
extra = 0
autocomplete_fields = ("klantcontact",)
116 changes: 116 additions & 0 deletions src/openklant/components/klantinteracties/admin/klantcontacten.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
from django.contrib import admin

from django.utils.translation import gettext_lazy as _

from ..admin.internezaken import InterneTaakInlineAdmin
from ..models.klantcontacten import Klantcontact, Betrokkene, Onderwerpobject, Bijlage


class BetrokkeneInlineAdmin(admin.StackedInline):
model = Betrokkene
search_fields = (
"contactnaam_voorletters",
"contactnaam_voorvoegsel_achternaam",
"contactnaam_achternaam",
)
fieldsets = [
(
None,
{
"fields": [
"klantcontact",
"digitaal_adres",
"rol",
"organisatienaam",
"initiator",
]
},
),
(
_("Bezoekadres velden"),
{
"fields": [
"bezoekadres_nummeraanduiding_id",
"bezoekadres_adresregel1",
"bezoekadres_adresregel2",
"bezoekadres_adresregel3",
"bezoekadres_land",
]
},
),
(
_("Correspondentieadres velden"),
{
"fields": [
"correspondentieadres_nummeraanduiding_id",
"correspondentieadres_adresregel1",
"correspondentieadres_adresregel2",
"correspondentieadres_adresregel3",
"correspondentieadres_land",
]
},
),
(
_("Contactnaam velden"),
{
"fields": [
"contactnaam_voorletters",
"contactnaam_voornaam",
"contactnaam_voorvoegsel_achternaam",
"contactnaam_achternaam",
]
},
),
]
extra = 0


@admin.register(Betrokkene)
class BetrokkeneAdmin(admin.ModelAdmin):
search_fields = (
"contactnaam_voorletters",
"contactnaam_voorvoegsel_achternaam",
"contactnaam_achternaam",
)


class OnderwerpobjectInlineAdmin(admin.StackedInline):
model = Onderwerpobject
fk_name = "klantcontact"
extra = 0


class WasOnderwerpobjectInlineAdmin(admin.StackedInline):
model = Onderwerpobject
fk_name = "was_klantcontact"
extra = 0


class BijlageInlineAdmin(admin.StackedInline):
model = Bijlage
extra = 0


@admin.register(Klantcontact)
class KlantcontactAdmin(admin.ModelAdmin):
list_display = ["nummer", "kanaal", "indicatie_contact_gelukt", "betrokkene_namen"]
list_filter = [
"indicatie_contact_gelukt",
]
inlines = [
BetrokkeneInlineAdmin,
OnderwerpobjectInlineAdmin,
WasOnderwerpobjectInlineAdmin,
BijlageInlineAdmin,
InterneTaakInlineAdmin,
]
search_fields = ("nummer",)
autocomplete_fields = ["actoren"]
date_hierarchy = "plaatsgevonden_op"

@admin.display(empty_value="---")
def betrokkene_namen(self, obj):
if betrokkene := obj.betrokkene_set.all():
return [person.get_contactnaam() for person in betrokkene]

betrokkene_namen.short_description = _("betrokkene namen")
106 changes: 106 additions & 0 deletions src/openklant/components/klantinteracties/admin/partijen.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
from django.contrib import admin

from django.utils.translation import gettext_lazy as _

from ..models.partijen import Partij, Persoon, Contactpersoon, Organisatie


class PersoonInlineAdmin(admin.StackedInline):
model = Persoon
extra = 0


class ContactpersoonInlineAdmin(admin.StackedInline):
model = Contactpersoon
extra = 0


class OrganisatieInlineAdmin(admin.StackedInline):
model = Organisatie
extra = 0


@admin.register(Partij)
class PartijAdmin(admin.ModelAdmin):
list_display = (
"nummer",
"get_contactpersoon",
"get_personen",
"get_organisatienaam",
"soort_partij",
"indicatie_actief",
)
list_filter = (
"soort_partij",
"indicatie_actief",
)
inlines = (PersoonInlineAdmin, ContactpersoonInlineAdmin, OrganisatieInlineAdmin)
autocomplete_fields = (
"betrokkene",
"digitaal_adres",
"voorkeurs_digitaal_adres",
)
fieldsets = [
(
None,
{
"fields": [
"betrokkene",
"digitaal_adres",
"voorkeurs_digitaal_adres",
"vertegenwoordigde",
"nummer",
"interne_notitie",
"soort_partij",
"indicatie_geheimhouding",
"voorkeurstaal",
"indicatie_actief",
]
},
),
(
_("Bezoekadres velden"),
{
"fields": [
"bezoekadres_nummeraanduiding_id",
"bezoekadres_adresregel1",
"bezoekadres_adresregel2",
"bezoekadres_adresregel3",
"bezoekadres_land",
]
},
),
(
_("Correspondentieadres velden"),
{
"fields": [
"correspondentieadres_nummeraanduiding_id",
"correspondentieadres_adresregel1",
"correspondentieadres_adresregel2",
"correspondentieadres_adresregel3",
"correspondentieadres_land",
]
},
),
]

@admin.display(empty_value="---")
def get_personen(self, obj):
if people := obj.persoon_set.all():
return [person.get_contactnaam() for person in people]

get_personen.short_description = _("personen")

@admin.display(empty_value="---")
def get_contactpersoon(self, obj):
if people := obj.contactpersoon_set.all():
return [person.get_contactnaam() for person in people]

get_contactpersoon.short_description = _("contact persoon")

@admin.display(empty_value="---")
def get_organisatienaam(self, obj):
if organisaties := obj.organisatie_set.all():
return [organisatie.naam for organisatie in organisaties]

get_organisatienaam.short_description = _("organisatienaam")
16 changes: 8 additions & 8 deletions src/openklant/components/klantinteracties/models/actoren.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ class Meta:
verbose_name = _("actor")
verbose_name_plural = _("actoren")

def __str__(self):
return self.naam
def __str__(self):
return self.naam


class GeautomatiseerdeActor(models.Model):
Expand Down Expand Up @@ -66,8 +66,8 @@ class Meta:
verbose_name = _("geautomatiseerde actor")
verbose_name_plural = _("geautomatiseerde actoren")

def __str__(self):
return self.functie
def __str__(self):
return self.functie


class Medewerker(models.Model):
Expand Down Expand Up @@ -103,8 +103,8 @@ class Meta:
verbose_name = _("medewerker")
verbose_name_plural = _("mederwerkers")

def __str__(self):
return self.functie
def __str__(self):
return self.functie


class OrganisatorischeEenheid(models.Model):
Expand Down Expand Up @@ -146,5 +146,5 @@ class OrganisatorischeEenheid(models.Model):
class Meta:
verbose_name = _("organisatorische eenheid")

def __str__(self):
return self.omschrijving
def __str__(self):
return self.omschrijving
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,5 @@ class DigitaalAdres(models.Model):
class Meta:
verbose_name = _("digitaal adres")

def __str__(self):
return self.adres
def __str__(self):
return self.adres
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,9 @@ class Meta:
verbose_name = _("klantcontact")
verbose_name_plural = _("klantcontacten")

def __str__(self):
return self.nummer


class Betrokkene(BezoekadresMixin, CorrespondentieadresMixin, ContactnaamMixin):
uuid = models.UUIDField(
Expand Down Expand Up @@ -142,6 +145,9 @@ class Betrokkene(BezoekadresMixin, CorrespondentieadresMixin, ContactnaamMixin):
class Meta:
verbose_name = _("betrokkene bij klantcontact")

def __str__(self):
return self.get_contactnaam()


class Onderwerpobject(ObjectidentificatorMixin):
uuid = models.UUIDField(
Expand Down
9 changes: 9 additions & 0 deletions src/openklant/components/klantinteracties/models/mixins.py
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,15 @@ class ContactnaamMixin(models.Model):
class Meta:
abstract = True

def get_contactnaam(self):
initials = self.contactnaam_voorletters

if last_name := self.contactnaam_achternaam:
prefix = self.contactnaam_voorvoegsel_achternaam.lower()
return f"{initials}. {prefix} {last_name}"

return initials


class ObjectidentificatorMixin(models.Model):
objectidentificator_objecttype = models.CharField(
Expand Down
Loading

0 comments on commit 70edb3e

Please sign in to comment.