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