Convert installed_plugins_admin_view to a class-based view

This commit is contained in:
Jeremy Stretch 2020-03-27 13:35:25 -04:00
parent cb344a3792
commit 0d9d0b0446
2 changed files with 10 additions and 11 deletions

View File

@ -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

View File

@ -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):