Umbrellla config view
This commit is contained in:
parent
7fea7bc915
commit
ddb3021274
@ -128,3 +128,8 @@ class OcrSettingsSerializer(serializers.ModelSerializer):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = OcrSettings
|
model = OcrSettings
|
||||||
fields = "__all__"
|
fields = "__all__"
|
||||||
|
|
||||||
|
|
||||||
|
class ConfigSerializer(serializers.Serializer):
|
||||||
|
common_settings = CommonSettingsSerializer()
|
||||||
|
ocr_settings = OcrSettingsSerializer()
|
||||||
|
@ -34,11 +34,10 @@ from documents.views import TasksViewSet
|
|||||||
from documents.views import UiSettingsView
|
from documents.views import UiSettingsView
|
||||||
from documents.views import UnifiedSearchViewSet
|
from documents.views import UnifiedSearchViewSet
|
||||||
from paperless.consumers import StatusConsumer
|
from paperless.consumers import StatusConsumer
|
||||||
from paperless.views import CommonSettingsViewSet
|
from paperless.views import ConfigView
|
||||||
from paperless.views import FaviconView
|
from paperless.views import FaviconView
|
||||||
from paperless.views import GenerateAuthTokenView
|
from paperless.views import GenerateAuthTokenView
|
||||||
from paperless.views import GroupViewSet
|
from paperless.views import GroupViewSet
|
||||||
from paperless.views import OcrSettingsViewSet
|
|
||||||
from paperless.views import ProfileView
|
from paperless.views import ProfileView
|
||||||
from paperless.views import UserViewSet
|
from paperless.views import UserViewSet
|
||||||
from paperless_mail.views import MailAccountTestView
|
from paperless_mail.views import MailAccountTestView
|
||||||
@ -61,8 +60,6 @@ api_router.register(r"mail_rules", MailRuleViewSet)
|
|||||||
api_router.register(r"share_links", ShareLinkViewSet)
|
api_router.register(r"share_links", ShareLinkViewSet)
|
||||||
api_router.register(r"consumption_templates", ConsumptionTemplateViewSet)
|
api_router.register(r"consumption_templates", ConsumptionTemplateViewSet)
|
||||||
api_router.register(r"custom_fields", CustomFieldViewSet)
|
api_router.register(r"custom_fields", CustomFieldViewSet)
|
||||||
api_router.register(r"common_settings", CommonSettingsViewSet)
|
|
||||||
api_router.register(r"ocr_settings", OcrSettingsViewSet)
|
|
||||||
|
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
@ -132,6 +129,12 @@ urlpatterns = [
|
|||||||
name="profile_view",
|
name="profile_view",
|
||||||
),
|
),
|
||||||
*api_router.urls,
|
*api_router.urls,
|
||||||
|
re_path(
|
||||||
|
"^config/",
|
||||||
|
ConfigView.as_view(),
|
||||||
|
name="config_view",
|
||||||
|
),
|
||||||
|
*api_router.urls,
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -21,6 +21,7 @@ from paperless.filters import UserFilterSet
|
|||||||
from paperless.models import CommonSettings
|
from paperless.models import CommonSettings
|
||||||
from paperless.models import OcrSettings
|
from paperless.models import OcrSettings
|
||||||
from paperless.serialisers import CommonSettingsSerializer
|
from paperless.serialisers import CommonSettingsSerializer
|
||||||
|
from paperless.serialisers import ConfigSerializer
|
||||||
from paperless.serialisers import GroupSerializer
|
from paperless.serialisers import GroupSerializer
|
||||||
from paperless.serialisers import OcrSettingsSerializer
|
from paperless.serialisers import OcrSettingsSerializer
|
||||||
from paperless.serialisers import ProfileSerializer
|
from paperless.serialisers import ProfileSerializer
|
||||||
@ -182,3 +183,37 @@ class OcrSettingsViewSet(ModelViewSet):
|
|||||||
|
|
||||||
serializer_class = OcrSettingsSerializer
|
serializer_class = OcrSettingsSerializer
|
||||||
permission_classes = (IsAuthenticated,)
|
permission_classes = (IsAuthenticated,)
|
||||||
|
|
||||||
|
|
||||||
|
class ConfigView(GenericAPIView):
|
||||||
|
"""
|
||||||
|
View for overall config settings
|
||||||
|
"""
|
||||||
|
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
serializer_class = ConfigSerializer
|
||||||
|
|
||||||
|
def get(self, request, *args, **kwargs):
|
||||||
|
serializer = self.get_serializer()
|
||||||
|
|
||||||
|
return Response(
|
||||||
|
serializer.to_representation(
|
||||||
|
{
|
||||||
|
"common_settings": CommonSettings.objects.first(),
|
||||||
|
"ocr_settings": OcrSettings.objects.first(),
|
||||||
|
},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
def post(self, request):
|
||||||
|
serializer = self.get_serializer(data=request.data)
|
||||||
|
serializer.is_valid(raise_exception=True)
|
||||||
|
|
||||||
|
CommonSettings.objects.filter(pk=1).update(
|
||||||
|
**serializer.validated_data.get("common_settings"),
|
||||||
|
)
|
||||||
|
OcrSettings.objects.filter(pk=1).update(
|
||||||
|
**serializer.validated_data.get("ocr_settings"),
|
||||||
|
)
|
||||||
|
|
||||||
|
return self.get(request)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user