X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plstackapi%2Fcore%2Fadmin.py;h=e53b245a318b457b4d707cdd3df08140c9abe555;hb=c47c39d5ed7fd09d900f98c87ff3fb9400a85a03;hp=c195a37345e923bda5a3d7e229cc28475c546107;hpb=759b57ae0b128a3e2b90bfdd9e9514184e70002c;p=plstackapi.git diff --git a/plstackapi/core/admin.py b/plstackapi/core/admin.py index c195a37..e53b245 100644 --- a/plstackapi/core/admin.py +++ b/plstackapi/core/admin.py @@ -2,7 +2,7 @@ from plstackapi.core.models import Site from plstackapi.core.models import * from django.contrib import admin from django import forms - +from django.utils.safestring import mark_safe from django.contrib.auth.admin import UserAdmin from django.contrib.admin.widgets import FilteredSelectMultiple @@ -25,6 +25,7 @@ class ReadonlyTabularInline(admin.TabularInline): class SliverInline(admin.TabularInline): model = Sliver + fields = ['ip', 'name', 'slice', 'flavor', 'image', 'key', 'node', 'deploymentNetwork'] extra = 0 class SiteInline(admin.TabularInline): @@ -125,6 +126,25 @@ class RoleAdmin(admin.ModelAdmin): ] list_display = ('role_type',) +class PlainTextWidget(forms.Widget): + def render(self, _name, value, attrs): + return mark_safe(value) if value is not None else '' + +class SliverForm(forms.ModelForm): + class Meta: + ip = forms.CharField(widget=PlainTextWidget) + model = Sliver + widgets = { + 'ip': PlainTextWidget(), + } + +class SliverAdmin(admin.ModelAdmin): + form = SliverForm + fieldsets = [ + ('Sliver', {'fields': ['ip', 'name', 'slice', 'flavor', 'image', 'key', 'node', 'deploymentNetwork']}) + ] + list_display = ['ip', 'name', 'slice', 'flavor', 'image', 'key', 'node', 'deploymentNetwork'] + admin.site.register(Site, SiteAdmin) admin.site.register(SitePrivilege) admin.site.register(Slice, SliceAdmin) @@ -132,7 +152,7 @@ admin.site.register(SliceMembership) admin.site.register(Subnet, SubnetAdmin) admin.site.register(Image, ImageAdmin) admin.site.register(Node, NodeAdmin) -admin.site.register(Sliver) +admin.site.register(Sliver, SliverAdmin) admin.site.register(Flavor) admin.site.register(Key, KeyAdmin) admin.site.register(Role, RoleAdmin)