Browse Source

Converted secrets object lists to ObjectListView

Jeremy Stretch 9 years ago
parent
commit
c036db2677
3 changed files with 12 additions and 22 deletions
  1. 1 1
      netbox/secrets/urls.py
  2. 10 20
      netbox/secrets/views.py
  3. 1 1
      netbox/templates/secrets/secret_list.html

+ 1 - 1
netbox/secrets/urls.py

@@ -3,7 +3,7 @@ from django.conf.urls import url
 from . import views
 from . import views
 
 
 urlpatterns = [
 urlpatterns = [
-    url(r'^secrets/$', views.secret_list, name='secret_list'),
+    url(r'^secrets/$', views.SecretListView.as_view(), name='secret_list'),
     url(r'^secrets/import/$', views.secret_import, name='secret_import'),
     url(r'^secrets/import/$', views.secret_import, name='secret_import'),
     url(r'^secrets/edit/$', views.SecretBulkEditView.as_view(), name='secret_bulk_edit'),
     url(r'^secrets/edit/$', views.SecretBulkEditView.as_view(), name='secret_bulk_edit'),
     url(r'^secrets/delete/$', views.SecretBulkDeleteView.as_view(), name='secret_bulk_delete'),
     url(r'^secrets/delete/$', views.SecretBulkDeleteView.as_view(), name='secret_bulk_delete'),

+ 10 - 20
netbox/secrets/views.py

@@ -1,5 +1,4 @@
 from django.apps import apps
 from django.apps import apps
-from django.conf import settings
 from django.contrib import messages
 from django.contrib import messages
 from django.contrib.auth.decorators import permission_required, login_required
 from django.contrib.auth.decorators import permission_required, login_required
 from django.contrib.auth.mixins import PermissionRequiredMixin
 from django.contrib.auth.mixins import PermissionRequiredMixin
@@ -7,12 +6,11 @@ from django.core.urlresolvers import reverse
 from django.db import transaction, IntegrityError
 from django.db import transaction, IntegrityError
 from django.db.models import ProtectedError
 from django.db.models import ProtectedError
 from django.shortcuts import get_object_or_404, redirect, render
 from django.shortcuts import get_object_or_404, redirect, render
+from django.utils.decorators import method_decorator
 
 
-from django_tables2 import RequestConfig
 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 BulkEditView, BulkDeleteView
+from utilities.views import BulkEditView, BulkDeleteView, ObjectListView
 
 
 from .decorators import userkey_required
 from .decorators import userkey_required
 from .filters import SecretFilter
 from .filters import SecretFilter
@@ -25,23 +23,15 @@ from .tables import SecretTable, SecretBulkEditTable
 # Secrets
 # Secrets
 #
 #
 
 
-@login_required
-def secret_list(request):
-
+@method_decorator(login_required, name='dispatch')
+class SecretListView(ObjectListView):
     queryset = Secret.objects.select_related('role').prefetch_related('parent')
     queryset = Secret.objects.select_related('role').prefetch_related('parent')
-    queryset = SecretFilter(request.GET, queryset).qs
-
-    if request.user.has_perm('secrets.change_secret') or request.user.has_perm('secrets.delete_secret'):
-        secret_table = SecretBulkEditTable(queryset)
-    else:
-        secret_table = SecretTable(queryset)
-    RequestConfig(request, paginate={'per_page': settings.PAGINATE_COUNT, 'klass': EnhancedPaginator})\
-        .configure(secret_table)
-
-    return render(request, 'secrets/secret_list.html', {
-        'secret_table': secret_table,
-        'filter_form': SecretFilterForm(request.GET, label_suffix=''),
-    })
+    filter = SecretFilter
+    filter_form = SecretFilterForm
+    table = SecretTable
+    edit_table = SecretBulkEditTable
+    edit_table_permissions = ['secrets.change_secret', 'secrets.delete_secret']
+    template_name = 'secrets/secret_list.html'
 
 
 
 
 @login_required
 @login_required

+ 1 - 1
netbox/templates/secrets/secret_list.html

@@ -15,7 +15,7 @@
 <h1>Secrets</h1>
 <h1>Secrets</h1>
 <div class="row">
 <div class="row">
     <div class="col-md-9">
     <div class="col-md-9">
-        {% include 'secrets/inc/secret_table.html' with table=secret_table %}
+        {% include 'secrets/inc/secret_table.html' %}
     </div>
     </div>
     <div class="col-md-3">
     <div class="col-md-3">
 		{% include 'inc/filter_panel.html' %}
 		{% include 'inc/filter_panel.html' %}