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 from . import views
urlpatterns = [ 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/add/$', views.circuit_add, name='circuit_add'),
url(r'^circuits/import/$', views.CircuitBulkImportView.as_view(), name='circuit_import'), url(r'^circuits/import/$', views.CircuitBulkImportView.as_view(), name='circuit_import'),
url(r'^circuits/edit/$', views.CircuitBulkEditView.as_view(), name='circuit_bulk_edit'), 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+)/edit/$', views.circuit_edit, name='circuit_edit'),
url(r'^circuits/(?P<pk>\d+)/delete/$', views.circuit_delete, name='circuit_delete'), 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/add/$', views.provider_add, name='provider_add'),
url(r'^providers/import/$', views.ProviderBulkImportView.as_view(), name='provider_import'), url(r'^providers/import/$', views.ProviderBulkImportView.as_view(), name='provider_import'),
url(r'^providers/edit/$', views.ProviderBulkEditView.as_view(), name='provider_bulk_edit'), 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 import messages
from django.contrib.auth.decorators import permission_required from django.contrib.auth.decorators import permission_required
from django.contrib.auth.mixins import PermissionRequiredMixin 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.db.models import Count, ProtectedError
from django.shortcuts import get_object_or_404, redirect, render from django.shortcuts import get_object_or_404, redirect, render
from extras.models import ExportTemplate
from utilities.error_handlers import handle_protectederror from utilities.error_handlers import handle_protectederror
from utilities.forms import ConfirmationForm from utilities.forms import ConfirmationForm
from utilities.paginator import EnhancedPaginator from utilities.views import BulkImportView, BulkEditView, BulkDeleteView, ObjectListView
from utilities.views import BulkImportView, BulkEditView, BulkDeleteView
from .filters import CircuitFilter from .filters import CircuitFilter
from .forms import CircuitForm, CircuitImportForm, CircuitBulkEditForm, CircuitBulkDeleteForm, CircuitFilterForm, \ from .forms import CircuitForm, CircuitImportForm, CircuitBulkEditForm, CircuitBulkDeleteForm, CircuitFilterForm, \
@ -25,28 +20,12 @@ from .tables import CircuitTable, CircuitBulkEditTable, ProviderTable, ProviderB
# Providers # Providers
# #
def provider_list(request): class ProviderListView(ObjectListView):
queryset = Provider.objects.annotate(count_circuits=Count('circuits')) queryset = Provider.objects.annotate(count_circuits=Count('circuits'))
table = ProviderTable
# Export edit_table = ProviderBulkEditTable
if 'export' in request.GET: edit_table_permissions = ['circuits.change_provider', 'circuits.delete_provider']
et = get_object_or_404(ExportTemplate, content_type__model='provider', name=request.GET.get('export')) template_name = 'circuits/provider_list.html'
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,
})
def provider(request, slug): def provider(request, slug):
@ -168,30 +147,14 @@ class ProviderBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
# Circuits # Circuits
# #
def circuit_list(request): class CircuitListView(ObjectListView):
queryset = Circuit.objects.select_related('provider', 'type', 'site') queryset = Circuit.objects.select_related('provider', 'type', 'site')
queryset = CircuitFilter(request.GET, queryset).qs filter = CircuitFilter
filter_form = CircuitFilterForm
# Export table = CircuitTable
if 'export' in request.GET: edit_table = CircuitBulkEditTable
et = get_object_or_404(ExportTemplate, content_type__model='circuit', name=request.GET.get('export')) edit_table_permissions = ['circuits.change_circuit', 'circuits.delete_circuit']
response = et.to_response(context_dict={'queryset': queryset}, filename='netbox_circuits') template_name = 'circuits/circuit_list.html'
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=''),
})
def circuit(request, pk): def circuit(request, pk):

View File

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

View File

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