ensure suffixes are appended in breadcrumb util

This commit is contained in:
Matthew Medal 2016-12-19 16:38:06 -08:00
parent 9aa5d24f62
commit c06513d1a2

View File

@ -9,12 +9,8 @@ def get_breadcrumbs(url, request=None):
tuple of (name, url).
"""
from rest_framework.reverse import preserve_builtin_query_params
from rest_framework.settings import api_settings
from rest_framework.views import APIView
apiview_default_get_view_name = APIView.get_view_name
get_view_name = api_settings.VIEW_NAME_FUNCTION
def breadcrumbs_recursive(url, breadcrumbs_list, prefix, seen):
"""
Add tuples of (name, url) to the breadcrumbs list,
@ -32,13 +28,9 @@ def get_breadcrumbs(url, request=None):
# Don't list the same view twice in a row.
# Probably an optional trailing slash.
if not seen or seen[-1] != view:
# Check if get_view_name has been overridden
# else ensure that view_name suffixes are caught
if cls.get_view_name is not apiview_default_get_view_name:
name = cls().get_view_name()
else:
suffix = getattr(view, 'suffix', None)
name = get_view_name(cls, suffix)
c = cls()
c.suffix = getattr(view, 'suffix', None)
name = c.get_view_name()
insert_url = preserve_builtin_query_params(prefix + url, request)
breadcrumbs_list.insert(0, (name, insert_url))
seen.append(view)