annotate user_photos/views.py @ 697:67f8d49a9377

Cleaned up the code a bit. Separated the S3 stuff out into its own class. This class maybe should be in core. Still want to do some kind of context manager around the temporary file we are creating to ensure it gets deleted.
author Brian Neal <bgneal@gmail.com>
date Sun, 08 Sep 2013 21:02:58 -0500
parents b2a8fde3173a
children 809d27b385f2
rev   line source
bgneal@695 1 """Views for the user_photos application."""
bgneal@695 2 from django.conf import settings
bgneal@695 3 from django.contrib.auth.decorators import login_required
bgneal@696 4 from django.shortcuts import render, redirect
bgneal@695 5
bgneal@695 6 from user_photos.forms import UploadForm
bgneal@695 7
bgneal@695 8
bgneal@695 9 @login_required
bgneal@695 10 def upload(request):
bgneal@695 11 """This view function receives an uploaded image file from a user.
bgneal@695 12 The photo will be resized if necessary and a thumbnail image will be
bgneal@695 13 created. The image and thumbnail will then be uploaded to the Amazon
bgneal@695 14 S3 service for storage.
bgneal@695 15
bgneal@695 16 TODO: rate limiting
bgneal@695 17 pass off the processing to a celery task
bgneal@695 18 ajax version of this view
bgneal@695 19
bgneal@695 20 """
bgneal@695 21 form = None
bgneal@696 22 uploads_enabled = settings.USER_PHOTOS_ENABLED
bgneal@695 23
bgneal@695 24 if uploads_enabled:
bgneal@695 25 if request.method == 'POST':
bgneal@696 26 form = UploadForm(request.POST, request.FILES, user=request.user)
bgneal@695 27 if form.is_valid():
bgneal@696 28 photo = form.save()
bgneal@696 29 return redirect(photo)
bgneal@695 30 else:
bgneal@696 31 form = UploadForm(user=request.user)
bgneal@695 32
bgneal@695 33 return render(request, 'user_photos/upload_form.html', {
bgneal@695 34 'enabled': uploads_enabled,
bgneal@695 35 'form': form,
bgneal@695 36 },
bgneal@695 37 status=200 if uploads_enabled else 503)