blob: 74902ad794dba646ea1e4cc2d89da4cc3596e96b [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 Baker7a056af2015-02-26 20:42:11 -080013from core.admin import ServiceAppAdmin,SliceInline,ServiceAttrAsTabInline, ReadOnlyAwareAdmin, XOSTabularInline
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040014
Scott Baker7a056af2015-02-26 20:42:11 -080015class HpcServiceAdmin(ServiceAppAdmin):
Scott Baker446eaca2014-05-23 13:16:57 -070016 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 Baker8f910612015-03-13 09:17:33 -070021 fieldsets = [(None, {'fields': ['backend_status_text', 'name','enabled','versionNumber', 'description', "cmi_url"], 'classes':['suit-tab suit-tab-general']})]
Scott Baker40c00762014-08-21 16:55:59 -070022 readonly_fields = ('backend_status_text', )
Scott Baker446eaca2014-05-23 13:16:57 -070023 inlines = [SliceInline,ServiceAttrAsTabInline]
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040024
Scott Baker446eaca2014-05-23 13:16:57 -070025 user_readonly_fields = ["name", "enabled", "versionNumber", "description"]
Scott Baker446eaca2014-05-23 13:16:57 -070026
27 suit_form_tabs =(('general', 'HPC Service Details'),
Scott Baker8642fa82015-02-26 17:05:02 -080028 ('administration', 'Administration'),
Scott Baker446eaca2014-05-23 13:16:57 -070029 ('slices','Slices'),
30 ('serviceattrs','Additional Attributes'),
31 )
32
Scott Baker8642fa82015-02-26 17:05:02 -080033 suit_form_includes = (('hpcadmin.html', 'top', 'administration'),)
34
Scott Bakerc481b322015-02-27 12:12:14 -080035class HPCAdmin(ReadOnlyAwareAdmin):
36 # Change the application breadcrumb to point to an HPC Service if one is
37 # defined
38
39 change_form_template = "admin/change_form_bc.html"
40 change_list_template = "admin/change_list_bc.html"
41 custom_app_breadcrumb_name = "Hpc"
42 @property
43 def custom_app_breadcrumb_url(self):
44 services = HpcService.objects.all()
45 if len(services)==1:
46 return "/admin/hpc/hpcservice/%s/" % services[0].id
47 else:
48 return "/admin/hpc/hpcservice/"
49
Scott Baker022cdcd2015-02-18 15:50:11 -080050class CDNPrefixInline(XOSTabularInline):
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040051 model = CDNPrefix
52 extra = 0
53 suit_classes = 'suit-tab suit-tab-prefixes'
Scott Baker40c00762014-08-21 16:55:59 -070054 fields = ('backend_status_icon', 'cdn_prefix_id', 'prefix', 'defaultOriginServer', 'enabled')
55 readonly_fields = ('backend_status_icon', 'cdn_prefix_id',)
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040056
Scott Baker022cdcd2015-02-18 15:50:11 -080057class ContentProviderInline(XOSTabularInline):
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040058 model = ContentProvider
59 extra = 0
60 suit_classes = 'suit-tab suit-tab-cps'
Scott Baker40c00762014-08-21 16:55:59 -070061 fields = ('backend_status_icon', 'content_provider_id', 'name', 'enabled')
62 readonly_fields = ('backend_status_icon', 'content_provider_id',)
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040063
Scott Bakerc481b322015-02-27 12:12:14 -080064class OriginServerAdmin(HPCAdmin):
Scott Baker63d1a552014-08-21 15:19:07 -070065 list_display = ('backend_status_icon', 'url','protocol','redirects','contentProvider','authenticated','enabled' )
66 list_display_links = ('backend_status_icon', 'url', )
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040067
Scott Baker40c00762014-08-21 16:55:59 -070068 fields = ('backend_status_text', 'url','protocol','redirects','contentProvider','authenticated','enabled','origin_server_id','description' )
69 readonly_fields = ('backend_status_text', 'origin_server_id',)
Scott Baker2a21ba12014-06-03 12:25:40 -070070 user_readonly_fields = ('url','protocol','redirects','contentProvider','authenticated','enabled','origin_server_id','description')
Scott Baker446eaca2014-05-23 13:16:57 -070071
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040072class ContentProviderForm(forms.ModelForm):
73 class Meta:
74 widgets = {
75 'serviceProvider' : LinkedSelect
76 }
77
Scott Bakerc481b322015-02-27 12:12:14 -080078class ContentProviderAdmin(HPCAdmin):
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040079 form = ContentProviderForm
Scott Baker63d1a552014-08-21 15:19:07 -070080 list_display = ('backend_status_icon', 'name','description','enabled' )
81 list_display_links = ('backend_status_icon', 'name', )
Scott Baker40c00762014-08-21 16:55:59 -070082 fieldsets = [ (None, {'fields': ['backend_status_text', 'name','enabled','description','serviceProvider','users'], 'classes':['suit-tab suit-tab-general']})]
83 readonly_fields = ('backend_status_text', )
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040084
85 inlines = [CDNPrefixInline]
86
Scott Baker446eaca2014-05-23 13:16:57 -070087 user_readonly_fields = ('name','description','enabled','serviceProvider','users')
Scott Baker446eaca2014-05-23 13:16:57 -070088
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040089 suit_form_tabs = (('general','Details'),('prefixes','CDN Prefixes'))
90
Scott Bakerc481b322015-02-27 12:12:14 -080091class ServiceProviderAdmin(HPCAdmin):
Scott Baker63d1a552014-08-21 15:19:07 -070092 list_display = ('backend_status_icon', 'name', 'description', 'enabled')
93 list_display_links = ('backend_status_icon', 'name', )
Siobhan Tullybfd11dc2013-09-03 12:59:24 -040094 fieldsets = [
Scott Baker8f910612015-03-13 09:17:33 -070095 (None, {'fields': ['backend_status_text', 'name','description','enabled', 'hpcService'], 'classes':['suit-tab suit-tab-general']})]
Scott Baker446eaca2014-05-23 13:16:57 -070096#, ('Content Providers', {'fields':['contentProviders'],'classes':['suit-tab suit-tab-cps']})]
97
Scott Baker40c00762014-08-21 16:55:59 -070098 readonly_fields = ('backend_status_text', )
Scott Baker446eaca2014-05-23 13:16:57 -070099 user_readonly_fields = ('name', 'description', 'enabled')
Siobhan Tullybfd11dc2013-09-03 12:59:24 -0400100
101 suit_form_tabs = (('general','Details'),('cps','Content Providers'))
102 inlines = [ContentProviderInline]
103
104class CDNPrefixForm(forms.ModelForm):
105 class Meta:
106 widgets = {
107 'contentProvider' : LinkedSelect
108 }
109
Scott Bakerc481b322015-02-27 12:12:14 -0800110class CDNPrefixAdmin(HPCAdmin):
Siobhan Tullybfd11dc2013-09-03 12:59:24 -0400111 form = CDNPrefixForm
Scott Baker63d1a552014-08-21 15:19:07 -0700112 list_display = ['backend_status_icon', 'prefix','contentProvider']
113 list_display_links = ('backend_status_icon', 'prefix', )
Scott Baker40c00762014-08-21 16:55:59 -0700114 fields = ['backend_status_text', 'prefix', 'contentProvider', 'cdn_prefix_id', 'description', 'defaultOriginServer', 'enabled']
115 readonly_fields = ('backend_status_text', )
Scott Baker446eaca2014-05-23 13:16:57 -0700116 user_readonly_fields = ['prefix','contentProvider', "cdn_prefix_id", "description", "defaultOriginServer", "enabled"]
Siobhan Tullybfd11dc2013-09-03 12:59:24 -0400117
Scott Bakerc481b322015-02-27 12:12:14 -0800118class SiteMapAdmin(HPCAdmin):
Scott Baker53491082014-03-13 23:15:19 -0700119 model = SiteMap
120 verbose_name = "Site Map"
121 verbose_name_plural = "Site Map"
Scott Baker63d1a552014-08-21 15:19:07 -0700122 list_display = ("backend_status_icon", "name", "contentProvider", "serviceProvider")
123 list_display_links = ('backend_status_icon', 'name', )
Scott Baker7e3b78c2015-03-13 09:24:25 -0700124 fields = ['backend_status_text', 'name', 'hpcService', 'cdnPrefix', 'contentProvider', 'serviceProvider', 'map', 'map_id']
125 user_readonly_fields = ('backend_status_text', "name", "hpcService", "cdnPrefix", "contentProvider", "serviceProvider", "description", "map")
Scott Baker40c00762014-08-21 16:55:59 -0700126 readonly_fields = ('backend_status_text', )
Scott Baker53491082014-03-13 23:15:19 -0700127
Scott Bakerc481b322015-02-27 12:12:14 -0800128class AccessMapAdmin(HPCAdmin):
Scott Baker53491082014-03-13 23:15:19 -0700129 model = AccessMap
130 verbose_name = "Access Map"
131 verbose_name_plural = "Access Map"
Scott Baker63d1a552014-08-21 15:19:07 -0700132 list_display = ("backend_status_icon", "name", "contentProvider")
133 list_display_links = ('backend_status_icon', 'name', )
Scott Baker40c00762014-08-21 16:55:59 -0700134 user_readonly_fields = ('backend_status_text', "name", "contentProvider", "description", "map")
135 readonly_fields = ('backend_status_text', )
Scott Baker53491082014-03-13 23:15:19 -0700136
Siobhan Tullybfd11dc2013-09-03 12:59:24 -0400137admin.site.register(ServiceProvider, ServiceProviderAdmin)
138admin.site.register(ContentProvider, ContentProviderAdmin)
139admin.site.register(CDNPrefix, CDNPrefixAdmin)
140admin.site.register(OriginServer,OriginServerAdmin)
Scott Baker446eaca2014-05-23 13:16:57 -0700141admin.site.register(HpcService, HpcServiceAdmin)
Scott Baker53491082014-03-13 23:15:19 -0700142admin.site.register(SiteMap, SiteMapAdmin)
143admin.site.register(AccessMap, AccessMapAdmin)
Siobhan Tullybfd11dc2013-09-03 12:59:24 -0400144