fix bug
[plstackapi.git] / planetstack / core / admin.py
index c9bba2c..134b688 100644 (file)
@@ -41,16 +41,13 @@ class SiteInline(admin.TabularInline):
 
 class UserInline(admin.TabularInline):
     model = User
+    fields = ['email', 'firstname', 'lastname']
     extra = 0
 
 class SliceInline(admin.TabularInline):
     model = Slice
     extra = 0
 
-class UserInline(admin.TabularInline):
-    model = User
-    extra = 0
-
 class RoleInline(admin.TabularInline):
     model = Role
     extra = 0 
@@ -59,6 +56,14 @@ class NodeInline(admin.TabularInline):
     model = Node
     extra = 0
 
+class SitePrivilegeInline(admin.TabularInline):
+    model = SitePrivilege
+    extra = 0
+
+class SliceMembershipInline(admin.TabularInline):
+    model = SliceMembership
+    extra = 0
+
 class PlainTextWidget(forms.HiddenInput):
     input_type = 'hidden'
 
@@ -124,7 +129,7 @@ class DeploymentNetworkAdminForm(forms.ModelForm):
 
 class DeploymentNetworkAdmin(PlanetStackBaseAdmin):
     form = DeploymentNetworkAdminForm
-    inlines = [NodeInline,]
+    inlines = [NodeInline,SliverInline]
 
     def get_formsets(self, request, obj=None):
         for inline in self.get_inline_instances(request, obj):
@@ -146,7 +151,7 @@ class SiteAdmin(OSModelAdmin):
     ]
     list_display = ('name', 'login_base','site_url', 'enabled')
     filter_horizontal = ('deployments',)
-    inlines = [NodeInline, UserInline]
+    inlines = [NodeInline, UserInline, SitePrivilegeInline]
     search_fields = ['name']
 
     def queryset(self, request):
@@ -222,7 +227,7 @@ class KeyAdmin(OSModelAdmin):
 class SliceAdmin(OSModelAdmin):
     fields = ['name', 'site', 'serviceClass', 'description', 'slice_url']
     list_display = ('name', 'site','serviceClass', 'slice_url')
-    inlines = [SliverInline]
+    inlines = [SliverInline, SliceMembershipInline]
 
     def queryset(self, request):
         # admins can see all keys. Users can only see slices they belong to.
@@ -332,7 +337,8 @@ class SliverAdmin(PlanetStackBaseAdmin):
             #self.readonly_fields = ('ip', 'instance_name') 
             self.readonly_fields = () 
         else:
-            self.readonly_fields = ('ip', 'instance_name', 'slice', 'image', 'key') 
+            self.readonly_fields = () 
+            #self.readonly_fields = ('ip', 'instance_name', 'slice', 'image', 'key') 
 
         for inline in self.get_inline_instances(request, obj):
             # hide MyInline in the add view
@@ -416,21 +422,33 @@ class UserAdmin(UserAdmin, OSModelAdmin):
     # that reference specific fields on auth.User.
     list_display = ('email', 'site', 'firstname', 'lastname', 'is_admin', 'last_login')
     list_filter = ('site',)
+    inlines = [SitePrivilegeInline, SliceMembershipInline]
     fieldsets = (
-        (None, {'fields': ('email', 'password')}),
-        ('Personal info', {'fields': ('firstname','lastname','phone', 'is_admin', 'site', 'key')}),
+        (None, {'fields': ('email', 'password', 'site', 'is_admin')}),
+        ('Personal info', {'fields': ('firstname','lastname','phone', 'key')}),
         #('Important dates', {'fields': ('last_login',)}),
     )
     add_fieldsets = (
         (None, {
             'classes': ('wide',),
-            'fields': ('email', 'firstname', 'lastname', 'phone', 'site', 'is_admin', 'key','password1', 'password2')}
+            'fields': ('email', 'firstname', 'lastname', 'phone', 'site', 'key','password1', 'password2', 'is_admin')}
         ),
     )
     search_fields = ('email',)
     ordering = ('email',)
     filter_horizontal = ()
 
+class ServiceResourceInline(admin.TabularInline):
+    model = ServiceResource
+    extra = 0
+
+class ServiceClassAdmin(admin.ModelAdmin):
+    list_display = ('name', 'commitment', 'membershipFee')
+    inlines = [ServiceResourceInline]
+
+class ServiceResourceAdmin(admin.ModelAdmin):
+    list_display = ('serviceClass', 'name', 'cost', 'calendarReservable', 'maxUnitsDeployment', 'maxUnitsNode')
+
 # register a signal that caches the user's credentials when they log in
 def cache_credentials(sender, user, request, **kwds):
     auth = {'username': request.POST['username'],
@@ -445,14 +463,16 @@ admin.site.register(User, UserAdmin)
 admin.site.unregister(Group)
 
 admin.site.register(Site, SiteAdmin)
-#admin.site.register(SitePrivilege, SitePrivilegeAdmin)
+admin.site.register(SitePrivilege, SitePrivilegeAdmin)
 admin.site.register(Slice, SliceAdmin)
-#admin.site.register(SliceMembership, SliceMembershipAdmin)
-#admin.site.register(Subnet, SubnetAdmin)
+admin.site.register(SliceMembership, SliceMembershipAdmin)
+#admin.site.register(Subnet)
 admin.site.register(Image, ImageAdmin)
-#admin.site.register(Node, NodeAdmin)
+admin.site.register(Node, NodeAdmin)
 admin.site.register(Sliver, SliverAdmin)
 admin.site.register(Key, KeyAdmin)
-#admin.site.register(Role, RoleAdmin)
+admin.site.register(Role, RoleAdmin)
 admin.site.register(DeploymentNetwork, DeploymentNetworkAdmin)
+admin.site.register(ServiceClass, ServiceClassAdmin)
+admin.site.register(ServiceResource, ServiceResourceAdmin)