mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	skeleton frontend_settings api endpoint
This commit is contained in:
		| @@ -11,6 +11,7 @@ from . import bulk_edit | ||||
| from .models import Correspondent | ||||
| from .models import Document | ||||
| from .models import DocumentType | ||||
| from .models import FrontendSettings | ||||
| from .models import MatchingModel | ||||
| from .models import SavedView | ||||
| from .models import SavedViewFilterRule | ||||
| @@ -498,3 +499,21 @@ class BulkDownloadSerializer(DocumentListSerializer): | ||||
|             "bzip2": zipfile.ZIP_BZIP2, | ||||
|             "lzma": zipfile.ZIP_LZMA, | ||||
|         }[compression] | ||||
|  | ||||
|  | ||||
| class FrontendSettingsViewSerializer(serializers.ModelSerializer): | ||||
|     class Meta: | ||||
|         model = FrontendSettings | ||||
|         depth = 1 | ||||
|         fields = [ | ||||
|             "id", | ||||
|             "settings", | ||||
|         ] | ||||
|  | ||||
|     def update(self, instance, validated_data): | ||||
|         super(FrontendSettingsViewSerializer, self).update(instance, validated_data) | ||||
|         return instance | ||||
|  | ||||
|     def create(self, validated_data): | ||||
|         frontend_settings = FrontendSettings.objects.create(**validated_data) | ||||
|         return frontend_settings | ||||
|   | ||||
| @@ -11,6 +11,7 @@ from unicodedata import normalize | ||||
| from urllib.parse import quote | ||||
|  | ||||
| from django.conf import settings | ||||
| from django.contrib.auth.models import User | ||||
| from django.db.models import Case | ||||
| from django.db.models import Count | ||||
| from django.db.models import IntegerField | ||||
| @@ -70,6 +71,7 @@ from .serialisers import CorrespondentSerializer | ||||
| from .serialisers import DocumentListSerializer | ||||
| from .serialisers import DocumentSerializer | ||||
| from .serialisers import DocumentTypeSerializer | ||||
| from .serialisers import FrontendSettingsViewSerializer | ||||
| from .serialisers import PostDocumentSerializer | ||||
| from .serialisers import SavedViewSerializer | ||||
| from .serialisers import TagSerializer | ||||
| @@ -715,3 +717,36 @@ class RemoteVersionView(GenericAPIView): | ||||
|                 "feature_is_set": feature_is_set, | ||||
|             }, | ||||
|         ) | ||||
|  | ||||
|  | ||||
| class FrontendSettingsView(GenericAPIView): | ||||
|  | ||||
|     permission_classes = (IsAuthenticated,) | ||||
|     serializer_class = FrontendSettingsViewSerializer | ||||
|  | ||||
|     def get(self, request, format=None): | ||||
|         serializer = self.get_serializer(data=request.data) | ||||
|         serializer.is_valid(raise_exception=True) | ||||
|  | ||||
|         user = User.objects.get(pk=request.user.id) | ||||
|         settings = [] | ||||
|         if hasattr(user, "frontend_settings"): | ||||
|             settings = user.frontend_settings.settings | ||||
|         return Response( | ||||
|             { | ||||
|                 "user_id": user.id, | ||||
|                 "settings": settings, | ||||
|             }, | ||||
|         ) | ||||
|  | ||||
|     def post(self, request, format=None): | ||||
|         serializer = self.get_serializer(data=request.data) | ||||
|         serializer.is_valid(raise_exception=True) | ||||
|  | ||||
|         serializer.save(user=self.request.user) | ||||
|  | ||||
|         return Response( | ||||
|             { | ||||
|                 "success": True, | ||||
|             }, | ||||
|         ) | ||||
|   | ||||
| @@ -11,6 +11,7 @@ from documents.views import BulkDownloadView | ||||
| from documents.views import BulkEditView | ||||
| from documents.views import CorrespondentViewSet | ||||
| from documents.views import DocumentTypeViewSet | ||||
| from documents.views import FrontendSettingsView | ||||
| from documents.views import IndexView | ||||
| from documents.views import LogViewSet | ||||
| from documents.views import PostDocumentView | ||||
| @@ -78,6 +79,11 @@ urlpatterns = [ | ||||
|                     RemoteVersionView.as_view(), | ||||
|                     name="remoteversion", | ||||
|                 ), | ||||
|                 re_path( | ||||
|                     r"^frontend_settings/", | ||||
|                     FrontendSettingsView.as_view(), | ||||
|                     name="frontend_settings", | ||||
|                 ), | ||||
|                 path("token/", views.obtain_auth_token), | ||||
|             ] | ||||
|             + api_router.urls, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Michael Shamoon
					Michael Shamoon