| #sites.py |
| |
| from django.contrib.admin.sites import AdminSite |
| |
| |
| class AdminMixin(object): |
| """Mixin for AdminSite to allow custom dashboard views.""" |
| |
| def __init__(self, *args, **kwargs): |
| return super(AdminMixin, self).__init__(*args, **kwargs) |
| |
| def get_urls(self): |
| """Add our dashboard view to the admin urlconf. Deleted the default index.""" |
| from django.conf.urls import patterns, url |
| from views import DashboardCustomize, DashboardDynamicView, SimulatorView, LoggedInView, \ |
| DashboardUserSiteView, \ |
| TenantViewData, TenantCreateSlice, TenantAddUser,TenantAddOrRemoveInstanceView, TenantPickSitesView, TenantDeleteSliceView, \ |
| TenantUpdateSlice, DashboardSliceInteractions, RequestAccessView |
| |
| from views import view_urls |
| |
| urls = super(AdminMixin, self).get_urls() |
| del urls[0] |
| |
| # these ones are for the views that were written before we implemented |
| # the ability to get the url from the View class. |
| dashboard_urls = [ |
| url(r'^$', self.admin_view(DashboardDynamicView.as_view()), |
| name="index"), |
| url(r'^loggedin/$', self.admin_view(LoggedInView.as_view()), |
| name="loggedin"), |
| url(r'^test/', self.admin_view(DashboardUserSiteView.as_view()), |
| name="test"), |
| url(r'^sliceinteractions/(?P<name>\w+)/$', self.admin_view(DashboardSliceInteractions.as_view()), |
| name="interactions"), |
| url(r'^dashboard/(?P<name>\w+)/$', self.admin_view(DashboardDynamicView.as_view()), |
| name="dashboard"), |
| url(r'^dashboardWholePage/(?P<name>\w+)/$', self.admin_view(DashboardDynamicView.as_view()), |
| {"wholePage": True}, |
| name="dashboardWholePage"), |
| url(r'^customize/$', self.admin_view(DashboardCustomize.as_view()), |
| name="customize"), |
| url(r'^hpcdashuserslices/', self.admin_view(DashboardUserSiteView.as_view()), |
| name="hpcdashuserslices"), |
| url(r'^welcome/$', self.admin_view(DashboardDynamicView.as_view()), |
| name="welcome"), |
| url(r'^simulator/', self.admin_view(SimulatorView.as_view()), |
| name="simulator"), |
| url(r'^tenantaddorreminstance/$', self.admin_view(TenantAddOrRemoveInstanceView.as_view()), |
| name="tenantaddorreminstance"), |
| url(r'^tenantview/$', self.admin_view(TenantViewData.as_view()), |
| name="tenantview"), |
| url(r'^createnewslice/$', self.admin_view(TenantCreateSlice.as_view()), |
| name="createnewslice"), |
| url(r'^adduser/$', self.admin_view(TenantAddUser.as_view()), |
| name="adduser"), |
| url(r'^requestaccess/$', RequestAccessView.as_view(), |
| name="requestacces"), |
| url(r'^updateslice/$', self.admin_view(TenantUpdateSlice.as_view()), |
| name="updateslice"), |
| url(r'^picksites/$', self.admin_view(TenantPickSitesView.as_view()), |
| name="picksites"), |
| url(r'^tenantdeleteslice/$', self.admin_view(TenantDeleteSliceView.as_view()), |
| name="tenantdeleteslice") |
| ] |
| |
| # these ones are for the views that have a "url" member in the class |
| for (view_url, view_classname, view_class) in view_urls: |
| dashboard_urls.append( url(view_url, self.admin_view(view_class.as_view()), name=view_classname.lower())) |
| |
| return dashboard_urls + urls |
| |
| |
| class SitePlus(AdminMixin, AdminSite): |
| """ |
| A Django AdminSite with the AdminMixin to allow registering custom |
| dashboard view. |
| """ |