From d2cd337c1ff48eb0025722f4e4d0aff37bdc2b35 Mon Sep 17 00:00:00 2001 From: AlanCoding Date: Thu, 6 Dec 2018 08:29:23 -0500 Subject: [PATCH] fix links to some resources that lack v1 pages --- awx/api/serializers.py | 11 ++++------- awx/main/models/__init__.py | 6 ++++++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 7bd09f56af..9ef1bf7879 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -4934,10 +4934,6 @@ class ActivityStreamSerializer(BaseSerializer): def get_related(self, obj): rel = {} - VIEW_NAME_EXCEPTIONS = { - 'custom_inventory_script': 'inventory_script_detail', - 'o_auth2_access_token': 'o_auth2_token_detail' - } if obj.actor is not None: rel['actor'] = self.reverse('api:user_detail', kwargs={'pk': obj.actor.pk}) for fk, __ in self._local_summarizable_fk_fields: @@ -4951,11 +4947,12 @@ class ActivityStreamSerializer(BaseSerializer): if getattr(thisItem, 'id', None) in id_list: continue id_list.append(getattr(thisItem, 'id', None)) - if fk in VIEW_NAME_EXCEPTIONS: - view_name = VIEW_NAME_EXCEPTIONS[fk] + if hasattr(thisItem, 'get_absolute_url'): + rel_url = thisItem.get_absolute_url(self.context.get('request')) else: view_name = fk + '_detail' - rel[fk].append(self.reverse('api:' + view_name, kwargs={'pk': thisItem.id})) + rel_url = self.reverse('api:' + view_name, kwargs={'pk': thisItem.id}) + rel[fk].append(rel_url) if fk == 'schedule': rel['unified_job_template'] = thisItem.unified_job_template.get_absolute_url(self.context.get('request')) diff --git a/awx/main/models/__init__.py b/awx/main/models/__init__.py index 6541a8f9ed..135cb9d899 100644 --- a/awx/main/models/__init__.py +++ b/awx/main/models/__init__.py @@ -134,6 +134,9 @@ User.add_to_class('is_in_enterprise_category', user_is_in_enterprise_category) def o_auth2_application_get_absolute_url(self, request=None): + # this page does not exist in v1 + if request.version == 'v1': + return reverse('api:o_auth2_application_detail', kwargs={'pk': self.pk}) # use default version return reverse('api:o_auth2_application_detail', kwargs={'pk': self.pk}, request=request) @@ -141,6 +144,9 @@ OAuth2Application.add_to_class('get_absolute_url', o_auth2_application_get_absol def o_auth2_token_get_absolute_url(self, request=None): + # this page does not exist in v1 + if request.version == 'v1': + return reverse('api:o_auth2_token_detail', kwargs={'pk': self.pk}) # use default version return reverse('api:o_auth2_token_detail', kwargs={'pk': self.pk}, request=request)