Skip to content

Commit 3acdf10

Browse files
committed
display webhook delivery in admin
Signed-off-by: tdruez <tdruez@aboutcode.org>
1 parent f0b08a1 commit 3acdf10

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

notification/admin.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from dje.admin import dejacode_site
1515
from dje.forms import DataspacedAdminForm
1616
from notification.models import WEBHOOK_EVENTS
17+
from notification.models import WebhookDelivery
1718
from notification.models import WebhookSubscription
1819

1920

@@ -35,6 +36,24 @@ def __init__(self, *args, **kwargs):
3536
self.fields["event"] = forms.ChoiceField(choices=self.EVENTS)
3637

3738

39+
class WebhookDeliveryInline(admin.TabularInline):
40+
model = WebhookDelivery
41+
fields = ("sent_date", "response_status_code", "delivery_error")
42+
readonly_fields = ("sent_date", "response_status_code", "delivery_error")
43+
extra = 0
44+
can_delete = False
45+
show_change_link = False
46+
verbose_name_plural = "Last 10 deliveries"
47+
48+
def has_add_permission(self, request, obj=None):
49+
return False
50+
51+
def get_queryset(self, request):
52+
qs = super().get_queryset(request)
53+
latest_pks = qs.order_by("-sent_date").values_list("pk", flat=True)[:10]
54+
return qs.filter(pk__in=latest_pks).order_by("-sent_date")
55+
56+
3857
@admin.register(WebhookSubscription, site=dejacode_site)
3958
class WebhookSubscriptionAdmin(ProhibitDataspaceLookupMixin, DataspacedAdmin):
4059
list_display = ("__str__", "event", "target_url", "is_active", "dataspace")
@@ -44,3 +63,4 @@ class WebhookSubscriptionAdmin(ProhibitDataspaceLookupMixin, DataspacedAdmin):
4463
actions = []
4564
actions_to_remove = ["copy_to", "compare_with"]
4665
email_notification_on = ()
66+
inlines = [WebhookDeliveryInline]

0 commit comments

Comments
 (0)