Skip to content

Commit 97771d2

Browse files
committed
🎨 [#164] changed inline uuid fields into endpoints
1 parent c952db1 commit 97771d2

23 files changed

+1762
-445
lines changed

src/openklant/components/klantinteracties/admin/actoren.py

+7
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from ..admin.internezaken import InterneTaakInlineAdmin
55
from ..models.actoren import (
66
Actor,
7+
ActorKlantcontact,
78
GeautomatiseerdeActor,
89
Medewerker,
910
OrganisatorischeEenheid,
@@ -28,6 +29,11 @@ class OrganisatorischeEenheidInlineAdmin(admin.StackedInline):
2829
extra = 0
2930

3031

32+
class ActorKlantcontactInlineAdmin(admin.StackedInline):
33+
model = ActorKlantcontact
34+
extra = 0
35+
36+
3137
@admin.register(Actor)
3238
class ActorAdmin(admin.ModelAdmin):
3339
list_display = (
@@ -41,6 +47,7 @@ class ActorAdmin(admin.ModelAdmin):
4147
)
4248
search_fields = ("naam",)
4349
inlines = (
50+
ActorKlantcontactInlineAdmin,
4451
GeautomatiseerdeActorInlineAdmin,
4552
MedewerkerInlineAdmin,
4653
OrganisatorischeEenheidInlineAdmin,

src/openklant/components/klantinteracties/admin/klantcontacten.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
from django.contrib import admin
22
from django.utils.translation import gettext_lazy as _
33

4+
from openklant.components.klantinteracties.models.actoren import ActorKlantcontact
5+
46
from ..admin.internezaken import InterneTaakInlineAdmin
57
from ..models.klantcontacten import Betrokkene, Bijlage, Klantcontact, Onderwerpobject
68

@@ -136,20 +138,25 @@ class BijlageInlineAdmin(admin.StackedInline):
136138
extra = 0
137139

138140

141+
class ActorKlantcontactInlineAdmin(admin.StackedInline):
142+
model = ActorKlantcontact
143+
extra = 0
144+
145+
139146
@admin.register(Klantcontact)
140147
class KlantcontactAdmin(admin.ModelAdmin):
141148
list_display = ["nummer", "kanaal", "indicatie_contact_gelukt", "betrokkene_namen"]
142149
list_filter = [
143150
"indicatie_contact_gelukt",
144151
]
145152
inlines = [
153+
ActorKlantcontactInlineAdmin,
146154
BetrokkeneInlineAdmin,
147155
WasOnderwerpobjectInlineAdmin,
148156
BijlageInlineAdmin,
149157
InterneTaakInlineAdmin,
150158
]
151159
search_fields = ("nummer",)
152-
autocomplete_fields = ["actoren"]
153160
date_hierarchy = "plaatsgevonden_op"
154161

155162
@admin.display(empty_value="---")

src/openklant/components/klantinteracties/admin/partijen.py

+11-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
Organisatie,
1212
Partij,
1313
Persoon,
14+
Vertegenwoordigden,
1415
)
1516

1617

@@ -44,6 +45,13 @@ class PersoonInlineAdmin(admin.StackedInline):
4445
extra = 0
4546

4647

48+
class VertegenwoordigdenInlineAdmin(admin.StackedInline):
49+
readonly_fields = ("uuid",)
50+
model = Vertegenwoordigden
51+
fk_name = "vertegenwoordigende_partij"
52+
extra = 0
53+
54+
4755
class ContactpersoonInlineAdmin(admin.StackedInline):
4856
readonly_fields = ("uuid",)
4957
model = Contactpersoon
@@ -76,16 +84,18 @@ class PartijAdmin(admin.ModelAdmin):
7684
OrganisatieInlineAdmin,
7785
DigitaalAdresInlineAdmin,
7886
BetrokkeneInlineAdmin,
87+
VertegenwoordigdenInlineAdmin,
7988
)
8089
search_fields = ("partij",)
8190
autocomplete_fields = ("voorkeurs_digitaal_adres",)
91+
readonly_fields = ("uuid",)
8292
fieldsets = [
8393
(
8494
None,
8595
{
8696
"fields": [
97+
"uuid",
8798
"voorkeurs_digitaal_adres",
88-
"vertegenwoordigde",
8999
"nummer",
90100
"interne_notitie",
91101
"soort_partij",

src/openklant/components/klantinteracties/api/filterset/klantcontacten.py

+37
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from openklant.components.klantinteracties.api.serializers.klantcontacten import (
88
KlantcontactSerializer,
99
)
10+
from openklant.components.klantinteracties.models.actoren import ActorKlantcontact
1011
from openklant.components.klantinteracties.models.klantcontacten import (
1112
Betrokkene,
1213
Klantcontact,
@@ -171,3 +172,39 @@ def filter_partij_uuid(self, queryset, name, value):
171172
return queryset.filter(partij__uuid=partij_uuid)
172173
except ValueError:
173174
return queryset.none()
175+
176+
177+
class ActorKlantcontactFilterSet(FilterSet):
178+
actor__url = filters.CharFilter(
179+
help_text=_("Zoek actor klantcontract object op basis van het actor url"),
180+
method="filter_actor_url",
181+
)
182+
klantcontact__url = filters.CharFilter(
183+
help_text=_(
184+
"Zoek actor klantcontract object op basis van het klantcontact url"
185+
),
186+
method="filter_klantcontact_url",
187+
)
188+
189+
class Meta:
190+
model = ActorKlantcontact
191+
fields = (
192+
"actor__uuid",
193+
"actor__url",
194+
"klantcontact__uuid",
195+
"klantcontact__url",
196+
)
197+
198+
def filter_actor_url(self, queryset, name, value):
199+
try:
200+
url_uuid = uuid.UUID(value.split("/")[-1])
201+
return queryset.filter(actor__uuid=url_uuid)
202+
except ValueError:
203+
return queryset.none()
204+
205+
def filter_klantcontact_url(self, queryset, name, value):
206+
try:
207+
url_uuid = uuid.UUID(value.split("/")[-1])
208+
return queryset.filter(klantcontact__uuid=url_uuid)
209+
except ValueError:
210+
return queryset.none()

src/openklant/components/klantinteracties/api/filterset/partijen.py

+39-40
Original file line numberDiff line numberDiff line change
@@ -10,28 +10,12 @@
1010
from openklant.components.klantinteracties.models.partijen import (
1111
CategorieRelatie,
1212
Partij,
13+
Vertegenwoordigden,
1314
)
1415
from openklant.components.utils.filters import ExpandFilter
1516

1617

1718
class PartijFilterSet(FilterSet):
18-
werkt_voor_partij__url = filters.CharFilter(
19-
help_text=_("Zoek partij object op basis van het vertegenwoordigde partij url"),
20-
method="filter_werkt_voor_partij_url",
21-
)
22-
werkt_voor_partij__uuid = filters.CharFilter(
23-
help_text=_(
24-
"Zoek partij object op basis van het vertegenwoordigde partij uuid"
25-
),
26-
method="filter_werkt_voor_partij_uuid",
27-
)
28-
werkt_voor_partij__nummer = filters.CharFilter(
29-
help_text=_(
30-
"Zoek partij object op basis van het vertegenwoordigde partij nummer"
31-
),
32-
method="filter_werkt_voor_partij_nummer",
33-
)
34-
3519
partij_identificator__objecttype = filters.CharFilter(
3620
help_text=_(
3721
"Zoek partij object op basis van het partij identificator objecttype"
@@ -72,9 +56,6 @@ class PartijFilterSet(FilterSet):
7256
class Meta:
7357
model = Partij
7458
fields = (
75-
"werkt_voor_partij__url",
76-
"werkt_voor_partij__uuid",
77-
"werkt_voor_partij__nummer",
7859
"partij_identificator__objecttype",
7960
"partij_identificator__soort_object_id",
8061
"partij_identificator__object_id",
@@ -96,26 +77,6 @@ class Meta:
9677
"correspondentieadres_land",
9778
)
9879

99-
def filter_werkt_voor_partij_uuid(self, queryset, name, value):
100-
try:
101-
partij_uuid = uuid.UUID(value)
102-
return queryset.filter(vertegenwoordigde__uuid=partij_uuid)
103-
except ValueError:
104-
return queryset.none()
105-
106-
def filter_werkt_voor_partij_url(self, queryset, name, value):
107-
try:
108-
url_uuid = uuid.UUID(value.split("/")[-1])
109-
return queryset.filter(vertegenwoordigde__uuid=url_uuid)
110-
except ValueError:
111-
return queryset.none()
112-
113-
def filter_werkt_voor_partij_nummer(self, queryset, name, value):
114-
try:
115-
return queryset.filter(vertegenwoordigde__nummer=value)
116-
except ValueError:
117-
return queryset.none()
118-
11980
def filter_identificator_objecttype(self, queryset, name, value):
12081
try:
12182
return queryset.filter(
@@ -158,6 +119,44 @@ def filter_categorierelatie_categorie_naam(self, queryset, name, value):
158119
return queryset.none()
159120

160121

122+
class VertegenwoordigdenFilterSet(FilterSet):
123+
vertegenwoordigende_partij__url = filters.CharFilter(
124+
help_text=_(
125+
"Zoek Vertegenwoordigden object op basis van het vertegenwoordigende partij url"
126+
),
127+
method="filter_vertegenwoordigende_partij_url",
128+
)
129+
vertegenwoordigde_partij__url = filters.CharFilter(
130+
help_text=_(
131+
"Zoek Vertegenwoordigden object op basis van het vertegenwoordigde partij url"
132+
),
133+
method="filter_vertegenwoordigde_partij_url",
134+
)
135+
136+
class Meta:
137+
model = Vertegenwoordigden
138+
fields = (
139+
"vertegenwoordigende_partij__uuid",
140+
"vertegenwoordigende_partij__url",
141+
"vertegenwoordigde_partij__uuid",
142+
"vertegenwoordigde_partij__url",
143+
)
144+
145+
def filter_vertegenwoordigende_partij_url(self, queryset, name, value):
146+
try:
147+
url_uuid = uuid.UUID(value.split("/")[-1])
148+
return queryset.filter(vertegenwoordigende_partij__uuid=url_uuid)
149+
except ValueError:
150+
return queryset.none()
151+
152+
def filter_vertegenwoordigde_partij_url(self, queryset, name, value):
153+
try:
154+
url_uuid = uuid.UUID(value.split("/")[-1])
155+
return queryset.filter(vertegenwoordigde_partij__uuid=url_uuid)
156+
except ValueError:
157+
return queryset.none()
158+
159+
161160
class CategorieRelatieFilterSet(FilterSet):
162161
partij__url = filters.CharFilter(
163162
help_text=_("Zoek categorie relatie object op basis van de partij url"),

0 commit comments

Comments
 (0)