hide network columns for networks with no sliver ip addresses
[plstackapi.git] / planetstack / core / admin.py
index 73fd3db..93c14ee 100644 (file)
@@ -79,7 +79,7 @@ class SliverInline(PlStackTabularInline):
 
         for sliver in obj.slivers.all():
             for nbs in sliver.networksliver_set.all():
-                if nbs.ip is not None:
+                if nbs.ip:
                     network_name = nbs.network.name
                     if network_name not in [str(x) for x in readonly_fields]:
                         readonly_fields.append(NetworkLookerUpper(network_name))
@@ -171,8 +171,7 @@ class SliceMembershipInline(PlStackTabularInline):
 
         return super(SliceMembershipInline, self).formfield_for_foreignkey(db_field, request, **kwargs)
 
-class SliceNetworkInline(admin.TabularInline):
-    # exclude = ['enacted']
+class SliceNetworkInline(PlStackTabularInline):
     model = Network.slices.through
     extra = 0
     verbose_name = "Network Connection"
@@ -766,11 +765,18 @@ class NetworkSliversInline(admin.TabularInline):
     verbose_name_plural = "Slivers"
     verbose_name = "Sliver"
 
+class NetworkSlicesInline(admin.TabularInline):
+    exclude = ['enacted']
+    model = NetworkSlice
+    extra = 0
+    verbose_name_plural = "Slices"
+    verbose_name = "Slice"
+
 class NetworkAdmin(admin.ModelAdmin):
     exclude = ['enacted']
     list_display = ("name", "subnet", "ports", "labels")
     readonly_fields = ("subnet", )
-    inlines = [NetworkParameterInline, NetworkSliversInline, RouterInline]
+    inlines = [NetworkParameterInline, NetworkSliversInline, NetworkSlicesInline, RouterInline]
 
 class NetworkTemplateAdmin(admin.ModelAdmin):
     exclude = ['enacted']