Added API endpoint for listing public instance settings

This commit is contained in:
Eliot Berriot 2018-02-17 21:21:08 +01:00
parent 0944ef2a07
commit 6152b3bb36
No known key found for this signature in database
GPG key ID: DD6965E2476E5C27
7 changed files with 69 additions and 1 deletions

View file

View file

@ -0,0 +1,7 @@
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^settings/$', views.InstanceSettings.as_view(), name='settings'),
]

View file

@ -0,0 +1,25 @@
from rest_framework import views
from rest_framework.response import Response
from dynamic_preferences.api import serializers
from dynamic_preferences.registries import global_preferences_registry
class InstanceSettings(views.APIView):
permission_classes = []
authentication_classes = []
def get(self, request, *args, **kwargs):
manager = global_preferences_registry.manager()
manager.all()
all_preferences = manager.model.objects.all().order_by(
'section', 'name'
)
api_preferences = [
p
for p in all_preferences
if getattr(p.preference, 'show_in_api', False)
]
data = serializers.GlobalPreferenceSerializer(
api_preferences, many=True).data
return Response(data, status=200)