1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Converted circuits object lists to ObjectListView

This commit is contained in:
Jeremy Stretch
2016-03-04 11:05:00 -05:00
parent 30cbbdeac8
commit 5796d1f385
4 changed files with 17 additions and 54 deletions

View File

@ -3,7 +3,7 @@ from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^circuits/$', views.circuit_list, name='circuit_list'),
url(r'^circuits/$', views.CircuitListView.as_view(), name='circuit_list'),
url(r'^circuits/add/$', views.circuit_add, name='circuit_add'),
url(r'^circuits/import/$', views.CircuitBulkImportView.as_view(), name='circuit_import'),
url(r'^circuits/edit/$', views.CircuitBulkEditView.as_view(), name='circuit_bulk_edit'),
@ -12,7 +12,7 @@ urlpatterns = [
url(r'^circuits/(?P<pk>\d+)/edit/$', views.circuit_edit, name='circuit_edit'),
url(r'^circuits/(?P<pk>\d+)/delete/$', views.circuit_delete, name='circuit_delete'),
url(r'^providers/$', views.provider_list, name='provider_list'),
url(r'^providers/$', views.ProviderListView.as_view(), name='provider_list'),
url(r'^providers/add/$', views.provider_add, name='provider_add'),
url(r'^providers/import/$', views.ProviderBulkImportView.as_view(), name='provider_import'),
url(r'^providers/edit/$', views.ProviderBulkEditView.as_view(), name='provider_bulk_edit'),

View File

@ -1,6 +1,3 @@
from django_tables2 import RequestConfig
from django.conf import settings
from django.contrib import messages
from django.contrib.auth.decorators import permission_required
from django.contrib.auth.mixins import PermissionRequiredMixin
@ -8,11 +5,9 @@ from django.core.urlresolvers import reverse
from django.db.models import Count, ProtectedError
from django.shortcuts import get_object_or_404, redirect, render
from extras.models import ExportTemplate
from utilities.error_handlers import handle_protectederror
from utilities.forms import ConfirmationForm
from utilities.paginator import EnhancedPaginator
from utilities.views import BulkImportView, BulkEditView, BulkDeleteView
from utilities.views import BulkImportView, BulkEditView, BulkDeleteView, ObjectListView
from .filters import CircuitFilter
from .forms import CircuitForm, CircuitImportForm, CircuitBulkEditForm, CircuitBulkDeleteForm, CircuitFilterForm, \
@ -25,28 +20,12 @@ from .tables import CircuitTable, CircuitBulkEditTable, ProviderTable, ProviderB
# Providers
#
def provider_list(request):
class ProviderListView(ObjectListView):
queryset = Provider.objects.annotate(count_circuits=Count('circuits'))
# Export
if 'export' in request.GET:
et = get_object_or_404(ExportTemplate, content_type__model='provider', name=request.GET.get('export'))
response = et.to_response(context_dict={'queryset': queryset}, filename='netbox_providers')
return response
if request.user.has_perm('circuits.change_provider') or request.user.has_perm('circuits.delete_provider'):
provider_table = ProviderBulkEditTable(queryset)
else:
provider_table = ProviderTable(queryset)
RequestConfig(request, paginate={'per_page': settings.PAGINATE_COUNT, 'klass': EnhancedPaginator}).configure(provider_table)
export_templates = ExportTemplate.objects.filter(content_type__model='provider')
return render(request, 'circuits/provider_list.html', {
'provider_table': provider_table,
'export_templates': export_templates,
})
table = ProviderTable
edit_table = ProviderBulkEditTable
edit_table_permissions = ['circuits.change_provider', 'circuits.delete_provider']
template_name = 'circuits/provider_list.html'
def provider(request, slug):
@ -168,30 +147,14 @@ class ProviderBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
# Circuits
#
def circuit_list(request):
class CircuitListView(ObjectListView):
queryset = Circuit.objects.select_related('provider', 'type', 'site')
queryset = CircuitFilter(request.GET, queryset).qs
# Export
if 'export' in request.GET:
et = get_object_or_404(ExportTemplate, content_type__model='circuit', name=request.GET.get('export'))
response = et.to_response(context_dict={'queryset': queryset}, filename='netbox_circuits')
return response
if request.user.has_perm('circuits.change_circuit') or request.user.has_perm('circuits.delete_circuit'):
circuit_table = CircuitBulkEditTable(queryset)
else:
circuit_table = CircuitTable(queryset)
RequestConfig(request, paginate={'per_page': settings.PAGINATE_COUNT, 'klass': EnhancedPaginator}).configure(circuit_table)
export_templates = ExportTemplate.objects.filter(content_type__model='circuit')
return render(request, 'circuits/circuit_list.html', {
'circuit_table': circuit_table,
'export_templates': export_templates,
'filter_form': CircuitFilterForm(request.GET, label_suffix=''),
})
filter = CircuitFilter
filter_form = CircuitFilterForm
table = CircuitTable
edit_table = CircuitBulkEditTable
edit_table_permissions = ['circuits.change_circuit', 'circuits.delete_circuit']
template_name = 'circuits/circuit_list.html'
def circuit(request, pk):

View File

@ -28,7 +28,7 @@
<h1>Circuits</h1>
<div class="row">
<div class="col-md-9">
{% include 'circuits/inc/circuit_table.html' with table=circuit_table %}
{% include 'circuits/inc/circuit_table.html' %}
</div>
<div class="col-md-3">
<div class="panel panel-default">

View File

@ -27,7 +27,7 @@
<h1>Providers</h1>
<div class="row">
<div class="col-md-12">
{% include 'circuits/inc/provider_table.html' with table=provider_table %}
{% include 'circuits/inc/provider_table.html' %}
</div>
</div>
{% endblock %}