Source code for ox.apps.files.views

from caps.views import OwnedViewSet, AccessViewSet

from . import serializers, filters, tasks
from .models import Folder, File


__all__ = ("FolderViewSet", "FolderAccessViewSet", "FileViewSet", "FileAccessViewSet")


[docs] class FolderViewSet(OwnedViewSet): queryset = Folder.objects.all().order_by("-updated") serializer_class = serializers.FolderSerializer filterset_class = filters.FolderFilterSet search_fields = ["path"]
[docs] class FolderAccessViewSet(AccessViewSet): queryset = Folder.Access.objects.all()
[docs] class FileViewSet(OwnedViewSet): queryset = File.objects.all().order_by("-updated") serializer_class = serializers.FileSerializer filterset_fields = { "uuid": ["exact", "in"], "owner__uuid": ["exact"], "folder__uuid": ["exact"], "name": ["exact", "icontains"], } search_fields = ["name", "folder__path"] def perform_create(self, ser): super().perform_create(ser) ser.instance.read_mime_type() tasks.create_preview.enqueue(uuid=str(ser.instance.uuid)) def perform_update(self, ser): if ser.validated_data.get("file"): ser.instance.clear_files() super().perform_update(ser) tasks.create_preview.enqueue(uuid=str(ser.instance.uuid))
[docs] class FileAccessViewSet(AccessViewSet): queryset = File.Access.objects.all()