Sfoglia il codice sorgente

Convert installed_plugins_admin_view to a class-based view

Jeremy Stretch 5 anni fa
parent
commit
0d9d0b0446
2 ha cambiato i file con 10 aggiunte e 11 eliminazioni
  1. 2 1
      netbox/extras/plugins/urls.py
  2. 8 10
      netbox/extras/plugins/views.py

+ 2 - 1
netbox/extras/plugins/urls.py

@@ -1,6 +1,7 @@
 from django.apps import apps
 from django.apps import apps
 from django.conf import settings
 from django.conf import settings
 from django.conf.urls import include
 from django.conf.urls import include
+from django.contrib.admin.views.decorators import staff_member_required
 from django.urls import path
 from django.urls import path
 from django.utils.module_loading import import_string
 from django.utils.module_loading import import_string
 
 
@@ -13,7 +14,7 @@ plugin_api_patterns = [
     path('installed-plugins/', views.InstalledPluginsAPIView.as_view(), name='plugins-list')
     path('installed-plugins/', views.InstalledPluginsAPIView.as_view(), name='plugins-list')
 ]
 ]
 plugin_admin_patterns = [
 plugin_admin_patterns = [
-    path('installed-plugins/', views.installed_plugins_admin_view, name='plugins_list')
+    path('installed-plugins/', staff_member_required(views.InstalledPluginsAdminView.as_view()), name='plugins_list')
 ]
 ]
 
 
 # Register base/API URL patterns for each plugin
 # Register base/API URL patterns for each plugin

+ 8 - 10
netbox/extras/plugins/views.py

@@ -2,27 +2,25 @@ from collections import OrderedDict
 
 
 from django.apps import apps
 from django.apps import apps
 from django.conf import settings
 from django.conf import settings
-from django.contrib import admin
-from django.contrib.admin.views.decorators import staff_member_required
+from django.shortcuts import render
 from django.urls.exceptions import NoReverseMatch
 from django.urls.exceptions import NoReverseMatch
 from django.utils.module_loading import import_string
 from django.utils.module_loading import import_string
-from django.shortcuts import render
 from django.views.generic import View
 from django.views.generic import View
-from rest_framework import authentication, permissions, routers
+from rest_framework import permissions
 from rest_framework.response import Response
 from rest_framework.response import Response
 from rest_framework.reverse import reverse
 from rest_framework.reverse import reverse
 from rest_framework.views import APIView
 from rest_framework.views import APIView
 
 
 
 
-@staff_member_required
-def installed_plugins_admin_view(request):
+class InstalledPluginsAdminView(View):
     """
     """
     Admin view for listing all installed plugins
     Admin view for listing all installed plugins
     """
     """
-    context_data = {
-        'plugins': [apps.get_app_config(plugin) for plugin in settings.PLUGINS]
-    }
-    return render(request, 'extras/admin/plugins_list.html', context_data)
+    def get(self, request):
+        plugins = [apps.get_app_config(plugin) for plugin in settings.PLUGINS]
+        return render(request, 'extras/admin/plugins_list.html', {
+            'plugins': plugins,
+        })
 
 
 
 
 class InstalledPluginsAPIView(APIView):
 class InstalledPluginsAPIView(APIView):