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:
@ -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'),
|
||||
|
@ -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):
|
||||
|
@ -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">
|
||||
|
@ -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 %}
|
||||
|
Reference in New Issue
Block a user