Remove the custom get_view_name function

It appeared to not be doing anything that we were making use of that
couldn't already be done, slightly differently, using DRF's built-in
one.
This commit is contained in:
Jeff Bradberry
2019-05-28 14:34:01 -04:00
parent b5728fc548
commit f94959d120
8 changed files with 59 additions and 80 deletions

View File

@@ -119,24 +119,6 @@ class LoggedLogoutView(auth_views.LogoutView):
return ret
def get_view_name(cls, suffix=None):
'''
Wrapper around REST framework get_view_name() to support get_name() method
and view_name property on a view class.
'''
name = ''
if hasattr(cls, 'get_name') and callable(cls.get_name):
name = cls().get_name()
elif hasattr(cls, 'view_name'):
if callable(cls.view_name):
name = cls.view_name()
else:
name = cls.view_name
if name:
return ('%s %s' % (name, suffix)) if suffix else name
return views.get_view_name(cls, suffix=None)
def get_view_description(cls, request, html=False):
'''
Wrapper around REST framework get_view_description() to support

View File

@@ -37,7 +37,7 @@ from rest_framework.permissions import AllowAny, IsAuthenticated
from rest_framework.renderers import JSONRenderer, StaticHTMLRenderer
from rest_framework.response import Response
from rest_framework.settings import api_settings
from rest_framework.views import exception_handler
from rest_framework.views import exception_handler, get_view_name
from rest_framework import status
# Django REST Framework YAML
@@ -69,7 +69,7 @@ from awx.api.generics import (
RetrieveUpdateAPIView, RetrieveUpdateDestroyAPIView, SimpleListAPIView,
SubDetailAPIView, SubListAPIView, SubListAttachDetachAPIView,
SubListCreateAPIView, SubListCreateAttachDetachAPIView,
SubListDestroyAPIView, get_view_name
SubListDestroyAPIView
)
from awx.api.versioning import reverse
from awx.conf.license import get_license
@@ -168,7 +168,7 @@ class DashboardView(APIView):
deprecated = True
view_name = _("Dashboard")
name = _("Dashboard")
swagger_topic = 'Dashboard'
def get(self, request, format=None):
@@ -270,7 +270,7 @@ class DashboardView(APIView):
class DashboardJobsGraphView(APIView):
view_name = _("Dashboard Jobs Graphs")
name = _("Dashboard Jobs Graphs")
swagger_topic = 'Jobs'
def get(self, request, format=None):
@@ -320,7 +320,7 @@ class DashboardJobsGraphView(APIView):
class InstanceList(ListAPIView):
view_name = _("Instances")
name = _("Instances")
model = models.Instance
serializer_class = serializers.InstanceSerializer
search_fields = ('hostname',)
@@ -328,7 +328,7 @@ class InstanceList(ListAPIView):
class InstanceDetail(RetrieveUpdateAPIView):
view_name = _("Instance Detail")
name = _("Instance Detail")
model = models.Instance
serializer_class = serializers.InstanceSerializer
@@ -345,7 +345,7 @@ class InstanceDetail(RetrieveUpdateAPIView):
class InstanceUnifiedJobsList(SubListAPIView):
view_name = _("Instance Jobs")
name = _("Instance Jobs")
model = models.UnifiedJob
serializer_class = serializers.UnifiedJobListSerializer
parent_model = models.Instance
@@ -359,7 +359,7 @@ class InstanceUnifiedJobsList(SubListAPIView):
class InstanceInstanceGroupsList(InstanceGroupMembershipMixin, SubListCreateAttachDetachAPIView):
view_name = _("Instance's Instance Groups")
name = _("Instance's Instance Groups")
model = models.InstanceGroup
serializer_class = serializers.InstanceGroupSerializer
parent_model = models.Instance
@@ -368,7 +368,7 @@ class InstanceInstanceGroupsList(InstanceGroupMembershipMixin, SubListCreateAtta
class InstanceGroupList(ListCreateAPIView):
view_name = _("Instance Groups")
name = _("Instance Groups")
model = models.InstanceGroup
serializer_class = serializers.InstanceGroupSerializer
@@ -376,7 +376,7 @@ class InstanceGroupList(ListCreateAPIView):
class InstanceGroupDetail(RelatedJobsPreventDeleteMixin, RetrieveUpdateDestroyAPIView):
always_allow_superuser = False
view_name = _("Instance Group Detail")
name = _("Instance Group Detail")
model = models.InstanceGroup
serializer_class = serializers.InstanceGroupSerializer
permission_classes = (InstanceGroupTowerPermission,)
@@ -392,7 +392,7 @@ class InstanceGroupDetail(RelatedJobsPreventDeleteMixin, RetrieveUpdateDestroyAP
class InstanceGroupUnifiedJobsList(SubListAPIView):
view_name = _("Instance Group Running Jobs")
name = _("Instance Group Running Jobs")
model = models.UnifiedJob
serializer_class = serializers.UnifiedJobListSerializer
parent_model = models.InstanceGroup
@@ -401,7 +401,7 @@ class InstanceGroupUnifiedJobsList(SubListAPIView):
class InstanceGroupInstanceList(InstanceGroupMembershipMixin, SubListAttachDetachAPIView):
view_name = _("Instance Group's Instances")
name = _("Instance Group's Instances")
model = models.Instance
serializer_class = serializers.InstanceSerializer
parent_model = models.InstanceGroup
@@ -411,7 +411,7 @@ class InstanceGroupInstanceList(InstanceGroupMembershipMixin, SubListAttachDetac
class ScheduleList(ListCreateAPIView):
view_name = _("Schedules")
name = _("Schedules")
model = models.Schedule
serializer_class = serializers.ScheduleSerializer
@@ -425,7 +425,7 @@ class ScheduleDetail(RetrieveUpdateDestroyAPIView):
class SchedulePreview(GenericAPIView):
model = models.Schedule
view_name = _('Schedule Recurrence Rule Preview')
name = _('Schedule Recurrence Rule Preview')
serializer_class = serializers.SchedulePreviewSerializer
permission_classes = (IsAuthenticated,)
@@ -508,7 +508,7 @@ class ScheduleUnifiedJobsList(SubListAPIView):
serializer_class = serializers.UnifiedJobListSerializer
parent_model = models.Schedule
relationship = 'unifiedjob_set'
view_name = _('Schedule Jobs List')
name = _('Schedule Jobs List')
class AuthView(APIView):
@@ -704,7 +704,7 @@ class ProjectTeamsList(ListAPIView):
class ProjectSchedulesList(SubListCreateAPIView):
view_name = _("Project Schedules")
name = _("Project Schedules")
model = models.Schedule
serializer_class = serializers.ScheduleSerializer
@@ -715,7 +715,7 @@ class ProjectSchedulesList(SubListCreateAPIView):
class ProjectScmInventorySources(SubListAPIView):
view_name = _("Project SCM Inventory Sources")
name = _("Project SCM Inventory Sources")
model = models.InventorySource
serializer_class = serializers.InventorySourceSerializer
parent_model = models.Project
@@ -818,7 +818,7 @@ class ProjectUpdateEventsList(SubListAPIView):
serializer_class = serializers.ProjectUpdateEventSerializer
parent_model = models.ProjectUpdate
relationship = 'project_update_events'
view_name = _('Project Update Events List')
name = _('Project Update Events List')
search_fields = ('stdout',)
def finalize_response(self, request, response, *args, **kwargs):
@@ -832,7 +832,7 @@ class SystemJobEventsList(SubListAPIView):
serializer_class = serializers.SystemJobEventSerializer
parent_model = models.SystemJob
relationship = 'system_job_events'
view_name = _('System Job Events List')
name = _('System Job Events List')
search_fields = ('stdout',)
def finalize_response(self, request, response, *args, **kwargs):
@@ -868,7 +868,7 @@ class ProjectUpdateNotificationsList(SubListAPIView):
class ProjectUpdateScmInventoryUpdates(SubListAPIView):
view_name = _("Project Update SCM Inventory Updates")
name = _("Project Update SCM Inventory Updates")
model = models.InventoryUpdate
serializer_class = serializers.InventoryUpdateListSerializer
parent_model = models.ProjectUpdate
@@ -912,7 +912,7 @@ class UserMeList(ListAPIView):
model = models.User
serializer_class = serializers.UserSerializer
view_name = _('Me')
name = _('Me')
def get_queryset(self):
return self.model.objects.filter(pk=self.request.user.pk)
@@ -920,7 +920,7 @@ class UserMeList(ListAPIView):
class OAuth2ApplicationList(ListCreateAPIView):
view_name = _("OAuth 2 Applications")
name = _("OAuth 2 Applications")
model = models.OAuth2Application
serializer_class = serializers.OAuth2ApplicationSerializer
@@ -929,7 +929,7 @@ class OAuth2ApplicationList(ListCreateAPIView):
class OAuth2ApplicationDetail(RetrieveUpdateDestroyAPIView):
view_name = _("OAuth 2 Application Detail")
name = _("OAuth 2 Application Detail")
model = models.OAuth2Application
serializer_class = serializers.OAuth2ApplicationSerializer
@@ -942,7 +942,7 @@ class OAuth2ApplicationDetail(RetrieveUpdateDestroyAPIView):
class ApplicationOAuth2TokenList(SubListCreateAPIView):
view_name = _("OAuth 2 Application Tokens")
name = _("OAuth 2 Application Tokens")
model = models.OAuth2AccessToken
serializer_class = serializers.OAuth2TokenSerializer
@@ -964,7 +964,7 @@ class OAuth2ApplicationActivityStreamList(SubListAPIView):
class OAuth2TokenList(ListCreateAPIView):
view_name = _("OAuth2 Tokens")
name = _("OAuth2 Tokens")
model = models.OAuth2AccessToken
serializer_class = serializers.OAuth2TokenSerializer
@@ -973,7 +973,7 @@ class OAuth2TokenList(ListCreateAPIView):
class OAuth2UserTokenList(SubListCreateAPIView):
view_name = _("OAuth2 User Tokens")
name = _("OAuth2 User Tokens")
model = models.OAuth2AccessToken
serializer_class = serializers.OAuth2TokenSerializer
@@ -985,7 +985,7 @@ class OAuth2UserTokenList(SubListCreateAPIView):
class UserAuthorizedTokenList(SubListCreateAPIView):
view_name = _("OAuth2 User Authorized Access Tokens")
name = _("OAuth2 User Authorized Access Tokens")
model = models.OAuth2AccessToken
serializer_class = serializers.UserAuthorizedTokenSerializer
@@ -1000,7 +1000,7 @@ class UserAuthorizedTokenList(SubListCreateAPIView):
class OrganizationApplicationList(SubListCreateAPIView):
view_name = _("Organization OAuth2 Applications")
name = _("Organization OAuth2 Applications")
model = models.OAuth2Application
serializer_class = serializers.OAuth2ApplicationSerializer
@@ -1012,7 +1012,7 @@ class OrganizationApplicationList(SubListCreateAPIView):
class UserPersonalTokenList(SubListCreateAPIView):
view_name = _("OAuth2 Personal Access Tokens")
name = _("OAuth2 Personal Access Tokens")
model = models.OAuth2AccessToken
serializer_class = serializers.UserPersonalTokenSerializer
@@ -1027,7 +1027,7 @@ class UserPersonalTokenList(SubListCreateAPIView):
class OAuth2TokenDetail(RetrieveUpdateDestroyAPIView):
view_name = _("OAuth Token Detail")
name = _("OAuth Token Detail")
model = models.OAuth2AccessToken
serializer_class = serializers.OAuth2TokenDetailSerializer
@@ -1373,7 +1373,7 @@ class CredentialExternalTest(SubDetailAPIView):
before saving them.
"""
view_name = _('External Credential Test')
name = _('External Credential Test')
model = models.Credential
serializer_class = serializers.EmptySerializer
@@ -1399,7 +1399,7 @@ class CredentialExternalTest(SubDetailAPIView):
class CredentialInputSourceDetail(RetrieveUpdateDestroyAPIView):
view_name = _("Credential Input Source Detail")
name = _("Credential Input Source Detail")
model = models.CredentialInputSource
serializer_class = serializers.CredentialInputSourceSerializer
@@ -1407,7 +1407,7 @@ class CredentialInputSourceDetail(RetrieveUpdateDestroyAPIView):
class CredentialInputSourceList(ListCreateAPIView):
view_name = _("Credential Input Sources")
name = _("Credential Input Sources")
model = models.CredentialInputSource
serializer_class = serializers.CredentialInputSourceSerializer
@@ -1415,7 +1415,7 @@ class CredentialInputSourceList(ListCreateAPIView):
class CredentialInputSourceSubList(SubListCreateAPIView):
view_name = _("Credential Input Sources")
name = _("Credential Input Sources")
model = models.CredentialInputSource
serializer_class = serializers.CredentialInputSourceSerializer
@@ -1430,7 +1430,7 @@ class CredentialTypeExternalTest(SubDetailAPIView):
saving it.
"""
view_name = _('External Credential Type Test')
name = _('External Credential Type Test')
model = models.CredentialType
serializer_class = serializers.EmptySerializer
@@ -2004,7 +2004,7 @@ class InventoryTreeView(RetrieveAPIView):
class InventoryInventorySourcesList(SubListCreateAPIView):
view_name = _('Inventory Source List')
name = _('Inventory Source List')
model = models.InventorySource
serializer_class = serializers.InventorySourceSerializer
@@ -2016,7 +2016,7 @@ class InventoryInventorySourcesList(SubListCreateAPIView):
class InventoryInventorySourcesUpdate(RetrieveAPIView):
view_name = _('Inventory Sources Update')
name = _('Inventory Sources Update')
model = models.Inventory
obj_permission_type = 'start'
@@ -2079,7 +2079,7 @@ class InventorySourceDetail(RelatedJobsPreventDeleteMixin, RetrieveUpdateDestroy
class InventorySourceSchedulesList(SubListCreateAPIView):
view_name = _("Inventory Source Schedules")
name = _("Inventory Source Schedules")
model = models.Schedule
serializer_class = serializers.ScheduleSerializer
@@ -2448,7 +2448,7 @@ class JobTemplateLaunch(RetrieveAPIView):
class JobTemplateSchedulesList(SubListCreateAPIView):
view_name = _("Job Template Schedules")
name = _("Job Template Schedules")
model = models.Schedule
serializer_class = serializers.ScheduleSerializer
@@ -3220,7 +3220,7 @@ class WorkflowJobTemplateJobsList(SubListAPIView):
class WorkflowJobTemplateSchedulesList(SubListCreateAPIView):
view_name = _("Workflow Job Template Schedules")
name = _("Workflow Job Template Schedules")
model = models.Schedule
serializer_class = serializers.ScheduleSerializer
@@ -3388,7 +3388,7 @@ class SystemJobTemplateLaunch(GenericAPIView):
class SystemJobTemplateSchedulesList(SubListCreateAPIView):
view_name = _("System Job Template Schedules")
name = _("System Job Template Schedules")
model = models.Schedule
serializer_class = serializers.ScheduleSerializer
@@ -3659,7 +3659,7 @@ class BaseJobHostSummariesList(SubListAPIView):
serializer_class = serializers.JobHostSummarySerializer
parent_model = None # Subclasses must define this attribute.
relationship = 'job_host_summaries'
view_name = _('Job Host Summaries List')
name = _('Job Host Summaries List')
search_fields = ('host_name',)
def get_queryset(self):
@@ -3708,7 +3708,7 @@ class JobEventChildrenList(SubListAPIView):
serializer_class = serializers.JobEventSerializer
parent_model = models.JobEvent
relationship = 'children'
view_name = _('Job Event Children List')
name = _('Job Event Children List')
search_fields = ('stdout',)
def get_queryset(self):
@@ -3724,7 +3724,7 @@ class JobEventHostsList(HostRelatedSearchMixin, SubListAPIView):
serializer_class = serializers.HostSerializer
parent_model = models.JobEvent
relationship = 'hosts'
view_name = _('Job Event Hosts List')
name = _('Job Event Hosts List')
class BaseJobEventsList(SubListAPIView):
@@ -3733,7 +3733,7 @@ class BaseJobEventsList(SubListAPIView):
serializer_class = serializers.JobEventSerializer
parent_model = None # Subclasses must define this attribute.
relationship = 'job_events'
view_name = _('Job Events List')
name = _('Job Events List')
search_fields = ('stdout',)
def finalize_response(self, request, response, *args, **kwargs):
@@ -3942,7 +3942,7 @@ class BaseAdHocCommandEventsList(SubListAPIView):
serializer_class = serializers.AdHocCommandEventSerializer
parent_model = None # Subclasses must define this attribute.
relationship = 'ad_hoc_command_events'
view_name = _('Ad Hoc Command Events List')
name = _('Ad Hoc Command Events List')
search_fields = ('stdout',)
@@ -4195,7 +4195,7 @@ class NotificationTemplateDetail(RetrieveUpdateDestroyAPIView):
class NotificationTemplateTest(GenericAPIView):
'''Test a Notification Template'''
view_name = _('Notification Template Test')
name = _('Notification Template Test')
model = models.NotificationTemplate
obj_permission_type = 'start'
serializer_class = serializers.EmptySerializer

View File

@@ -60,7 +60,7 @@ class InventoryUpdateEventsList(SubListAPIView):
serializer_class = InventoryUpdateEventSerializer
parent_model = InventoryUpdate
relationship = 'inventory_update_events'
view_name = _('Inventory Update Events List')
name = _('Inventory Update Events List')
search_fields = ('stdout',)
def finalize_response(self, request, response, *args, **kwargs):

View File

@@ -27,7 +27,7 @@ logger = logging.getLogger('awx.main.analytics')
class MetricsView(APIView):
view_name = _('Metrics')
name = _('Metrics')
swagger_topic = 'Metrics'
renderer_classes = [renderers.PlainTextRenderer,

View File

@@ -42,7 +42,7 @@ logger = logging.getLogger('awx.api.views.root')
class ApiRootView(APIView):
permission_classes = (AllowAny,)
view_name = _('REST API')
name = _('REST API')
versioning_class = None
swagger_topic = 'Versioning'
@@ -64,7 +64,7 @@ class ApiRootView(APIView):
class ApiOAuthAuthorizationRootView(APIView):
permission_classes = (AllowAny,)
view_name = _("API OAuth 2 Authorization Root")
name = _("API OAuth 2 Authorization Root")
versioning_class = None
swagger_topic = 'Authentication'
@@ -130,7 +130,7 @@ class ApiVersionRootView(APIView):
class ApiV2RootView(ApiVersionRootView):
view_name = _('Version 2')
name = _('Version 2')
class ApiV2PingView(APIView):
@@ -139,7 +139,7 @@ class ApiV2PingView(APIView):
"""
permission_classes = (AllowAny,)
authentication_classes = ()
view_name = _('Ping')
name = _('Ping')
swagger_topic = 'System Configuration'
def get(self, request, format=None):
@@ -171,7 +171,7 @@ class ApiV2PingView(APIView):
class ApiV2ConfigView(APIView):
permission_classes = (IsAuthenticated,)
view_name = _('Configuration')
name = _('Configuration')
swagger_topic = 'System Configuration'
def check_permissions(self, request):

View File

@@ -41,7 +41,7 @@ class SettingCategoryList(ListAPIView):
model = Setting # Not exactly, but needed for the view.
serializer_class = SettingCategorySerializer
filter_backends = []
view_name = _('Setting Categories')
name = _('Setting Categories')
def get_queryset(self):
setting_categories = []
@@ -63,7 +63,7 @@ class SettingSingletonDetail(RetrieveUpdateDestroyAPIView):
model = Setting # Not exactly, but needed for the view.
serializer_class = SettingSingletonSerializer
filter_backends = []
view_name = _('Setting Detail')
name = _('Setting Detail')
def get_queryset(self):
self.category_slug = self.kwargs.get('category_slug', 'all')
@@ -154,7 +154,7 @@ class SettingSingletonDetail(RetrieveUpdateDestroyAPIView):
class SettingLoggingTest(GenericAPIView):
view_name = _('Logging Connectivity Test')
name = _('Logging Connectivity Test')
model = Setting
serializer_class = SettingSingletonSerializer
permission_classes = (IsSuperUser,)

View File

@@ -20,10 +20,8 @@ class ApiErrorView(views.APIView):
permission_classes = (permissions.AllowAny,)
metadata_class = None
exception_class = exceptions.APIException
view_name = _('API Error')
def get_view_name(self):
return self.view_name
name = _('API Error')
def finalize_response(self, request, response, *args, **kwargs):
response = super(ApiErrorView, self).finalize_response(request, response, *args, **kwargs)
@@ -46,7 +44,7 @@ def handle_error(request, status=404, **kwargs):
class APIException(exceptions.APIException):
status_code = status
default_detail = kwargs['content']
api_error_view = ApiErrorView.as_view(view_name=kwargs['name'], exception_class=APIException)
api_error_view = ApiErrorView.as_view(exception_class=APIException)
response = api_error_view(request)
if hasattr(response, 'render'):
response.render()

View File

@@ -307,7 +307,6 @@ REST_FRAMEWORK = {
),
'DEFAULT_METADATA_CLASS': 'awx.api.metadata.Metadata',
'EXCEPTION_HANDLER': 'awx.api.views.api_exception_handler',
'VIEW_NAME_FUNCTION': 'awx.api.generics.get_view_name',
'VIEW_DESCRIPTION_FUNCTION': 'awx.api.generics.get_view_description',
'NON_FIELD_ERRORS_KEY': '__all__',
'DEFAULT_VERSION': 'v2',