def post(self, request, *args, **kwargs): # Ajax POST for file uploads if request.is_ajax(): custom_post = QueryDict('temp_hash=%s' % request.POST.get('temp_hash')) file_form = PhotoUploadForm(request.POST, request.FILES) print(request.POST) print(request.FILES) if file_form.is_valid(): # file_form.save() response = {'file': []} for photo in request.FILES.getlist('file'): # Create a new entry in our database new_image = Photo(image=photo, temp_hash=request.POST.get('temp_hash')) # Save the image using the model's ImageField settings new_image.save() response['file'].append({ 'name': '%s' % new_image.id, 'size': '%d' % request.FILES.__sizeof__(), 'url': '%s' % new_image.image.url, 'thumbnailUrl': '%s' % new_image.image.url, 'deleteUrl': '\/image\/delete\/%s' % new_image.id, "deleteType": 'DELETE' }) # return HttpResponse('{"status":"success"}', content_type='application/json') return JsonResponse(response) # return HttpResponse('{"status":"error: %s"}' % file_form.errors, content_type='application/json') return JsonResponse({'response': file_form.errors, }) return super(MultiAttachmentMixin, self).post(request, *args, **kwargs)
def editphotoset(request, id): photo_form = PhotoUploadForm() photoset = get_object_or_404(PhotoSet, id = id) photoset_form = PhotoSetForm (instance = photoset) if request.method == 'POST': if request.POST['action'] == 'addphoto': photo_form = PhotoUploadForm(request.user, request.POST, request.FILES) if photo_form.is_valid(): photo = photo_form.save() photo.member = request.user photo.photoset.add(photoset) photo.save() elif request.POST['action'] == 'editphotoset': photoset_form = PhotoSetForm(request.user, request.POST, instance = photoset) if photoset_form.is_valid(): photoset = photoset_form.save(commit = False) photoset.save() redirect_to = "/photos/photoset/%i" % photoset.pk return HttpResponseRedirect(redirect_to) return render_to_response('photos/editphotoset.html', {'photo_form': photo_form, 'photoset_form': photoset_form, 'photoset': photoset}, context_instance = RequestContext(request))
def post(self, request, format=None): form = PhotoUploadForm(request.POST, request.FILES) if form.is_valid(): request_file = request.FILES['file'] try: service = PhotoService(request_file, request.user) if service.photo_exists(): raise IntegrityError photo = service.store_and_save_photos() except IntegrityError: return HttpResponse(status=409) serializer = PhotoSerializer(photo) return Response(serializer.data)
def add_to_photoset(request, id): photoset = get_object_or_404(PhotoSet, pk = id) photoset_form = PhotoSetForm() if request.method == 'POST': photo_form = PhotoUploadForm(request.user, request.POST, request.FILES) if photo_form.is_valid(): photo = photo_form.save(commit = False) photo.photoset.add(photoset) photo.save() return HttpResponseRedirect('/photos/edit/photoset/%s/' % photoset.pk) else: photo_form = PhotoUploadForm() return render_to_response('photos/editphotoset.html', {'photoset_form': photoset_form, 'photo_form': photo_form, 'photoset': photoset}, context_instance = RequestContext(request))
def make(request, slug=None): product = get_object_or_404(Product, slug=slug) if request.method == "POST": print(request.POST) print(request.FILES) images_count = Photo.objects.filter(temp_hash=request.POST.get('temp_hash')).count() if images_count == product.image_total: return JsonResponse({'status': 'Total de imagenes cargadas!'}) else: form = PhotoUploadForm(request.POST, request.FILES or None) if form.is_valid(): response = {'file': []} photo = request.FILES.get('file') # [...] Process the file. Resize it, create thumbnails, etc. # Get an instance of picture model (defined below) new_image = Photo(image=photo, temp_hash=request.POST.get('temp_hash')) # Save the image using the model's ImageField settings new_image.save() response['file'].append({ 'name': '%s' % new_image.id, 'size': '%d' % request.FILES.__sizeof__(), 'url': '%s' % new_image.image.url, 'thumbnailUrl': '%s' % new_image.image.url, 'deleteUrl': '\/image\/delete\/%s' % new_image.id, "deleteType": 'DELETE' }) # return HttpResponse('{"status":"success"}', content_type='application/json') return JsonResponse(response) # return HttpResponse('{"status":"error: %s"}' % file_form.errors, content_type='application/json') return JsonResponse({'response': form.errors, }) # uploaded_images = [] # product variation # if request.method == "POST": # try: # response = {'files': []} # for photo in request.FILES.getlist('photos'): # # Create a new entry in our database # new_image = Photo(image_field=photo) # # new_image.cart_item = cart_item # # Save the image using the model's ImageField settings # new_image.save() # # Save output for return as JSON # response['files'].append({ # 'name': '%s' % new_image.id, # 'size': '%d' % request.FILES.__sizeof__(), # 'url': '%s' % new_image.image_field.url, # 'thumbnailUrl': '%s' % new_image.image_field.url, # 'deleteUrl': '\/image\/delete\/%s' % new_image.id, # "deleteType": 'DELETE' # }) # uploaded_images.append(new_image) # except: # pass # print(len(uploaded_images)) # if len(uploaded_images) > 0: # cart_item.photo_set.add(*uploaded_images) # # # cart_item.save() # # success message # context = { # 'product': product, # 'photos': uploaded_images, # } # # return render(request, "photos/upload.html", context) # # return JsonResponse(response) # # return HttpResponseRedirect(reverse('cart')) # error message instagram_images = get_instagram_images(user=request.user) form = PhotoUploadForm() context = { 'upload_form': form, 'product': product, 'class_name': form.__class__.__name__, 'images': instagram_images, } return render(request, "photos/upload2.html", context)
def photos_batch_add(request, photoset_id=0): """ params: request, photoset_id returns: HttpResponse on flash request: photoset_id is passed via request.POST and received as type unicode; i convert to type integer on http request: photoset_id is passed via url """ import uuid from perms.object_perms import ObjectPermission # photoset permission required to add photos if not has_perm(request.user,'photos.add_photoset'): raise Http403 if request.method == 'POST': for field_name in request.FILES: uploaded_file = request.FILES[field_name] # use file to create title; remove extension filename, extension = os.path.splitext(uploaded_file.name) request.POST.update({'title': filename, }) # clean filename; alphanumeric with dashes filename = re.sub(r'[^a-zA-Z0-9._]+', '-', filename) # truncate; make unique; append extension request.FILES[field_name].name = \ filename[:70] + '-' + unicode(uuid.uuid1())[:5] + extension # photoset_id set in swfupload photoset_id = int(request.POST["photoset_id"]) request.POST.update({ 'owner': request.user.id, 'owner_username': unicode(request.user), 'creator_username': unicode(request.user), 'status': True, 'status_detail': 'active', }) photo_form = PhotoUploadForm(request.POST, request.FILES, user=request.user) if photo_form.is_valid(): # save photo photo = photo_form.save(commit=False) photo.creator = request.user photo.member = request.user photo.safetylevel = 3 photo.allow_anonymous_view = True # update all permissions and save the model photo = update_perms_and_save(request, photo_form, photo) EventLog.objects.log(**{ 'event_id' : 990100, 'event_data': '%s (%d) added by %s' % (photo._meta.object_name, photo.pk, request.user), 'description': '%s added' % photo._meta.object_name, 'user': request.user, 'request': request, 'instance': photo, }) # add to photo set if photo set is specified if photoset_id: photo_set = get_object_or_404(PhotoSet, id=photoset_id) photo_set.image_set.add(photo) privacy = get_privacy_settings(photo_set) # photo privacy = album privacy for k, v in privacy.items(): setattr(photo, k, v) photo.save() # real time search index hooked to save method print 'i waited' # photo group perms = album group perms group_perms = photo_set.perms.filter(group__isnull=False).values_list('group','codename') group_perms = tuple([(unicode(g), c.split('_')[0]) for g, c in group_perms ]) ObjectPermission.objects.assign_group(group_perms, photo) # serialize queryset data = serializers.serialize("json", Image.objects.filter(id=photo.id)) # returning a response of "ok" (flash likes this) # response is for flash, not humans return HttpResponse(data, mimetype="text/plain") else: return HttpResponse("photo is not valid", mimetype="text/plain") else: if not photoset_id: HttpResponseRedirect(reverse('photoset_latest')) photo_set = get_object_or_404(PhotoSet, id=photoset_id) # show the upload UI return render_to_response('photos/batch-add.html', { "photoset_id":photoset_id, "photo_set": photo_set, "csrf_token": csrf_get_token(request) }, context_instance=RequestContext(request))