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