Beispiel #1
0
def saveImage(request):
    """
    Image drag and drop, saves the files and to the database.
    """
    if request.method == 'POST':
        timeMark = time.time()
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            uploadedFile = request.FILES['file']
            print "Uploaded file = " + str(uploadedFile)
            print "request = " + str(request)
            # If this image has exif data in it, extract it

            exifData, exifTimeString = getExifTimeString(request, uploadedFile)

            form_tz = form.getTimezone()
            exifTime = getExifTime(request, exifTimeString, uploadedFile,
                                   form_tz)

            author = computeAuthor(request)
            vehicle = form.getVehicle()
            camera = getCameraByExif(exifData)

            # create a new image set instance
            newImageSet = create_image_set(file=uploadedFile,
                                           filename=uploadedFile.name,
                                           author=author,
                                           vehicle=vehicle,
                                           camera=camera,
                                           form_tz=form_tz,
                                           form_tz_name=form.getTimezoneName(),
                                           exif_data=exifData,
                                           exif_time=exifTime,
                                           object_id=request.POST.get(
                                               'object_id', None),
                                           time_mark=timeMark)

            newImageSet.finish_initialization(request)
            relayIfNeeded(request, newImageSet)

            # pass the image set to the client as json.
            return JsonResponse(
                {
                    'success': 'true',
                    'json': newImageSet.toMapDict()
                },
                encoder=DatetimeJsonEncoder,
                safe=False)
        else:
            return JsonResponse(
                {
                    'error': 'Imported image is not valid',
                    'details': form.errors
                },
                status=406)