From 0d9d0b04463768ad3ffb714dceffe68fa933b014 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 27 Mar 2020 13:35:25 -0400 Subject: [PATCH] Convert installed_plugins_admin_view to a class-based view --- netbox/extras/plugins/urls.py | 3 ++- netbox/extras/plugins/views.py | 18 ++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/netbox/extras/plugins/urls.py b/netbox/extras/plugins/urls.py index 0e4147ad4..f3f591cb0 100644 --- a/netbox/extras/plugins/urls.py +++ b/netbox/extras/plugins/urls.py @@ -1,6 +1,7 @@ from django.apps import apps from django.conf import settings from django.conf.urls import include +from django.contrib.admin.views.decorators import staff_member_required from django.urls import path 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') ] 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 diff --git a/netbox/extras/plugins/views.py b/netbox/extras/plugins/views.py index 67bc72101..39aa692d7 100644 --- a/netbox/extras/plugins/views.py +++ b/netbox/extras/plugins/views.py @@ -2,27 +2,25 @@ from collections import OrderedDict from django.apps import apps 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.utils.module_loading import import_string -from django.shortcuts import render 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.reverse import reverse 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 """ - 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):