download_ssh_commands view, deprecated
[plstackapi.git] / planetstack / core / dashboard / sites.py
1 #sites.py
2
3 from django.contrib.admin.sites import AdminSite
4
5
6 class AdminMixin(object):
7     """Mixin for AdminSite to allow custom dashboard views."""
8
9     def __init__(self, *args, **kwargs):
10         return super(AdminMixin, self).__init__(*args, **kwargs)
11
12     def get_urls(self):
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
19
20         from views import view_urls
21
22         urls = super(AdminMixin, self).get_urls()
23         del urls[0]
24
25         # these ones are for the views that were written before we implemented
26         # the ability to get the url from the View class.
27         dashboard_urls = [
28                url(r'^$', self.admin_view(DashboardDynamicView.as_view()),
29                     name="index"),
30                url(r'^test/', self.admin_view(DashboardUserSiteView.as_view()),
31                     name="test"),
32                url(r'^sliceinteractions/(?P<name>\w+)/$', self.admin_view(DashboardSliceInteractions.as_view()),
33                     name="interactions"),
34                url(r'^dashboard/(?P<name>\w+)/$', self.admin_view(DashboardDynamicView.as_view()),
35                     name="dashboard"),
36                url(r'^dashboardWholePage/(?P<name>\w+)/$', self.admin_view(DashboardDynamicView.as_view()),
37                     {"wholePage": True},
38                     name="dashboardWholePage"),
39                url(r'^customize/$', self.admin_view(DashboardCustomize.as_view()),
40                     name="customize"),
41                url(r'^hpcdashuserslices/', self.admin_view(DashboardUserSiteView.as_view()),
42                     name="hpcdashuserslices"),
43                url(r'^welcome/$', self.admin_view(DashboardWelcomeView.as_view()),
44                     name="welcome"),
45                url(r'^hpcdashboard/', self.admin_view(DashboardAjaxView.as_view()),        # DEPRECATED
46                     name="hpcdashboard"),
47                url(r'^simulator/', self.admin_view(SimulatorView.as_view()),
48                     name="simulator"),
49                url(r'^hpcsummary/', self.admin_view(DashboardSummaryAjaxView.as_view()),   # DEPRECATED
50                     name="hpcsummary"),
51                url(r'^analytics/(?P<name>\w+)/$', DashboardAnalyticsAjaxView.as_view(),
52                     name="analytics"),
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()),
58                     name="tenantview"),
59                url(r'^createnewslice/$', self.admin_view(TenantCreateSlice.as_view()),
60                     name="createnewslice"),
61                url(r'^adduser/$', self.admin_view(TenantAddUser.as_view()),
62                       name="adduser"),\r
63                url(r'^requestaccess/$', RequestAccessView.as_view(),\r
64                       name="requestacces"),
65                url(r'^updateslice/$', self.admin_view(TenantUpdateSlice.as_view()),
66                     name="updateslice"),
67                url(r'^picksites/$', self.admin_view(TenantPickSitesView.as_view()),
68                     name="picksites"),
69                url(r'^tenantdeleteslice/$', self.admin_view(TenantDeleteSliceView.as_view()),
70                     name="tenantdeleteslice")
71         ]
72
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()))
76
77         return dashboard_urls + urls
78
79
80 class SitePlus(AdminMixin, AdminSite):
81     """
82     A Django AdminSite with the AdminMixin to allow registering custom
83     dashboard view.
84     """