|
@@ -12,7 +12,8 @@ class VPNAdmin(admin.ModelAdmin):
|
|
|
'administrative_subscription__member__first_name',
|
|
|
'administrative_subscription__member__last_name',
|
|
|
'administrative_subscription__member__email')
|
|
|
-
|
|
|
+ actions = ("generate_endpoints", "generate_endpoints_v4",
|
|
|
+ "generate_endpoints_v6")
|
|
|
|
|
|
def get_readonly_fields(self, request, obj=None):
|
|
|
if obj:
|
|
@@ -20,4 +21,26 @@ class VPNAdmin(admin.ModelAdmin):
|
|
|
else:
|
|
|
return []
|
|
|
|
|
|
+ def generate_endpoints_generic(self, request, queryset, v4=True, v6=True):
|
|
|
+ count = 0
|
|
|
+ for vpn in queryset:
|
|
|
+ if vpn.generate_endpoints(v4, v6):
|
|
|
+ vpn.full_clean()
|
|
|
+ vpn.save()
|
|
|
+ count += 1
|
|
|
+ msg = "{} VPN subscription(s) updated.".format(count)
|
|
|
+ self.message_user(request, msg)
|
|
|
+
|
|
|
+ def generate_endpoints(self, request, queryset):
|
|
|
+ self.generate_endpoints_generic(request, queryset)
|
|
|
+ generate_endpoints.short_description = "Generate IPv4 and IPv6 endpoints"
|
|
|
+
|
|
|
+ def generate_endpoints_v4(self, request, queryset):
|
|
|
+ self.generate_endpoints_generic(request, queryset, v6=False)
|
|
|
+ generate_endpoints_v4.short_description = "Generate IPv4 endpoints"
|
|
|
+
|
|
|
+ def generate_endpoints_v6(self, request, queryset):
|
|
|
+ self.generate_endpoints_generic(request, queryset, v4=False)
|
|
|
+ generate_endpoints_v6.short_description = "Generate IPv6 endpoints"
|
|
|
+
|
|
|
admin.site.register(VPNSubscription, VPNAdmin)
|