Commit a95984e4 by Christopher Paolini

Settings now have default functions

Updated the setting to have a default function.
parent d07dae6e
...@@ -70,8 +70,8 @@ DEFAULTS = { ...@@ -70,8 +70,8 @@ DEFAULTS = {
'PAGINATE_BY_PARAM': None, 'PAGINATE_BY_PARAM': None,
# View configuration # View configuration
'VIEW_NAME_FUNCTION': None, 'VIEW_NAME_FUNCTION': 'rest_framework.utils.formatting.view_name',
'VIEW_DESCRIPTION_FUNCTION': None, 'VIEW_DESCRIPTION_FUNCTION': 'rest_framework.utils.formatting.view_description',
# Authentication # Authentication
'UNAUTHENTICATED_USER': 'django.contrib.auth.models.AnonymousUser', 'UNAUTHENTICATED_USER': 'django.contrib.auth.models.AnonymousUser',
...@@ -129,6 +129,8 @@ IMPORT_STRINGS = ( ...@@ -129,6 +129,8 @@ IMPORT_STRINGS = (
'TEST_REQUEST_RENDERER_CLASSES', 'TEST_REQUEST_RENDERER_CLASSES',
'UNAUTHENTICATED_USER', 'UNAUTHENTICATED_USER',
'UNAUTHENTICATED_TOKEN', 'UNAUTHENTICATED_TOKEN',
'VIEW_NAME_FUNCTION',
'VIEW_DESCRIPTION_FUNCTION'
) )
......
...@@ -49,39 +49,15 @@ def _camelcase_to_spaces(content): ...@@ -49,39 +49,15 @@ def _camelcase_to_spaces(content):
def get_view_name(cls, suffix=None): def get_view_name(cls, suffix=None):
""" """
Return a formatted name for an `APIView` class or `@api_view` function. Return a formatted name for an `APIView` class or `@api_view` function.
If a VIEW_NAME_FUNCTION is set in settings the value of that will be used
if that value is "falsy" then the normal formatting will be used.
""" """
if api_settings.VIEW_NAME_FUNCTION: return api_settings.VIEW_NAME_FUNCTION(cls, suffix)
name = api_settings.VIEW_NAME_FUNCTION(cls, suffix)
if name:
return name
name = cls.__name__
name = _remove_trailing_string(name, 'View')
name = _remove_trailing_string(name, 'ViewSet')
name = _camelcase_to_spaces(name)
if suffix:
name += ' ' + suffix
return name
def get_view_description(cls, html=False): def get_view_description(cls, html=False):
""" """
Return a description for an `APIView` class or `@api_view` function. Return a description for an `APIView` class or `@api_view` function.
If a VIEW_DESCRIPTION_FUNCTION is set in settings the value of that will be used
if that value is "falsy" then the normal formatting will be used.
""" """
if api_settings.VIEW_DESCRIPTION_FUNCTION: return api_settings.VIEW_DESCRIPTION_FUNCTION(cls)
description = api_settings.VIEW_DESCRIPTION_FUNCTION(cls)
if description:
return markup_description(description)
description = cls.__doc__ or ''
description = _remove_leading_indent(smart_text(description))
if html:
return markup_description(description)
return description
def markup_description(description): def markup_description(description):
...@@ -93,3 +69,21 @@ def markup_description(description): ...@@ -93,3 +69,21 @@ def markup_description(description):
else: else:
description = escape(description).replace('\n', '<br />') description = escape(description).replace('\n', '<br />')
return mark_safe(description) return mark_safe(description)
def view_name(cls, suffix=None):
name = cls.__name__
name = _remove_trailing_string(name, 'View')
name = _remove_trailing_string(name, 'ViewSet')
name = _camelcase_to_spaces(name)
if suffix:
name += ' ' + suffix
return name
def view_description(cls, html=False):
description = cls.__doc__ or ''
description = _remove_leading_indent(smart_text(description))
if html:
return markup_description(description)
return description
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment