3 from django.contrib.admin.sites import AdminSite
6 class AdminMixin(object):
7 """Mixin for AdminSite to allow custom dashboard views."""
9 def __init__(self, *args, **kwargs):
10 return super(AdminMixin, self).__init__(*args, **kwargs)
13 """Add our dashboard view to the admin urlconf. Deleted the default index."""
14 from django.conf.urls import patterns, url
15 from views import DashboardCustomize, DashboardDynamicView, DashboardWelcomeView, DashboardAjaxView, SimulatorView, \
16 DashboardSummaryAjaxView, DashboardAddOrRemoveSliverView, DashboardUserSiteView, DashboardAnalyticsAjaxView, \
17 TenantViewData,TenantCreateSlice, TenantAddUser,TenantAddOrRemoveSliverView, TenantPickSitesView, TenantDeleteSliceView, \
18 TenantUpdateSlice, DashboardSliceInteractions, RequestAccessView
20 from views import view_urls
22 urls = super(AdminMixin, self).get_urls()
25 # these ones are for the views that were written before we implemented
26 # the ability to get the url from the View class.
28 url(r'^$', self.admin_view(DashboardDynamicView.as_view()),
30 url(r'^test/', self.admin_view(DashboardUserSiteView.as_view()),
32 url(r'^sliceinteractions/(?P<name>\w+)/$', self.admin_view(DashboardSliceInteractions.as_view()),
34 url(r'^dashboard/(?P<name>\w+)/$', self.admin_view(DashboardDynamicView.as_view()),
36 url(r'^dashboardWholePage/(?P<name>\w+)/$', self.admin_view(DashboardDynamicView.as_view()),
38 name="dashboardWholePage"),
39 url(r'^customize/$', self.admin_view(DashboardCustomize.as_view()),
41 url(r'^hpcdashuserslices/', self.admin_view(DashboardUserSiteView.as_view()),
42 name="hpcdashuserslices"),
43 url(r'^welcome/$', self.admin_view(DashboardWelcomeView.as_view()),
45 url(r'^hpcdashboard/', self.admin_view(DashboardAjaxView.as_view()), # DEPRECATED
47 url(r'^simulator/', self.admin_view(SimulatorView.as_view()),
49 url(r'^hpcsummary/', self.admin_view(DashboardSummaryAjaxView.as_view()), # DEPRECATED
51 url(r'^analytics/(?P<name>\w+)/$', DashboardAnalyticsAjaxView.as_view(),
53 url(r'^dashboardaddorremsliver/$', self.admin_view(DashboardAddOrRemoveSliverView.as_view()),
54 name="addorremsliver"),
55 url(r'^tenantaddorremsliver/$', self.admin_view(TenantAddOrRemoveSliverView.as_view()),
56 name="tenantaddorremsliver"),
57 url(r'^tenantview/$', self.admin_view(TenantViewData.as_view()),
59 url(r'^createnewslice/$', self.admin_view(TenantCreateSlice.as_view()),
60 name="createnewslice"),
61 url(r'^adduser/$', self.admin_view(TenantAddUser.as_view()),
63 url(r'^requestaccess/$', RequestAccessView.as_view(),
\r
65 url(r'^updateslice/$', self.admin_view(TenantUpdateSlice.as_view()),
67 url(r'^picksites/$', self.admin_view(TenantPickSitesView.as_view()),
69 url(r'^tenantdeleteslice/$', self.admin_view(TenantDeleteSliceView.as_view()),
70 name="tenantdeleteslice")
73 # these ones are for the views that have a "url" member in the class
74 for (view_url, view_classname, view_class) in view_urls:
75 dashboard_urls.append( url(view_url, self.admin_view(view_class.as_view()), name=view_classname.lower()))
77 return dashboard_urls + urls
80 class SitePlus(AdminMixin, AdminSite):
82 A Django AdminSite with the AdminMixin to allow registering custom