blob: 6d9e2fe8ec8fce57a0f9324ac235d8eeb9a4c51a [file] [log] [blame]
Siobhan Tullyce652d02013-10-08 21:52:35 -04001from django.contrib import admin
2
Scott Baker93b6e042015-12-30 09:37:57 -08003from services.requestrouter.models import *
Siobhan Tullyce652d02013-10-08 21:52:35 -04004from 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 Baker9da53042015-05-15 09:08:19 -070013from core.admin import ServiceAppAdmin,SliceInline,ServiceAttrAsTabInline, ReadOnlyAwareAdmin, ServicePrivilegeInline
Siobhan Tullyce652d02013-10-08 21:52:35 -040014
Scott Baker43f2d672015-02-27 12:17:38 -080015class RequestRouterAdmin(ReadOnlyAwareAdmin):
16 # Change the application breadcrumb to point to an RR Service if one is
17 # defined
18
19 change_form_template = "admin/change_form_bc.html"
20 change_list_template = "admin/change_list_bc.html"
21 custom_app_breadcrumb_name = "Request Router"
22 @property
23 def custom_app_breadcrumb_url(self):
24 services = RequestRouterService.objects.all()
25 if len(services)==1:
26 return "/admin/requestrouter/requestrouterservice/%s/" % services[0].id
27 else:
28 return "/admin/requestrouter/requestrouterservice/"
29
Scott Bakera9b8f612015-02-26 20:42:11 -080030class RequestRouterServiceAdmin(ServiceAppAdmin):
Siobhan Tullyce652d02013-10-08 21:52:35 -040031 model = RequestRouterService
32 verbose_name = "Request Router Service"
33 verbose_name_plural = "Request Router Service"
34 list_display = ("name","enabled")
35 fieldsets = [(None, {'fields': ['name','enabled','versionNumber', 'description','behindNat','defaultTTL','defaultAction','lastResortAction','maxAnswers'], 'classes':['suit-tab suit-tab-general']})]
Scott Baker9da53042015-05-15 09:08:19 -070036 inlines = [SliceInline,ServiceAttrAsTabInline,ServicePrivilegeInline]
Siobhan Tullyce652d02013-10-08 21:52:35 -040037
Scott Bakercd202a02014-05-23 12:47:57 -070038 user_readonly_fields = ["name", "enabled", "versionNumber", "description", "behindNat", "defaultTTL", "defaultAction", "lastResortAction", "maxAnswers"]
Scott Bakercd202a02014-05-23 12:47:57 -070039
Siobhan Tullyce652d02013-10-08 21:52:35 -040040 suit_form_tabs =(('general', 'Request Router Service Details'),
Scott Bakerbeb44a92015-02-26 17:10:36 -080041 ('administration', 'Administration'),
Siobhan Tullyce652d02013-10-08 21:52:35 -040042 ('slices','Slices'),
43 ('serviceattrs','Additional Attributes'),
Scott Baker9da53042015-05-15 09:08:19 -070044 ('serviceprivileges','Privileges'),
Siobhan Tullyce652d02013-10-08 21:52:35 -040045 )
46
Scott Bakerbeb44a92015-02-26 17:10:36 -080047 suit_form_includes = (('rradmin.html', 'top', 'administration'),)
48
Scott Baker43f2d672015-02-27 12:17:38 -080049class ServiceMapAdmin(RequestRouterAdmin):
Scott Baker40695e12014-03-13 22:50:45 -070050 model = ServiceMap
51 verbose_name = "Service Map"
52 verbose_name_plural = "Service Map"
53 list_display = ("name", "owner", "slice", "prefix")
Scott Baker2290b052014-05-08 10:28:22 -070054 fieldsets = [(None, {'fields': ['name','owner','slice', 'prefix','siteMap','accessMap'], 'classes':['suit-tab suit-tab-general']})]
Scott Baker40695e12014-03-13 22:50:45 -070055
Scott Bakercd202a02014-05-23 12:47:57 -070056 user_readonly_fields = ["name", "owner", "slice", "prefix", "siteMap", "accessMap"]
57
Scott Baker2290b052014-05-08 10:28:22 -070058 suit_form_tabs =(('general', 'Service Map Details'),
59 )
Siobhan Tullyce652d02013-10-08 21:52:35 -040060
61admin.site.register(RequestRouterService, RequestRouterServiceAdmin)
Scott Baker40695e12014-03-13 22:50:45 -070062admin.site.register(ServiceMap, ServiceMapAdmin)
Siobhan Tullyce652d02013-10-08 21:52:35 -040063