ojuso-map/apps/files/views.py

59 lines
1.5 KiB
Python
Raw Normal View History

2018-05-01 02:23:36 +00:00
from django.contrib.auth.mixins import LoginRequiredMixin
2019-08-19 21:53:34 +00:00
from django.core.exceptions import PermissionDenied
from django.http import JsonResponse
2019-08-19 21:53:34 +00:00
from django.views.generic import DetailView
from django.views.generic import FormView
2019-08-19 21:53:34 +00:00
from .forms import FileForm
from .forms import ImageFileForm
from .models import File
from .models import ImageFile
2019-08-19 23:17:23 +00:00
class FileUpload(LoginRequiredMixin, FormView):
model = File
form_class = FileForm
def form_valid(self, form):
2018-05-01 02:23:36 +00:00
self.object = form.save(commit=False)
self.object.user = self.request.user
self.object.save()
2019-08-19 21:37:32 +00:00
return JsonResponse(
{
"is_valid": True,
"url": self.object.file.url,
"name": self.object.file.name,
"id": self.object.pk,
}
)
def form_invalid(self, form):
2019-08-19 21:37:32 +00:00
return JsonResponse({"is_valid": False, "errors": form.errors})
2018-04-23 05:15:33 +00:00
2019-08-19 23:17:23 +00:00
class ImageFileUpload(FileUpload):
model = ImageFile
form_class = ImageFileForm
2019-08-19 23:17:23 +00:00
class FileDelete(LoginRequiredMixin, DetailView):
2018-04-23 05:15:33 +00:00
model = File
def get(self, request, *args, **kwargs):
return self.post(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
self.object = self.get_object()
2018-05-01 02:23:36 +00:00
if request.user != self.object.user:
raise PermissionDenied
2018-04-23 05:15:33 +00:00
self.object.delete()
2019-08-19 21:37:32 +00:00
return JsonResponse({"success": True})
2018-09-23 02:25:04 +00:00
2019-08-19 23:17:23 +00:00
class ImageFileDelete(FileDelete):
2018-09-23 02:25:04 +00:00
model = ImageFile