2012-05-12 00:27:02 +00:00
|
|
|
from django.http import HttpResponseRedirect
|
2013-04-16 00:30:43 +02:00
|
|
|
from django.conf import settings
|
2012-04-26 03:44:16 +00:00
|
|
|
from django.core.urlresolvers import reverse
|
2013-03-02 12:26:54 -08:00
|
|
|
from django.views.generic import CreateView
|
2013-03-03 04:47:34 -08:00
|
|
|
from django_images.models import Image
|
2012-04-26 03:44:16 +00:00
|
|
|
|
2013-03-03 04:47:34 -08:00
|
|
|
from braces.views import JSONResponseMixin, LoginRequiredMixin
|
2013-04-16 00:30:43 +02:00
|
|
|
from django_images.models import Thumbnail
|
2013-03-02 12:26:54 -08:00
|
|
|
|
2013-03-03 04:47:34 -08:00
|
|
|
from .forms import ImageForm
|
2012-04-26 03:44:16 +00:00
|
|
|
|
2012-05-12 00:27:02 +00:00
|
|
|
|
2013-03-03 04:47:34 -08:00
|
|
|
class CreateImage(JSONResponseMixin, LoginRequiredMixin, CreateView):
|
|
|
|
|
template_name = None # JavaScript-only view
|
|
|
|
|
model = Image
|
|
|
|
|
form_class = ImageForm
|
2013-03-02 12:26:54 -08:00
|
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs):
|
2013-03-03 04:47:34 -08:00
|
|
|
if not request.is_ajax():
|
|
|
|
|
return HttpResponseRedirect(reverse('core:recent-pins'))
|
2013-03-03 10:08:26 -08:00
|
|
|
return super(CreateImage, self).get(request, *args, **kwargs)
|
2013-03-02 12:26:54 -08:00
|
|
|
|
|
|
|
|
def form_valid(self, form):
|
2013-03-03 04:47:34 -08:00
|
|
|
image = form.save()
|
2014-04-03 10:09:11 +02:00
|
|
|
for size in settings.IMAGE_SIZES:
|
2013-04-16 00:30:43 +02:00
|
|
|
Thumbnail.objects.get_or_create_at_size(image.pk, size)
|
2013-03-03 04:47:34 -08:00
|
|
|
return self.render_json_response({
|
|
|
|
|
'success': {
|
|
|
|
|
'id': image.id
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
def form_invalid(self, form):
|
2013-03-03 22:47:25 +00:00
|
|
|
return self.render_json_response({'error': form.errors})
|