blob: c90ec6ce5d6fc4aa0ce3537c9e0081207d9f2318 [file] [log] [blame]
Siobhan Tullybfd11dc2013-09-03 12:59:24 -04001from django.contrib import admin
2
3from hpc.models import *
4from django import forms
5from django.utils.safestring import mark_safe
6from django.contrib.auth.admin import UserAdmin
7from django.contrib.admin.widgets import FilteredSelectMultiple
8from django.contrib.auth.forms import ReadOnlyPasswordHashField
9from django.contrib.auth.signals import user_logged_in
10from django.utils import timezone
11from django.contrib.contenttypes import generic
12from suit.widgets import LinkedSelect
Scott Bakerb27b62c2014-08-15 16:29:16 -070013from core.admin import SingletonAdmin,SliceInline,ServiceAttrAsTabInline, ReadOnlyAwareAdmin, PlStackTabularInline
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040014
Scott Baker446eaca2014-05-23 13:16:57 -070015class HpcServiceAdmin(SingletonAdmin):
16 model = HpcService
17 verbose_name = "HPC Service"
18 verbose_name_plural = "HPC Service"
Scott Baker63d1a552014-08-21 15:19:07 -070019 list_display = ("backend_status_icon", "name","enabled")
20 list_display_links = ('backend_status_icon', 'name', )
Scott Baker36f50872014-08-21 13:01:25 -070021 fieldsets = [(None, {'fields': ['backend_status', 'name','enabled','versionNumber', 'description'], 'classes':['suit-tab suit-tab-general']})]
Scott Baker446eaca2014-05-23 13:16:57 -070022 inlines = [SliceInline,ServiceAttrAsTabInline]
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040023
Scott Baker446eaca2014-05-23 13:16:57 -070024 user_readonly_fields = ["name", "enabled", "versionNumber", "description"]
Scott Baker446eaca2014-05-23 13:16:57 -070025
26 suit_form_tabs =(('general', 'HPC Service Details'),
27 ('slices','Slices'),
28 ('serviceattrs','Additional Attributes'),
29 )
30
31class CDNPrefixInline(PlStackTabularInline):
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040032 model = CDNPrefix
33 extra = 0
34 suit_classes = 'suit-tab suit-tab-prefixes'
Scott Baker36f50872014-08-21 13:01:25 -070035 fields = ('backend_status', 'cdn_prefix_id', 'prefix', 'defaultOriginServer', 'enabled')
Scott Baker2a21ba12014-06-03 12:25:40 -070036 readonly_fields = ('cdn_prefix_id',)
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040037
Scott Baker446eaca2014-05-23 13:16:57 -070038class ContentProviderInline(PlStackTabularInline):
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040039 model = ContentProvider
40 extra = 0
41 suit_classes = 'suit-tab suit-tab-cps'
Scott Baker36f50872014-08-21 13:01:25 -070042 fields = ('backend_status', 'content_provider_id', 'name', 'enabled')
Scott Baker2a21ba12014-06-03 12:25:40 -070043 readonly_fields = ('content_provider_id',)
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040044
Scott Baker446eaca2014-05-23 13:16:57 -070045class OriginServerAdmin(ReadOnlyAwareAdmin):
Scott Baker63d1a552014-08-21 15:19:07 -070046 list_display = ('backend_status_icon', 'url','protocol','redirects','contentProvider','authenticated','enabled' )
47 list_display_links = ('backend_status_icon', 'url', )
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040048
Scott Baker36f50872014-08-21 13:01:25 -070049 fields = ('backend_status', 'url','protocol','redirects','contentProvider','authenticated','enabled','origin_server_id','description' )
Scott Baker2a21ba12014-06-03 12:25:40 -070050 readonly_fields = ('origin_server_id',)
51 user_readonly_fields = ('url','protocol','redirects','contentProvider','authenticated','enabled','origin_server_id','description')
Scott Baker446eaca2014-05-23 13:16:57 -070052
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040053class ContentProviderForm(forms.ModelForm):
54 class Meta:
55 widgets = {
56 'serviceProvider' : LinkedSelect
57 }
58
Scott Baker446eaca2014-05-23 13:16:57 -070059class ContentProviderAdmin(ReadOnlyAwareAdmin):
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040060 form = ContentProviderForm
Scott Baker63d1a552014-08-21 15:19:07 -070061 list_display = ('backend_status_icon', 'name','description','enabled' )
62 list_display_links = ('backend_status_icon', 'name', )
Scott Baker36f50872014-08-21 13:01:25 -070063 fieldsets = [ (None, {'fields': ['backend_status', 'name','enabled','description','serviceProvider','users'], 'classes':['suit-tab suit-tab-general']})]
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040064
65 inlines = [CDNPrefixInline]
66
Scott Baker446eaca2014-05-23 13:16:57 -070067 user_readonly_fields = ('name','description','enabled','serviceProvider','users')
Scott Baker446eaca2014-05-23 13:16:57 -070068
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040069 suit_form_tabs = (('general','Details'),('prefixes','CDN Prefixes'))
70
Scott Baker446eaca2014-05-23 13:16:57 -070071class ServiceProviderAdmin(ReadOnlyAwareAdmin):
Scott Baker63d1a552014-08-21 15:19:07 -070072 list_display = ('backend_status_icon', 'name', 'description', 'enabled')
73 list_display_links = ('backend_status_icon', 'name', )
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040074 fieldsets = [
Scott Baker36f50872014-08-21 13:01:25 -070075 (None, {'fields': ['backend_status', 'name','description','enabled'], 'classes':['suit-tab suit-tab-general']})]
Scott Baker446eaca2014-05-23 13:16:57 -070076#, ('Content Providers', {'fields':['contentProviders'],'classes':['suit-tab suit-tab-cps']})]
77
78 user_readonly_fields = ('name', 'description', 'enabled')
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040079
80 suit_form_tabs = (('general','Details'),('cps','Content Providers'))
81 inlines = [ContentProviderInline]
82
83class CDNPrefixForm(forms.ModelForm):
84 class Meta:
85 widgets = {
86 'contentProvider' : LinkedSelect
87 }
88
Scott Baker446eaca2014-05-23 13:16:57 -070089class CDNPrefixAdmin(ReadOnlyAwareAdmin):
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040090 form = CDNPrefixForm
Scott Baker63d1a552014-08-21 15:19:07 -070091 list_display = ['backend_status_icon', 'prefix','contentProvider']
92 list_display_links = ('backend_status_icon', 'prefix', )
Scott Baker36f50872014-08-21 13:01:25 -070093 fields = ['backend_status', 'prefix', 'contentProvider', 'cdn_prefix_id', 'description', 'defaultOriginServer', 'enabled']
Scott Baker446eaca2014-05-23 13:16:57 -070094 user_readonly_fields = ['prefix','contentProvider', "cdn_prefix_id", "description", "defaultOriginServer", "enabled"]
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040095
Scott Baker446eaca2014-05-23 13:16:57 -070096class SiteMapAdmin(ReadOnlyAwareAdmin):
Scott Baker53491082014-03-13 23:15:19 -070097 model = SiteMap
98 verbose_name = "Site Map"
99 verbose_name_plural = "Site Map"
Scott Baker63d1a552014-08-21 15:19:07 -0700100 list_display = ("backend_status_icon", "name", "contentProvider", "serviceProvider")
101 list_display_links = ('backend_status_icon', 'name', )
Scott Baker36f50872014-08-21 13:01:25 -0700102 user_readonly_fields = ('backend_status', "name", "contentProvider", "serviceProvider", "description", "map")
Scott Baker53491082014-03-13 23:15:19 -0700103
Scott Baker446eaca2014-05-23 13:16:57 -0700104class AccessMapAdmin(ReadOnlyAwareAdmin):
Scott Baker53491082014-03-13 23:15:19 -0700105 model = AccessMap
106 verbose_name = "Access Map"
107 verbose_name_plural = "Access Map"
Scott Baker63d1a552014-08-21 15:19:07 -0700108 list_display = ("backend_status_icon", "name", "contentProvider")
109 list_display_links = ('backend_status_icon', 'name', )
Scott Baker36f50872014-08-21 13:01:25 -0700110 user_readonly_fields = ('backend_status', "name", "contentProvider", "description", "map")
Scott Baker53491082014-03-13 23:15:19 -0700111
Siobhan Tullybfd11dc2013-09-03 12:59:24 -0400112admin.site.register(ServiceProvider, ServiceProviderAdmin)
113admin.site.register(ContentProvider, ContentProviderAdmin)
114admin.site.register(CDNPrefix, CDNPrefixAdmin)
115admin.site.register(OriginServer,OriginServerAdmin)
Scott Baker446eaca2014-05-23 13:16:57 -0700116admin.site.register(HpcService, HpcServiceAdmin)
Scott Baker53491082014-03-13 23:15:19 -0700117admin.site.register(SiteMap, SiteMapAdmin)
118admin.site.register(AccessMap, AccessMapAdmin)
Siobhan Tullybfd11dc2013-09-03 12:59:24 -0400119