blob: a17bc44ba1464dd961569e947cd82354e20a9508 [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
Siobhan Tullyce652d02013-10-08 21:52:35 -040011from suit.widgets import LinkedSelect
Scott Baker9da53042015-05-15 09:08:19 -070012from core.admin import ServiceAppAdmin,SliceInline,ServiceAttrAsTabInline, ReadOnlyAwareAdmin, ServicePrivilegeInline
Siobhan Tullyce652d02013-10-08 21:52:35 -040013
Scott Baker43f2d672015-02-27 12:17:38 -080014class RequestRouterAdmin(ReadOnlyAwareAdmin):
15 # Change the application breadcrumb to point to an RR Service if one is
16 # defined
17
18 change_form_template = "admin/change_form_bc.html"
19 change_list_template = "admin/change_list_bc.html"
20 custom_app_breadcrumb_name = "Request Router"
21 @property
22 def custom_app_breadcrumb_url(self):
23 services = RequestRouterService.objects.all()
24 if len(services)==1:
25 return "/admin/requestrouter/requestrouterservice/%s/" % services[0].id
26 else:
27 return "/admin/requestrouter/requestrouterservice/"
28
Scott Bakera9b8f612015-02-26 20:42:11 -080029class RequestRouterServiceAdmin(ServiceAppAdmin):
Siobhan Tullyce652d02013-10-08 21:52:35 -040030 model = RequestRouterService
31 verbose_name = "Request Router Service"
32 verbose_name_plural = "Request Router Service"
33 list_display = ("name","enabled")
34 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 -070035 inlines = [SliceInline,ServiceAttrAsTabInline,ServicePrivilegeInline]
Siobhan Tullyce652d02013-10-08 21:52:35 -040036
Scott Bakercd202a02014-05-23 12:47:57 -070037 user_readonly_fields = ["name", "enabled", "versionNumber", "description", "behindNat", "defaultTTL", "defaultAction", "lastResortAction", "maxAnswers"]
Scott Bakercd202a02014-05-23 12:47:57 -070038
Siobhan Tullyce652d02013-10-08 21:52:35 -040039 suit_form_tabs =(('general', 'Request Router Service Details'),
Scott Bakerbeb44a92015-02-26 17:10:36 -080040 ('administration', 'Administration'),
Siobhan Tullyce652d02013-10-08 21:52:35 -040041 ('slices','Slices'),
42 ('serviceattrs','Additional Attributes'),
Scott Baker9da53042015-05-15 09:08:19 -070043 ('serviceprivileges','Privileges'),
Siobhan Tullyce652d02013-10-08 21:52:35 -040044 )
45
Scott Bakerbeb44a92015-02-26 17:10:36 -080046 suit_form_includes = (('rradmin.html', 'top', 'administration'),)
47
Scott Baker43f2d672015-02-27 12:17:38 -080048class ServiceMapAdmin(RequestRouterAdmin):
Scott Baker40695e12014-03-13 22:50:45 -070049 model = ServiceMap
50 verbose_name = "Service Map"
51 verbose_name_plural = "Service Map"
52 list_display = ("name", "owner", "slice", "prefix")
Scott Baker2290b052014-05-08 10:28:22 -070053 fieldsets = [(None, {'fields': ['name','owner','slice', 'prefix','siteMap','accessMap'], 'classes':['suit-tab suit-tab-general']})]
Scott Baker40695e12014-03-13 22:50:45 -070054
Scott Bakercd202a02014-05-23 12:47:57 -070055 user_readonly_fields = ["name", "owner", "slice", "prefix", "siteMap", "accessMap"]
56
Scott Baker2290b052014-05-08 10:28:22 -070057 suit_form_tabs =(('general', 'Service Map Details'),
58 )
Siobhan Tullyce652d02013-10-08 21:52:35 -040059
60admin.site.register(RequestRouterService, RequestRouterServiceAdmin)
Scott Baker40695e12014-03-13 22:50:45 -070061admin.site.register(ServiceMap, ServiceMapAdmin)
Siobhan Tullyce652d02013-10-08 21:52:35 -040062