You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

62 lines
2.1 KiB

# encoding: utf-8
import json
from django.http import HttpResponse
from django.views.generic import CreateView, DeleteView, ListView
from .models import Picture
from .response import JSONResponse, response_mimetype
from .serialize import serialize
class PictureCreateView(CreateView):
model = Picture
fields = "__all__"
template_name = 'client/fileupload/fileupload/picture_form.html'
def form_valid(self, form):
self.object = form.save()
files = [serialize(self.object)]
data = {'files': files}
response = JSONResponse(data, mimetype=response_mimetype(self.request))
response['Content-Disposition'] = 'inline; filename=files.json'
return response
def form_invalid(self, form):
data = json.dumps(form.errors)
return HttpResponse(content=data, status=400, content_type='application/json')
class BasicVersionCreateView(PictureCreateView):
template_name = 'client/fileupload/fileupload/picture_basic_form.html'
class BasicPlusVersionCreateView(PictureCreateView):
template_name = 'client/fileupload/fileupload/picture_basicplus_form.html'
class AngularVersionCreateView(PictureCreateView):
template_name = 'client/fileupload/fileupload/picture_angular_form.html'
class jQueryVersionCreateView(PictureCreateView):
template_name = 'client/fileupload/fileupload/picture_jquery_form.html'
class PictureDeleteView(DeleteView):
model = Picture
def delete(self, request, *args, **kwargs):
self.object = self.get_object()
self.object.delete()
response = JSONResponse(True, mimetype=response_mimetype(request))
response['Content-Disposition'] = 'inline; filename=files.json'
return response
class PictureListView(ListView):
model = Picture
def render_to_response(self, context, **response_kwargs):
files = [ serialize(p) for p in self.get_queryset() ]
data = {'files': files}
response = JSONResponse(data, mimetype=response_mimetype(self.request))
response['Content-Disposition'] = 'inline; filename=files.json'
return response