mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-03 03:16:10 -06: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 Correspondent
 | 
				
			||||||
from .models import Document
 | 
					from .models import Document
 | 
				
			||||||
from .models import DocumentType
 | 
					from .models import DocumentType
 | 
				
			||||||
 | 
					from .models import FrontendSettings
 | 
				
			||||||
from .models import MatchingModel
 | 
					from .models import MatchingModel
 | 
				
			||||||
from .models import SavedView
 | 
					from .models import SavedView
 | 
				
			||||||
from .models import SavedViewFilterRule
 | 
					from .models import SavedViewFilterRule
 | 
				
			||||||
@@ -498,3 +499,21 @@ class BulkDownloadSerializer(DocumentListSerializer):
 | 
				
			|||||||
            "bzip2": zipfile.ZIP_BZIP2,
 | 
					            "bzip2": zipfile.ZIP_BZIP2,
 | 
				
			||||||
            "lzma": zipfile.ZIP_LZMA,
 | 
					            "lzma": zipfile.ZIP_LZMA,
 | 
				
			||||||
        }[compression]
 | 
					        }[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 urllib.parse import quote
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from django.conf import settings
 | 
					from django.conf import settings
 | 
				
			||||||
 | 
					from django.contrib.auth.models import User
 | 
				
			||||||
from django.db.models import Case
 | 
					from django.db.models import Case
 | 
				
			||||||
from django.db.models import Count
 | 
					from django.db.models import Count
 | 
				
			||||||
from django.db.models import IntegerField
 | 
					from django.db.models import IntegerField
 | 
				
			||||||
@@ -70,6 +71,7 @@ from .serialisers import CorrespondentSerializer
 | 
				
			|||||||
from .serialisers import DocumentListSerializer
 | 
					from .serialisers import DocumentListSerializer
 | 
				
			||||||
from .serialisers import DocumentSerializer
 | 
					from .serialisers import DocumentSerializer
 | 
				
			||||||
from .serialisers import DocumentTypeSerializer
 | 
					from .serialisers import DocumentTypeSerializer
 | 
				
			||||||
 | 
					from .serialisers import FrontendSettingsViewSerializer
 | 
				
			||||||
from .serialisers import PostDocumentSerializer
 | 
					from .serialisers import PostDocumentSerializer
 | 
				
			||||||
from .serialisers import SavedViewSerializer
 | 
					from .serialisers import SavedViewSerializer
 | 
				
			||||||
from .serialisers import TagSerializer
 | 
					from .serialisers import TagSerializer
 | 
				
			||||||
@@ -715,3 +717,36 @@ class RemoteVersionView(GenericAPIView):
 | 
				
			|||||||
                "feature_is_set": feature_is_set,
 | 
					                "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 BulkEditView
 | 
				
			||||||
from documents.views import CorrespondentViewSet
 | 
					from documents.views import CorrespondentViewSet
 | 
				
			||||||
from documents.views import DocumentTypeViewSet
 | 
					from documents.views import DocumentTypeViewSet
 | 
				
			||||||
 | 
					from documents.views import FrontendSettingsView
 | 
				
			||||||
from documents.views import IndexView
 | 
					from documents.views import IndexView
 | 
				
			||||||
from documents.views import LogViewSet
 | 
					from documents.views import LogViewSet
 | 
				
			||||||
from documents.views import PostDocumentView
 | 
					from documents.views import PostDocumentView
 | 
				
			||||||
@@ -78,6 +79,11 @@ urlpatterns = [
 | 
				
			|||||||
                    RemoteVersionView.as_view(),
 | 
					                    RemoteVersionView.as_view(),
 | 
				
			||||||
                    name="remoteversion",
 | 
					                    name="remoteversion",
 | 
				
			||||||
                ),
 | 
					                ),
 | 
				
			||||||
 | 
					                re_path(
 | 
				
			||||||
 | 
					                    r"^frontend_settings/",
 | 
				
			||||||
 | 
					                    FrontendSettingsView.as_view(),
 | 
				
			||||||
 | 
					                    name="frontend_settings",
 | 
				
			||||||
 | 
					                ),
 | 
				
			||||||
                path("token/", views.obtain_auth_token),
 | 
					                path("token/", views.obtain_auth_token),
 | 
				
			||||||
            ]
 | 
					            ]
 | 
				
			||||||
            + api_router.urls,
 | 
					            + api_router.urls,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user