1- from django .contrib import admin
1+ from django .contrib import admin , messages
2+ from django .utils .translation import gettext as _
3+ from django .utils .translation import ngettext
24
35from thebook .webhooks .models import OpenPixWebhookPayload , PaypalWebhookPayload
46
57
6- @admin .action (description = "Process OpenPix Webhook Payload" )
7- def process_openpix_payload (modeladmin , request , queryset ):
8- OpenPixWebhookPayload .objects .process_received_payloads ()
9-
10-
11- @admin .action (description = "Process PayPal Webhook Payload" )
12- def process_paypal_payload (modeladmin , request , queryset ):
13- PaypalWebhookPayload .objects .process_received_payloads ()
14-
15-
168@admin .register (OpenPixWebhookPayload )
179class OpenPixWebhookPayloadAdmin (admin .ModelAdmin ):
1810 actions = [
19- process_openpix_payload ,
11+ "process_payload" ,
2012 ]
2113 list_display = [
2214 "status" ,
@@ -26,11 +18,27 @@ class OpenPixWebhookPayloadAdmin(admin.ModelAdmin):
2618 "status" ,
2719 ]
2820
21+ @admin .action (description = _ ("Process selected webhook payloads" ))
22+ def process_payload (self , request , queryset ):
23+ for processed , payload in enumerate (queryset , start = 1 ):
24+ payload .process ()
25+
26+ self .message_user (
27+ request ,
28+ ngettext (
29+ "%(processed)d webhook payload processed." ,
30+ "%(processed)d webhook payloads processed." ,
31+ processed ,
32+ )
33+ % {"processed" : processed },
34+ messages .SUCCESS ,
35+ )
36+
2937
3038@admin .register (PaypalWebhookPayload )
3139class PaypalWebhookPayloadAdmin (admin .ModelAdmin ):
3240 actions = [
33- process_paypal_payload ,
41+ "process_payload" ,
3442 ]
3543 list_display = [
3644 "status" ,
@@ -39,3 +47,19 @@ class PaypalWebhookPayloadAdmin(admin.ModelAdmin):
3947 list_filter = [
4048 "status" ,
4149 ]
50+
51+ @admin .action (description = _ ("Process selected webhook payloads" ))
52+ def process_payload (self , request , queryset ):
53+ for processed , payload in enumerate (queryset , start = 1 ):
54+ payload .process ()
55+
56+ self .message_user (
57+ request ,
58+ ngettext (
59+ "%(processed)d webhook payload processed." ,
60+ "%(processed)d webhook payloads processed." ,
61+ processed ,
62+ )
63+ % {"processed" : processed },
64+ messages .SUCCESS ,
65+ )
0 commit comments