add ability to disable dashboards
Scott Baker [Mon, 19 Jan 2015 00:33:30 +0000 (16:33 -0800)]
planetstack/core/admin.py
planetstack/core/dashboard/views/home.py
planetstack/core/models/dashboard.py

index 5f9efd2..b195b30 100644 (file)
@@ -1293,7 +1293,7 @@ class ControllerDashboardViewInline(PlStackTabularInline):
 
 class DashboardViewAdmin(PlanetStackBaseAdmin):
     fieldsets = [('Dashboard View Details',
-                   {'fields': ['backend_status_text', 'name', 'url'],
+                   {'fields': ['backend_status_text', 'name', 'url', 'enabled'],
                     'classes': ['suit-tab suit-tab-general']})
                ]
     readonly_fields = ('backend_status_text', )
index 0d9ff74..6f57666 100644 (file)
@@ -75,11 +75,18 @@ class DashboardDynamicView(TemplateView):
             dashboards.append(customize[0])
 
         for i,view in enumerate(dashboards):
+            # don't display disabled dashboards
+            if (not view.enabled):
+                continue
             body = body + '<li><a href="#dashtab-%d">%s</a></li>\n' % (i, view.name)
 
         body = body + "</ul>\n"
 
         for i,view in enumerate(dashboards):
+            # don't display disabled dashboards
+            if (not view.enabled):
+                continue
+
             url = view.url
             body = body + '<div id="dashtab-%d">\n' % i
             if (view.controllers.all().count()>0):
index 828acec..39dcf07 100644 (file)
@@ -8,6 +8,7 @@ class DashboardView(PlCoreBase):
     name = models.CharField(max_length=200, unique=True, help_text="Name of the View")
     url = models.CharField(max_length=1024, help_text="URL of Dashboard")
     controllers = models.ManyToManyField(Controller, blank=True, related_name="dashboardviews", through='ControllerDashboardView')
+    enabled = models.BooleanField(default=True)
 
     def __unicode__(self):  return u'%s' % (self.name)
 
@@ -16,6 +17,7 @@ class ControllerDashboardView(PlCoreBase):
     deleted_objects = ControllerLinkDeletionManager()
     controller = models.ForeignKey(Controller, related_name='controllerdashboardviews')
     dashboardView = models.ForeignKey(DashboardView, related_name='controllerdashboardviews')
+    enabled = models.BooleanField(default=True)
 
     url = models.CharField(max_length=1024, help_text="URL of Dashboard")