diff --git a/openedx/core/djangoapps/waffle_utils/urls.py b/openedx/core/djangoapps/waffle_utils/urls.py index 8d7e65cd397028e1ad78557a249547d903284100..0d1d69af982d09c2ba3e556e820c0a73a80b47c5 100644 --- a/openedx/core/djangoapps/waffle_utils/urls.py +++ b/openedx/core/djangoapps/waffle_utils/urls.py @@ -4,5 +4,5 @@ from django.conf.urls import url from openedx.core.djangoapps.waffle_utils.views import ToggleStateView urlpatterns = [ - url(r'^state/', ToggleStateView.as_view(), name="toggle_state"), + url(r'^v0/state/', ToggleStateView.as_view(), name="toggle_state"), ] diff --git a/openedx/core/djangoapps/waffle_utils/views.py b/openedx/core/djangoapps/waffle_utils/views.py index edc67ec3d180848f764ddb69133d7ce3fbdb0c86..31454a397776ba9fb21218cc48af429909f402a0 100644 --- a/openedx/core/djangoapps/waffle_utils/views.py +++ b/openedx/core/djangoapps/waffle_utils/views.py @@ -2,6 +2,7 @@ Views that we will use to view toggle state in edx-platform. """ from collections import OrderedDict +from django.conf import settings from edx_rest_framework_extensions.auth.jwt.authentication import JwtAuthentication from edx_rest_framework_extensions.permissions import IsStaff @@ -24,6 +25,7 @@ class ToggleStateView(views.APIView): response = OrderedDict() response['waffle_flags'] = self._get_all_waffle_flags() response['waffle_switches'] = self._get_all_waffle_switches() + response['django_settings'] = self._get_settings_state() return Response(response) def _get_all_waffle_switches(self): @@ -174,3 +176,23 @@ class ToggleStateView(views.APIView): toggle['name'] = toggle_name toggles_dict[toggle_name] = toggle return toggle + + def _get_settings_state(self): + """ + Returns a dictionary of settings values. Will only return values that are set to true or false. + """ + + bool_settings = list() + for setting_name, setting_value in vars(settings).items(): + if isinstance(setting_value, dict): + for dict_name, dict_value in setting_value.items(): + if isinstance(dict_value, bool): + bool_settings.append( + { + 'name': "{setting_name}['{dict_name}']".format(setting_name=setting_name, dict_name=dict_name), + 'is_active': dict_value, + } + ) + elif isinstance(setting_value, bool): + bool_settings.append({'name': setting_name, 'is_active': setting_value}) + return bool_settings