mirror of
https://github.com/ZwareBear/awx.git
synced 2026-05-14 05:58:37 -05:00
Fix migration issues, tests, and templates
This commit is contained in:
+5
-4
@@ -22,6 +22,7 @@ from rest_framework.filters import BaseFilterBackend
|
||||
|
||||
# AWX
|
||||
from awx.main.utils import get_type_for_model, to_python_boolean
|
||||
from awx.main.utils.db import get_all_field_names
|
||||
from awx.main.models.credential import CredentialType
|
||||
from awx.main.models.rbac import RoleAncestorEntry
|
||||
|
||||
@@ -70,7 +71,7 @@ class TypeFilterBackend(BaseFilterBackend):
|
||||
types_map[ct_type] = ct.pk
|
||||
model = queryset.model
|
||||
model_type = get_type_for_model(model)
|
||||
if 'polymorphic_ctype' in model._meta.get_all_field_names():
|
||||
if 'polymorphic_ctype' in get_all_field_names(model):
|
||||
types_pks = set([v for k,v in types_map.items() if k in types])
|
||||
queryset = queryset.filter(polymorphic_ctype_id__in=types_pks)
|
||||
elif model_type in types:
|
||||
@@ -119,7 +120,7 @@ class FieldLookupBackend(BaseFilterBackend):
|
||||
'last_updated': 'last_job_run',
|
||||
}.get(name, name)
|
||||
|
||||
if name == 'type' and 'polymorphic_ctype' in model._meta.get_all_field_names():
|
||||
if name == 'type' and 'polymorphic_ctype' in get_all_field_names(model):
|
||||
name = 'polymorphic_ctype'
|
||||
new_parts.append('polymorphic_ctype__model')
|
||||
else:
|
||||
@@ -136,7 +137,7 @@ class FieldLookupBackend(BaseFilterBackend):
|
||||
new_parts.pop()
|
||||
new_parts.append(name_alt)
|
||||
else:
|
||||
field = model._meta.get_field_by_name(name)[0]
|
||||
field = model._meta.get_field(name)
|
||||
if isinstance(field, ForeignObjectRel) and getattr(field.field, '__prevent_search__', False):
|
||||
raise PermissionDenied(_('Filtering on %s is not allowed.' % name))
|
||||
elif getattr(field, '__prevent_search__', False):
|
||||
@@ -375,7 +376,7 @@ class OrderByBackend(BaseFilterBackend):
|
||||
# given the limited number of views with multiple types,
|
||||
# sorting on polymorphic_ctype.model is effectively the same.
|
||||
new_order_by = []
|
||||
if 'polymorphic_ctype' in queryset.model._meta.get_all_field_names():
|
||||
if 'polymorphic_ctype' in get_all_field_names(queryset.model):
|
||||
for field in order_by:
|
||||
if field == 'type':
|
||||
new_order_by.append('polymorphic_ctype__model')
|
||||
|
||||
+2
-2
@@ -31,6 +31,7 @@ from rest_framework import views
|
||||
from awx.api.filters import FieldLookupBackend
|
||||
from awx.main.models import * # noqa
|
||||
from awx.main.utils import * # noqa
|
||||
from awx.main.utils.db import get_all_field_names
|
||||
from awx.api.serializers import ResourceAccessListElementSerializer
|
||||
from awx.api.versioning import URLPathVersioning, get_request_version
|
||||
from awx.api.metadata import SublistAttachDetatchMetadata
|
||||
@@ -321,8 +322,7 @@ class ListAPIView(generics.ListAPIView, GenericAPIView):
|
||||
return page
|
||||
|
||||
def get_description_context(self):
|
||||
opts = self.model._meta
|
||||
if 'username' in opts.get_all_field_names():
|
||||
if 'username' in get_all_field_names(self.model):
|
||||
order_field = 'username'
|
||||
else:
|
||||
order_field = 'name'
|
||||
|
||||
@@ -477,7 +477,7 @@ class BaseSerializer(serializers.ModelSerializer):
|
||||
return super(BaseSerializer, self).run_validation(data)
|
||||
except ValidationError as exc:
|
||||
# Avoid bug? in DRF if exc.detail happens to be a list instead of a dict.
|
||||
raise ValidationError(detail=serializers.get_validation_error_detail(exc))
|
||||
raise ValidationError(detail=serializers.as_serializer_error(exc))
|
||||
|
||||
def get_validation_exclusions(self, obj=None):
|
||||
# Borrowed from DRF 2.x - return model fields that should be excluded
|
||||
|
||||
+3
-2
@@ -27,7 +27,6 @@ from django.utils.timezone import now
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
from django.views.decorators.cache import never_cache
|
||||
from django.template.loader import render_to_string
|
||||
from django.core.servers.basehttp import FileWrapper
|
||||
from django.http import HttpResponse
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
@@ -53,7 +52,9 @@ import qsstats
|
||||
import ansiconv
|
||||
|
||||
# Python Social Auth
|
||||
from social.backends.utils import load_backends
|
||||
from social_core.backends.utils import load_backends
|
||||
|
||||
from wsgiref.util import FileWrapper
|
||||
|
||||
# AWX
|
||||
from awx.main.tasks import send_notifications
|
||||
|
||||
Reference in New Issue
Block a user