blob: 25910645bef8a6173a6478f5476d0b2aacae10b8 [file] [log] [blame]
Matteo Scandolo79fe3e12017-08-08 13:05:25 -07001
2# Copyright 2017-present Open Networking Foundation
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
16
Scott Baker46831592016-06-20 17:32:04 -070017from django.contrib import admin
18
19from services.fabric.models import *
20from django import forms
21from django.utils.safestring import mark_safe
22from django.contrib.auth.admin import UserAdmin
23from django.contrib.admin.widgets import FilteredSelectMultiple
24from django.contrib.auth.forms import ReadOnlyPasswordHashField
25from django.contrib.auth.signals import user_logged_in
26from django.utils import timezone
27from django.contrib.contenttypes import generic
28from suit.widgets import LinkedSelect
29from core.models import AddressPool
Scott Baker7462a142017-07-19 16:34:29 -070030from core.admin import ServiceAppAdmin,SliceInline,ServiceAttrAsTabInline, ReadOnlyAwareAdmin, XOSTabularInline, ServicePrivilegeInline
Scott Baker46831592016-06-20 17:32:04 -070031from core.middleware import get_request
32
33from functools import update_wrapper
34from django.contrib.admin.views.main import ChangeList
35from django.core.urlresolvers import reverse
36from django.contrib.admin.utils import quote
37
38class FabricServiceForm(forms.ModelForm):
39 def __init__(self,*args,**kwargs):
40 super (FabricServiceForm,self ).__init__(*args,**kwargs)
41
42 def save(self, commit=True):
43 return super(FabricServiceForm, self).save(commit=commit)
44
45 class Meta:
46 model = FabricService
Zack Williams6e786a32016-06-27 08:24:06 -070047 fields = '__all__'
Scott Baker46831592016-06-20 17:32:04 -070048
49class FabricServiceAdmin(ReadOnlyAwareAdmin):
50 model = FabricService
51 verbose_name = "Fabric Service"
52 verbose_name_plural = "Fabric Services"
53 list_display = ("backend_status_icon", "name", "enabled")
54 list_display_links = ('backend_status_icon', 'name', )
55 fieldsets = [(None, {'fields': ['backend_status_text', 'name','enabled','versionNumber', 'description', "view_url", "icon_url", "autoconfig", ],
56 'classes':['suit-tab suit-tab-general']})]
57 readonly_fields = ('backend_status_text', )
58 inlines = [SliceInline,ServiceAttrAsTabInline,ServicePrivilegeInline]
59 form = FabricServiceForm
60
61 extracontext_registered_admins = True
62
63 user_readonly_fields = ["name", "enabled", "versionNumber", "description"]
64
65 suit_form_tabs =(('general', 'Fabric Service Details'),
66 ('administration', 'Administration'),
67 #('tools', 'Tools'),
68 ('slices','Slices'),
69 ('serviceattrs','Additional Attributes'),
70 ('serviceprivileges','Privileges'),
71 )
72
73 suit_form_includes = (('fabricadmin.html', 'top', 'administration'),
74 )
75
Zack Williamscf62a8d2016-06-27 13:20:38 -070076 def get_queryset(self, request):
Scott Baker46831592016-06-20 17:32:04 -070077 return FabricService.get_service_objects_by_user(request.user)
78
79admin.site.register(FabricService, FabricServiceAdmin)