provisioning status in admin UI
diff --git a/planetstack/core/admin.py b/planetstack/core/admin.py
index 6b24282..d1f6f86 100644
--- a/planetstack/core/admin.py
+++ b/planetstack/core/admin.py
@@ -18,6 +18,14 @@
 
 import django_evolution
 
+def backend_icon(value):
+        if value == "":
+            return ""
+        elif value == "Provisioning in progress":
+            return '<img src="/static/admin/img/icon_clock.gif">'
+        else:
+            return '<img src="/static/admin/img/icon_error.gif">'
+
 class PlainTextWidget(forms.HiddenInput):
     input_type = 'hidden'
 
@@ -28,21 +36,11 @@
 
 class BackendStatusIconWidget(forms.Widget):
     def render(self, name, value, attrs=None):
-        if value == "Provisioning in progress":
-            icon = "/static/admin/img/icon_clock.gif"
-        else:
-            icon = "/static/admin/img/icon_error.gif"
-
-        return mark_safe('<div title="%s"><img src="%s"></div>' % (value, icon))
+        return mark_safe('<div title="%s">%s</div>' % (value, backend_icon(value)))
 
 class BackendStatusFullWidget(forms.Widget):
     def render(self, name, value, attrs=None):
-        if value == "Provisioning in progress":
-            icon = "/static/admin/img/icon_clock.gif"
-        else:
-            icon = "/static/admin/img/icon_error.gif"
-
-        return mark_safe('<img src="%s"> %s' % (icon, value))
+        return mark_safe('%s %s' % (backend_icon(value), value))
 
 class ReadOnlyAwareAdmin(admin.ModelAdmin):
 
@@ -107,6 +105,14 @@
 
         return result
 
+    def backend_status_icon(self, obj):
+        if hasattr(obj, 'backend_status'):
+            value = obj.backend_status
+            return mark_safe('<div title="%s">%s</div>' % (value, backend_icon(value)))
+        else:
+            return ""
+    backend_status_icon.short_description = ""
+
 
 class SingletonAdmin (ReadOnlyAwareAdmin):
     def has_add_permission(self, request):
@@ -565,6 +571,8 @@
     fieldList = ['backend_status', 'name', 'sites', 'images', 'accessControl']
     fieldsets = [(None, {'fields': fieldList, 'classes':['suit-tab suit-tab-sites']})]
     inlines = [DeploymentPrivilegeInline,NodeInline,TagInline] # ,ImageDeploymentsInline]
+    list_display = ['backend_status_icon', 'name']
+    list_display_links = ('backend_status_icon', 'name', )
 
     user_readonly_fields = ['name']
 
@@ -593,7 +601,8 @@
     suit_classes = 'suit-tab suit-tab-serviceattrs'
 
 class ServiceAdmin(PlanetStackBaseAdmin):
-    list_display = ("name","description","versionNumber","enabled","published")
+    list_display = ("backend_status_icon","name","description","versionNumber","enabled","published")
+    list_display_links = ('backend_status_icon', 'name', )
     fieldList = ["backend_status","name","description","versionNumber","enabled","published"]
     fieldsets = [(None, {'fields': fieldList, 'classes':['suit-tab suit-tab-general']})]
     inlines = [ServiceAttrAsTabInline,SliceInline]
@@ -623,7 +632,8 @@
 
     user_readonly_fields = ['name', 'deployments','site_url', 'enabled', 'is_public', 'login_base', 'accountLink']
 
-    list_display = ('name', 'login_base','site_url', 'enabled')
+    list_display = ('backend_status_icon', 'name', 'login_base','site_url', 'enabled')
+    list_display_links = ('backend_status_icon', 'name', )
     filter_horizontal = ('deployments',)
     inlines = [SliceInline,UserInline,TagInline, NodeInline, SitePrivilegeInline, SiteDeploymentInline]
     search_fields = ['name']
@@ -673,7 +683,8 @@
     fieldsets = [
         (None, {'fields': fieldList, 'classes':['collapse']})
     ]
-    list_display = ('user', 'site', 'role')
+    list_display = ('backend_status_icon', 'user', 'site', 'role')
+    list_display_links = list_display
     user_readonly_fields = fieldList
     user_readonly_inlines = []
 
@@ -723,7 +734,8 @@
     form = SliceForm
     fieldList = ['backend_status', 'name', 'site', 'serviceClass', 'enabled','description', 'service', 'slice_url', 'max_slivers']
     fieldsets = [('Slice Details', {'fields': fieldList, 'classes':['suit-tab suit-tab-general']}),]
-    list_display = ('name', 'site','serviceClass', 'slice_url', 'max_slivers')
+    list_display = ('backend_status_icon', 'name', 'site','serviceClass', 'slice_url', 'max_slivers')
+    list_display_links = ('backend_status_icon', 'name', )
     inlines = [SlicePrivilegeInline,SliverInline, TagInline, ReservationInline,SliceNetworkInline]
 
     user_readonly_fields = fieldList
@@ -773,7 +785,8 @@
     fieldsets = [
         (None, {'fields': ['backend_status', 'user', 'slice', 'role']})
     ]
-    list_display = ('user', 'slice', 'role')
+    list_display = ('backend_status_icon', 'user', 'slice', 'role')
+    list_display_links = list_display
 
     user_readonly_fields = ['user', 'slice', 'role']
     user_readonly_inlines = []
@@ -820,6 +833,9 @@
 
     user_readonly_fields = ['name', 'disk_format', 'container_format']
 
+    list_display = ['backend_status_icon', 'name']
+    list_display_links = ('backend_status_icon', 'name', )
+
 class NodeForm(forms.ModelForm):
     class Meta:
         widgets = {
@@ -829,7 +845,8 @@
 
 class NodeAdmin(PlanetStackBaseAdmin):
     form = NodeForm
-    list_display = ('name', 'site', 'deployment')
+    list_display = ('backend_status_icon', 'name', 'site', 'deployment')
+    list_display_links = ('backend_status_icon', 'name', )
     list_filter = ('deployment',)
 
     inlines = [TagInline,SliverInline]
@@ -856,7 +873,8 @@
         }
 
 class TagAdmin(PlanetStackBaseAdmin):
-    list_display = ['service', 'name', 'value', 'content_type', 'content_object',]
+    list_display = ['backend_status_icon', 'service', 'name', 'value', 'content_type', 'content_object',]
+    list_display_links = list_display
     user_readonly_fields = ['service', 'name', 'value', 'content_type', 'content_object',]
     user_readonly_inlines = []
 
@@ -865,7 +883,8 @@
     fieldsets = [
         ('Sliver Details', {'fields': ['backend_status', 'slice', 'deploymentNetwork', 'node', 'ip', 'instance_name', 'numberCores', 'image', ], 'classes': ['suit-tab suit-tab-general'], })
     ]
-    list_display = ['ip', 'instance_name', 'slice', 'numberCores', 'image', 'node', 'deploymentNetwork']
+    list_display = ['backend_status_icon', 'ip', 'instance_name', 'slice', 'numberCores', 'image', 'node', 'deploymentNetwork']
+    list_display_links = ('backend_status_icon', 'ip',)
 
     suit_form_tabs =(('general', 'Sliver Details'),
         ('tags','Tags'),
@@ -1091,7 +1110,8 @@
     extra = 0
 
 class ServiceClassAdmin(PlanetStackBaseAdmin):
-    list_display = ('backend_status', 'name', 'commitment', 'membershipFee')
+    list_display = ('backend_status_icon', 'name', 'commitment', 'membershipFee')
+    list_display_links = ('backend_status_icon', 'name', )
     inlines = [ServiceResourceInline]
 
     user_readonly_fields = ['name', 'commitment', 'membershipFee']
@@ -1237,12 +1257,14 @@
         return Reservation.select_by_user(request.user)
 
 class NetworkParameterTypeAdmin(PlanetStackBaseAdmin):
-    list_display = ("name", )
+    list_display = ("backend_status_icon", "name", )
+    list_display_links = ('backend_status_icon', 'name', )
     user_readonly_fields = ['name']
     user_readonly_inlines = []
 
 class RouterAdmin(PlanetStackBaseAdmin):
-    list_display = ("name", )
+    list_display = ("backend_status_icon", "name", )
+    list_display_links = ('backend_status_icon', 'name', )
     user_readonly_fields = ['name']
     user_readonly_inlines = []
 
@@ -1281,7 +1303,8 @@
     fields = ['backend_status', 'network','slice']
 
 class NetworkAdmin(PlanetStackBaseAdmin):
-    list_display = ("name", "subnet", "ports", "labels")
+    list_display = ("backend_status_icon", "name", "subnet", "ports", "labels")
+    list_display_links = ('backend_status_icon', 'name', )
     readonly_fields = ("subnet", )
 
     inlines = [NetworkParameterInline, NetworkSliversInline, NetworkSlicesInline, RouterInline]
@@ -1299,7 +1322,8 @@
         ('routers','Routers'),
     )
 class NetworkTemplateAdmin(PlanetStackBaseAdmin):
-    list_display = ("name", "guaranteedBandwidth", "visibility")
+    list_display = ("backend_status_icon", "name", "guaranteedBandwidth", "visibility")
+    list_display_links = ('backend_status_icon', 'name', )
     user_readonly_fields = ["name", "guaranteedBandwidth", "visibility"]
     user_readonly_inlines = []