Devesh's changes to request router models and observer
diff --git a/planetstack/requestrouter/admin.py b/planetstack/requestrouter/admin.py
index 0036c4a..a8fd254 100644
--- a/planetstack/requestrouter/admin.py
+++ b/planetstack/requestrouter/admin.py
@@ -10,7 +10,7 @@
 from django.utils import timezone
 from django.contrib.contenttypes import generic
 from suit.widgets import LinkedSelect
-from core.admin import SingletonAdmin,SliceInline,ServiceAttrAsTabInline
+from core.admin import SingletonAdmin,SliceInline,ServiceAttrAsTabInline, SliceROInline,ServiceAttrAsTabROInline, ReadOnlyAwareAdmin
 
 class RequestRouterServiceAdmin(SingletonAdmin):
     model = RequestRouterService
@@ -20,18 +20,21 @@
     fieldsets = [(None, {'fields': ['name','enabled','versionNumber', 'description','behindNat','defaultTTL','defaultAction','lastResortAction','maxAnswers'], 'classes':['suit-tab suit-tab-general']})]
     inlines = [SliceInline,ServiceAttrAsTabInline]
 
+    user_readonly_inlines = [SliceROInline, ServiceAttrAsTabROInline]
     suit_form_tabs =(('general', 'Request Router Service Details'),
         ('slices','Slices'),
         ('serviceattrs','Additional Attributes'),
     )
 
-class ServiceMapAdmin(SingletonAdmin):
+class ServiceMapAdmin(ReadOnlyAwareAdmin):
     model = ServiceMap
     verbose_name = "Service Map"
     verbose_name_plural = "Service Map"
     list_display = ("name", "owner", "slice", "prefix")
-    #readonly_fields = ["name"]
+    fieldsets = [(None, {'fields': ['name','owner','slice', 'prefix','siteMap','accessMap'], 'classes':['suit-tab suit-tab-general']})]
 
+    suit_form_tabs =(('general', 'Service Map Details'),
+    )
 
 admin.site.register(RequestRouterService, RequestRouterServiceAdmin)
 admin.site.register(ServiceMap, ServiceMapAdmin)
diff --git a/planetstack/requestrouter/models.py b/planetstack/requestrouter/models.py
index ced91cf..8e4cc43 100644
--- a/planetstack/requestrouter/models.py
+++ b/planetstack/requestrouter/models.py
@@ -16,15 +16,20 @@
     lastResortAction = models.CharField(max_length=30, default = "random", help_text="Review if this should be enum")
     maxAnswers = models.PositiveIntegerField(default=3, help_text="Maximum number of answers in DNS response.")
 
-    def __unicode__(self):  return u'RequestRouterService'
+    def __unicode__(self):  return u'Request Router Service'
 
-class ServiceMap(models.Model):
+class ServiceMap(PlCoreBase):
+
+    class Meta:
+        app_label = "requestrouter"
+
     name = models.SlugField(max_length=50, unique=True, blank=False, null=False, help_text="name of this service map")
     owner = models.ForeignKey(Service, help_text="service which owns this map")
     slice = models.ForeignKey(Slice, help_text="slice that implements this service")
     prefix = models.CharField(max_length=256, help_text="FQDN of the region of URI space managed by RR on behalf of this service")
-    siteMap = models.FileField(upload_to="maps/", help_text="maps client requests to service instances")
-    accessMap = models.FileField(upload_to="maps/", help_text="specifies which client requests are allowed")
+	# need to fix the upload location appropriately, for now we are not using access/site map
+    siteMap = models.FileField(upload_to="maps/", help_text="maps client requests to service instances", blank=True)
+    accessMap = models.FileField(upload_to="maps/", help_text="specifies which client requests are allowed", blank=True)
 
     def siteMapName(self):
         return self.name + ".site"
@@ -34,5 +39,3 @@
 
     def __unicode__(self): return u'%s' % self.name
 
-
-