| from django.contrib import admin |
| |
| from syndicate.models import * |
| 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 |
| from django.contrib.auth.forms import ReadOnlyPasswordHashField |
| from django.contrib.auth.signals import user_logged_in |
| from django.utils import timezone |
| from django.contrib.contenttypes import generic |
| from suit.widgets import LinkedSelect |
| from core.admin import ReadOnlyTabularInline,ReadOnlyAwareAdmin,SingletonAdmin,SliceInline,ServiceAttrAsTabInline,PlanetStackBaseAdmin, PlStackTabularInline,SliceROInline,ServiceAttrAsTabROInline |
| from suit.widgets import LinkedSelect |
| from bitfield import BitField |
| from bitfield.forms import BitFieldCheckboxSelectMultiple |
| |
| class SyndicateServiceAdmin(SingletonAdmin,ReadOnlyAwareAdmin): |
| model = SyndicateService |
| verbose_name = "Syndicate Service" |
| verbose_name_plural = "Syndicate Service" |
| list_display = ("name","enabled") |
| fieldsets = [(None, {'fields': ['name','enabled','versionNumber', 'description',], 'classes':['suit-tab suit-tab-general']})] |
| inlines = [SliceInline,ServiceAttrAsTabInline] |
| |
| user_readonly_fields = ['name','enabled','versionNumber','description'] |
| user_readonly_inlines = [SliceROInline, ServiceAttrAsTabROInline] |
| |
| suit_form_tabs =(('general', 'Syndicate Service Details'), |
| ('slices','Slices'), |
| ('serviceattrs','Additional Attributes'), |
| ) |
| |
| class VolumeAccessRightForUserROInline(ReadOnlyTabularInline): |
| model = VolumeAccessRight |
| extra = 0 |
| suit_classes = 'suit-tab suit-tab-volumeAccessRights' |
| fields = ['volume','gateway_caps'] |
| |
| class VolumeAccessRightROInline(ReadOnlyTabularInline): |
| model = VolumeAccessRight |
| extra = 0 |
| suit_classes = 'suit-tab suit-tab-volumeAccessRights' |
| fields = ['owner_id','gateway_caps'] |
| |
| class VolumeAccessRightInline(PlStackTabularInline): |
| model = VolumeAccessRight |
| extra = 0 |
| suit_classes = 'suit-tab suit-tab-volumeAccessRights' |
| |
| class VolumeAccessRightAdmin(ReadOnlyAwareAdmin): |
| model = VolumeAccessRight |
| |
| formfield_overrides = { BitField: {'widget': BitFieldCheckboxSelectMultiple},} |
| list_display = ['owner_id', 'volume'] |
| user_readonly_fields = ['owner_id','volume','gateway_caps'] |
| user_readonly_inlines = [] |
| |
| class VolumeAccessRequestForUserROInline(ReadOnlyTabularInline): |
| model = VolumeAccessRequest |
| extra = 0 |
| suit_classes = 'suit-tab suit-tab-volumeAccessRequests' |
| fields = ['volume', 'message'] |
| |
| class VolumeAccessRequestROInline(ReadOnlyTabularInline): |
| model = VolumeAccessRequest |
| extra = 0 |
| suit_classes = 'suit-tab suit-tab-volumeAccessRequests' |
| fields = ['owner_id', 'message'] |
| |
| class VolumeAccessRequestInline(PlStackTabularInline): |
| model = VolumeAccessRequest |
| extra = 0 |
| suit_classes = 'suit-tab suit-tab-volumeAccessRequests' |
| fields = ['owner_id', 'message'] |
| |
| class VolumeAccessRequestAdmin(ReadOnlyAwareAdmin): |
| model = VolumeAccessRequest |
| |
| formfield_overrides = { BitField: {'widget': BitFieldCheckboxSelectMultiple},} |
| list_display = ['owner_id', 'volume', 'message'] |
| user_readonly_fields = ['volume','owner_id','message','message', 'gateway_caps'] |
| user_readonly_inlines = [] |
| |
| class VolumeInline(PlStackTabularInline): |
| model = Volume |
| extra = 0 |
| suit_classes = 'suit-tab suit-tab-volumes' |
| fields = ['name', 'owner_id'] |
| |
| class VolumeROInline(ReadOnlyTabularInline): |
| model = Volume |
| extra = 0 |
| suit_classes = 'suit-tab suit-tab-volumes' |
| fields = ['name', 'owner_id'] |
| |
| class VolumeAdmin(ReadOnlyAwareAdmin): |
| model = Volume |
| read_only_fields = ['blockSize'] |
| list_display = ['name', 'owner_id'] |
| |
| formfield_overrides = { BitField: {'widget': BitFieldCheckboxSelectMultiple},} |
| |
| detailsFieldList = ['name', 'owner_id', 'description','file_quota','blocksize', 'private','archive', 'default_gateway_caps' ] |
| keyList = ['metadata_public_key','metadata_private_key','api_public_key'] |
| |
| fieldsets = [ |
| (None, {'fields': detailsFieldList, 'classes':['suit-tab suit-tab-general']}), |
| (None, {'fields': keyList, 'classes':['suit-tab suit-tab-volumeKeys']}), |
| ] |
| |
| inlines = [VolumeAccessRightInline, VolumeAccessRequestInline] |
| |
| user_readonly_fields = ['name','owner_id','description','blocksize','private','metadata_public_key','metadata_private_key','api_public_key','file_quota','default_gateway_caps'] |
| user_readonly_inlines = [VolumeAccessRightROInline, VolumeAccessRequestROInline] |
| |
| suit_form_tabs =(('general', 'Volume Details'), |
| ('volumeKeys', 'Access Keys'), |
| ('volumeAccessRequests', 'Volume Access Requests'), |
| ('volumeAccessRights', 'Volume Access Rights'), |
| ) |
| |
| |
| |
| class SyndicateUserAdmin(ReadOnlyAwareAdmin): |
| model = SyndicateUser |
| verbose_name = "Users" |
| verbose_name = "Users" |
| list_display = ['user','is_admin', 'max_volumes'] |
| inlines = [VolumeInline,VolumeAccessRequestInline,VolumeAccessRightInline] |
| user_readonly_fields = ['user','is_admin','max_volumes','max_UGs','max_RGs','max_AGs'] |
| user_readonly_inlines = [VolumeROInline,VolumeAccessRequestForUserROInline,VolumeAccessRightForUserROInline] |
| |
| fieldsets = [ |
| (None, {'fields': ['user','is_admin','max_volumes','max_UGs','max_RGs','max_AGs'], 'classes':['suit-tab suit-tab-general']}), |
| ] |
| |
| suit_form_tabs =(('general', 'Volume Details'), |
| ('volumes', 'Volumes'), |
| ('volumeAccessRequests', 'Volume Access Requests'), |
| ('volumeAccessRights', 'Volume Access Rights'), |
| ) |
| |
| admin.site.register(SyndicateService, SyndicateServiceAdmin) |
| admin.site.register(VolumeAccessRight, VolumeAccessRightAdmin) |
| admin.site.register(VolumeAccessRequest, VolumeAccessRequestAdmin) |
| admin.site.register(Volume, VolumeAdmin) |
| admin.site.register(SyndicateUser, SyndicateUserAdmin) |
| |