|
@@ -144,6 +144,24 @@ class ServiceAdmin(admin.ModelAdmin):
|
|
|
return False
|
|
|
|
|
|
|
|
|
+class IPPrefixAdmin(admin.ModelAdmin):
|
|
|
+ readonly_fields = ('prefix',)
|
|
|
+
|
|
|
+ def has_delete_permission(self, request, obj=None):
|
|
|
+ # Interdiction de supprimer le préfix s’il est assigné à une route
|
|
|
+ if obj and obj.route_set.exists():
|
|
|
+ return False
|
|
|
+ else:
|
|
|
+ return True
|
|
|
+
|
|
|
+ # pour embêcher de by-passer le check has_delete_permission, on désactive l’action delete
|
|
|
+ def get_actions(self, request):
|
|
|
+ actions = super().get_actions(request)
|
|
|
+ if 'delete_selected' in actions:
|
|
|
+ del actions['delete_selected']
|
|
|
+ return actions
|
|
|
+
|
|
|
+
|
|
|
class IPResourceAdmin(admin.ModelAdmin):
|
|
|
list_display = ('__str__', 'available_display', 'last_use',)
|
|
|
list_filter = (
|
|
@@ -277,6 +295,7 @@ class AntennaAdmin(geo_admin.OSMGeoAdmin):
|
|
|
|
|
|
admin.site.register(ServiceType, ServiceTypeAdmin)
|
|
|
admin.site.register(Service, ServiceAdmin)
|
|
|
+admin.site.register(IPPrefix, IPPrefixAdmin)
|
|
|
admin.site.register(IPResource, IPResourceAdmin)
|
|
|
admin.site.register(Route, RouteAdmin)
|
|
|
geo_admin.site.register(Antenna, AntennaAdmin)
|