Converted home view to a CBV

This commit is contained in:
Jeremy Stretch 2017-05-19 16:03:51 -04:00
parent 713c7cd8e3
commit 3fa63b774e
2 changed files with 37 additions and 33 deletions

View File

@ -5,7 +5,7 @@ from django.conf.urls import include, url
from django.contrib import admin from django.contrib import admin
from django.views.static import serve from django.views.static import serve
from netbox.views import APIRootView, home, handle_500, SearchView, trigger_500 from netbox.views import APIRootView, handle_500, HomeView, SearchView, trigger_500
from users.views import LoginView, LogoutView from users.views import LoginView, LogoutView
@ -15,7 +15,7 @@ swagger_view = get_swagger_view(title='NetBox API')
_patterns = [ _patterns = [
# Base views # Base views
url(r'^$', home, name='home'), url(r'^$', HomeView.as_view(), name='home'),
url(r'^search/$', SearchView.as_view(), name='search'), url(r'^search/$', SearchView.as_view(), name='search'),
# Login/logout # Login/logout

View File

@ -115,43 +115,46 @@ SEARCH_TYPES = OrderedDict((
)) ))
def home(request): class HomeView(View):
template_name = 'home.html'
stats = { def get(self, request):
# Organization stats = {
'site_count': Site.objects.count(),
'tenant_count': Tenant.objects.count(),
# DCIM # Organization
'rack_count': Rack.objects.count(), 'site_count': Site.objects.count(),
'device_count': Device.objects.count(), 'tenant_count': Tenant.objects.count(),
'interface_connections_count': InterfaceConnection.objects.count(),
'console_connections_count': ConsolePort.objects.filter(cs_port__isnull=False).count(),
'power_connections_count': PowerPort.objects.filter(power_outlet__isnull=False).count(),
# IPAM # DCIM
'vrf_count': VRF.objects.count(), 'rack_count': Rack.objects.count(),
'aggregate_count': Aggregate.objects.count(), 'device_count': Device.objects.count(),
'prefix_count': Prefix.objects.count(), 'interface_connections_count': InterfaceConnection.objects.count(),
'ipaddress_count': IPAddress.objects.count(), 'console_connections_count': ConsolePort.objects.filter(cs_port__isnull=False).count(),
'vlan_count': VLAN.objects.count(), 'power_connections_count': PowerPort.objects.filter(power_outlet__isnull=False).count(),
# Circuits # IPAM
'provider_count': Provider.objects.count(), 'vrf_count': VRF.objects.count(),
'circuit_count': Circuit.objects.count(), 'aggregate_count': Aggregate.objects.count(),
'prefix_count': Prefix.objects.count(),
'ipaddress_count': IPAddress.objects.count(),
'vlan_count': VLAN.objects.count(),
# Secrets # Circuits
'secret_count': Secret.objects.count(), 'provider_count': Provider.objects.count(),
'circuit_count': Circuit.objects.count(),
} # Secrets
'secret_count': Secret.objects.count(),
return render(request, 'home.html', { }
'search_form': SearchForm(),
'stats': stats, return render(request, self.template_name, {
'topology_maps': TopologyMap.objects.filter(site__isnull=True), 'search_form': SearchForm(),
'recent_activity': UserAction.objects.select_related('user')[:50] 'stats': stats,
}) 'topology_maps': TopologyMap.objects.filter(site__isnull=True),
'recent_activity': UserAction.objects.select_related('user')[:50]
})
class SearchView(View): class SearchView(View):
@ -235,5 +238,6 @@ def trigger_500(request):
""" """
Hot-wired method of triggering a server error to test reporting Hot-wired method of triggering a server error to test reporting
""" """
raise Exception("Congratulations, you've triggered an exception! Go tell all your friends what an exceptional " raise Exception(
"person you are.") "Congratulations, you've triggered an exception! Go tell all your friends what an exceptional person you are."
)