Source code for openassembly.pirate_sources.views

from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.shortcuts import get_object_or_404
from django.views.generic.simple import direct_to_template
from django.contrib.contenttypes.models import ContentType
import datetime
from django.contrib.auth.models import User

from django.core.files.base import ContentFile

from pirate_sources.templatetags.sourcetags import IMGSourceForm
from pirate_sources.models import IMGSource

from filetransfers.api import prepare_upload, serve_file

from ajaxuploader.views import AjaxFileUploader

from pirate_sources.backends import S3CustomBackend


[docs]def change_avatar(request, obj_pk=None, new_pk=None, ctype_pk=None): view_url = reverse('pirate_sources.views.upload_handler', args=[obj_pk, ctype_pk]) try: oldimg = IMGSource.objects.get(object_pk=obj_pk, current=True) oldimg.current = False oldimg.save() except: pass if obj_pk != new_pk: newimg = IMGSource.objects.get(pk=new_pk) newimg.current = True newimg.save() return HttpResponseRedirect(view_url)
[docs]def upload_handler(request, obj_pk=None, ctype_pk=None): view_url = reverse('pirate_sources.views.upload_handler', args=[obj_pk, ctype_pk]) if request.method == 'POST': form = IMGSourceForm(request.POST, request.FILES) if form.is_valid(): img = form.save() img.user = request.user img.object_pk = obj_pk img.content_type = ContentType.objects.get(pk=ctype_pk) img.submit_date = datetime.datetime.now() #file_content = ContentFile(request.FILES['file'].read()) #img.file.save(str(img.object_pk) + '_' + str(img.content_type), file_content) img.make(request.FILES['file'], img.file.name) #photo_key = str(img.file.file.blobstore_info.key()) url = img.file.path if img.private != True: try: oldimg = IMGSource.objects.get(object_pk=obj_pk, current=True) oldimg.current = False oldimg.save() except: pass img.current = True img.url = url img.save() else: view_url += '?error=Not a valid image' return HttpResponseRedirect(view_url) upload_url, upload_data = prepare_upload(request, view_url) form = IMGSourceForm() uploads = IMGSource.objects.filter(object_pk=obj_pk) ctypemod = ContentType.objects.get(pk=ctype_pk) m = ctypemod.model_class() obj = m.objects.get(pk=obj_pk) return direct_to_template(request, 'upload.html', {'form': form, 'upload_url': upload_url, 'upload_data': upload_data, 'object': obj, 'uploads': uploads, 'obj_pk': obj_pk, 'ctype_pk': ctype_pk, 'error': request.GET.get('error')})
[docs]def download_handler(request, pk): upload = get_object_or_404(IMGSource, pk=pk) return serve_file(request, upload.file, save_as=True)
[docs]def delete_handler(request, pk, ctype_pk): get_object_or_404(IMGSource, pk=pk).delete() return HttpResponseRedirect(reverse('pirate_sources.views.upload_handler'), args=[pk, ctype_pk])
import_uploader = AjaxFileUploader(backend=S3CustomBackend, NUM_PARALLEL_PROCESSES=8)