blob: caf5d084da3d61bd054ceb9fb04ff8b4c6717e42 [file] [log] [blame]
Scott Bakerbb2a2a22015-04-21 16:59:04 -07001from django.contrib import admin
2
3from cord.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
13from core.admin import ServiceAppAdmin,SliceInline,ServiceAttrAsTabInline, ReadOnlyAwareAdmin, XOSTabularInline
14
15from functools import update_wrapper
16from django.contrib.admin.views.main import ChangeList
17from django.core.urlresolvers import reverse
18from django.contrib.admin.utils import quote
19
Scott Baker27b768d2015-04-21 17:15:18 -070020#-----------------------------------------------------------------------------
21# vOLT
22#-----------------------------------------------------------------------------
Scott Bakerbb2a2a22015-04-21 16:59:04 -070023
24class VOLTServiceAdmin(ReadOnlyAwareAdmin):
25 model = VOLTService
26 verbose_name = "vOLT Service"
27 verbose_name_plural = "vOLT Service"
28 list_display = ("backend_status_icon", "name", "enabled")
29 list_display_links = ('backend_status_icon', 'name', )
Scott Baker27b768d2015-04-21 17:15:18 -070030 fieldsets = [(None, {'fields': ['backend_status_text', 'name','enabled','versionNumber', 'description',"view_url","icon_url" ], 'classes':['suit-tab suit-tab-general']})]
Scott Bakerbb2a2a22015-04-21 16:59:04 -070031 readonly_fields = ('backend_status_text', )
32 inlines = [SliceInline,ServiceAttrAsTabInline]
33
34 extracontext_registered_admins = True
35
36 user_readonly_fields = ["name", "enabled", "versionNumber", "description"]
37
38 suit_form_tabs =(('general', 'vOLT Service Details'),
39 ('administration', 'Administration'),
40 #('tools', 'Tools'),
41 ('slices','Slices'),
42 ('serviceattrs','Additional Attributes'),
43 )
44
45 suit_form_includes = (('voltadmin.html', 'top', 'administration'),
46 ) #('hpctools.html', 'top', 'tools') )
47
48 def queryset(self, request):
49 return VOLTService.get_service_objects()
50
51class VOLTTenantForm(forms.ModelForm):
52 def __init__(self,*args,**kwargs):
53 super (VOLTTenantForm,self ).__init__(*args,**kwargs)
54 self.fields['kind'].default = "vOLT"
55 self.fields['kind'].widget.attrs['readonly'] = True
56 self.fields['provider_service'].queryset = VOLTService.get_service_objects().all()
57
58 class Meta:
59 model = VOLTTenant
60
61class VOLTTenantAdmin(ReadOnlyAwareAdmin):
Scott Baker27b768d2015-04-21 17:15:18 -070062 list_display = ('backend_status_icon', 'id', 'service_specific_id', 'vlan_id' )
63 list_display_links = ('backend_status_icon', 'id')
Scott Bakerbb2a2a22015-04-21 16:59:04 -070064 fieldsets = [ (None, {'fields': ['backend_status_text', 'kind', 'provider_service', 'service_specific_id', 'service_specific_attribute',], 'classes':['suit-tab suit-tab-general']})]
65 readonly_fields = ('backend_status_text', )
66 form = VOLTTenantForm
67
68 suit_form_tabs = (('general','Details'),)
69
70 def queryset(self, request):
71 return VOLTTenant.get_tenant_objects()
72
Scott Baker27b768d2015-04-21 17:15:18 -070073#-----------------------------------------------------------------------------
74# vCPE
75#-----------------------------------------------------------------------------
76
77class VCPEServiceAdmin(ReadOnlyAwareAdmin):
78 model = VCPEService
79 verbose_name = "vCPE Service"
80 verbose_name_plural = "vCPE Service"
81 list_display = ("backend_status_icon", "name", "enabled")
82 list_display_links = ('backend_status_icon', 'name', )
83 fieldsets = [(None, {'fields': ['backend_status_text', 'name','enabled','versionNumber', 'description', "view_url","icon_url" ], 'classes':['suit-tab suit-tab-general']})]
84 readonly_fields = ('backend_status_text', )
85 inlines = [SliceInline,ServiceAttrAsTabInline]
86
87 extracontext_registered_admins = True
88
89 user_readonly_fields = ["name", "enabled", "versionNumber", "description"]
90
91 suit_form_tabs =(('general', 'vCPE Service Details'),
92 ('administration', 'Administration'),
93 #('tools', 'Tools'),
94 ('slices','Slices'),
95 ('serviceattrs','Additional Attributes'),
96 )
97
98 suit_form_includes = (('vcpeadmin.html', 'top', 'administration'),
99 ) #('hpctools.html', 'top', 'tools') )
100
101 def queryset(self, request):
102 return VCPEService.get_service_objects()
103
104class VCPETenantForm(forms.ModelForm):
105 def __init__(self,*args,**kwargs):
106 super (VCPETenantForm,self ).__init__(*args,**kwargs)
107 self.fields['kind'].default = "vCPE"
108 self.fields['kind'].widget.attrs['readonly'] = True
109 self.fields['provider_service'].queryset = VCPEService.get_service_objects().all()
110
111 class Meta:
112 model = VCPETenant
113
114class VCPETenantAdmin(ReadOnlyAwareAdmin):
115 list_display = ('backend_status_icon', 'id' )
116 list_display_links = ('backend_status_icon', 'id')
117 fieldsets = [ (None, {'fields': ['backend_status_text', 'kind', 'provider_service', 'service_specific_id', 'service_specific_attribute',], 'classes':['suit-tab suit-tab-general']})]
118 readonly_fields = ('backend_status_text', )
119 form = VCPETenantForm
120
121 suit_form_tabs = (('general','Details'),)
122
123 def queryset(self, request):
124 return VCPETenant.get_tenant_objects()
125
126#-----------------------------------------------------------------------------
127# vBNG
128#-----------------------------------------------------------------------------
129
130class VBNGServiceAdmin(ReadOnlyAwareAdmin):
131 model = VBNGService
132 verbose_name = "vBNG Service"
133 verbose_name_plural = "vBNG Service"
134 list_display = ("backend_status_icon", "name", "enabled")
135 list_display_links = ('backend_status_icon', 'name', )
136 fieldsets = [(None, {'fields': ['backend_status_text', 'name','enabled','versionNumber', 'description', "view_url","icon_url" ], 'classes':['suit-tab suit-tab-general']})]
137 readonly_fields = ('backend_status_text', )
138 inlines = [SliceInline,ServiceAttrAsTabInline]
139
140 extracontext_registered_admins = True
141
142 user_readonly_fields = ["name", "enabled", "versionNumber", "description"]
143
144 suit_form_tabs =(('general', 'vBNG Service Details'),
145 ('administration', 'Administration'),
146 #('tools', 'Tools'),
147 ('slices','Slices'),
148 ('serviceattrs','Additional Attributes'),
149 )
150
151 suit_form_includes = (('vbngadmin.html', 'top', 'administration'),
152 ) #('hpctools.html', 'top', 'tools') )
153
154 def queryset(self, request):
155 return VBNGService.get_service_objects()
156
157class VBNGTenantForm(forms.ModelForm):
158 def __init__(self,*args,**kwargs):
159 super (VBNGTenantForm,self ).__init__(*args,**kwargs)
160 self.fields['kind'].default = "vBNG"
161 self.fields['kind'].widget.attrs['readonly'] = True
162 self.fields['provider_service'].queryset = VBNGService.get_service_objects().all()
163
164 class Meta:
165 model = VBNGTenant
166
167class VBNGTenantAdmin(ReadOnlyAwareAdmin):
168 list_display = ('backend_status_icon', 'id' )
169 list_display_links = ('backend_status_icon', 'id')
170 fieldsets = [ (None, {'fields': ['backend_status_text', 'kind', 'provider_service', 'service_specific_id', 'service_specific_attribute',], 'classes':['suit-tab suit-tab-general']})]
171 readonly_fields = ('backend_status_text', )
172 form = VBNGTenantForm
173
174 suit_form_tabs = (('general','Details'),)
175
176 def queryset(self, request):
177 return VBNGTenant.get_tenant_objects()
178
Scott Bakerbb2a2a22015-04-21 16:59:04 -0700179admin.site.register(VOLTService, VOLTServiceAdmin)
180admin.site.register(VOLTTenant, VOLTTenantAdmin)
Scott Baker27b768d2015-04-21 17:15:18 -0700181admin.site.register(VCPEService, VCPEServiceAdmin)
182admin.site.register(VCPETenant, VCPETenantAdmin)
183admin.site.register(VBNGService, VBNGServiceAdmin)
184admin.site.register(VBNGTenant, VBNGTenantAdmin)
Scott Bakerbb2a2a22015-04-21 16:59:04 -0700185