Esempio n. 1
0
def new_pin_api(request):
    if request.method == "POST":

        try:
            trip = Trip.objects.get(pk=int(request.POST.get("trip")))
        except:
            response = {"success": False, "error": "Invalid Trip ID"}

        try:
            lat = float(request.POST.get("lat").decode("ascii", "ignore"))
            lon = float(request.POST.get("lon").decode("ascii", "ignore"))
            location = Location.objects.create(lat=lat, lon=lon)
        except:
            response = {"success": False, "error": "Problem with location"}

        name = request.POST.get("name")
        pin_date = parse(request.POST.get("date"))
        tracks = request.POST.get("tracks") == "true"
        text = request.POST.get("text")
        try:
            pin = Pin(trip=trip, name=name, pin_date=pin_date, location=location, tracks=tracks, text=text)
            pin.save()
        except:
            response = {"success": False, "error": "Could not create pin"}

        try:
            for uploadedFile in request.FILES.itervalues():
                media = Image(original=uploadedFile, pin=pin)
                media.save()
                media.generate()
            response = {"success": True}
        except:
            pin.delete()
            response = {"success": False, "error": "Image upload failed"}
    else:
        response = {"success": False, "error": "Use POST"}

    return HttpResponse(json.dumps(response), mimetype="application/json")
Esempio n. 2
0
def new_pin_api(request):
    if request.method == "POST":

        try:
            trip = Trip.objects.get(pk=int(request.POST.get('trip')))
        except:
            response = {'success': False, 'error': 'Invalid Trip ID'}

        try:
            lat = float(request.POST.get('lat').decode('ascii', 'ignore'))
            lon = float(request.POST.get('lon').decode('ascii', 'ignore'))
            location = Location.objects.create(lat=lat, lon=lon)
        except:
            response = {'success': False, 'error': 'Problem with location'}

        name = request.POST.get('name')
        pin_date = parse(request.POST.get('date'))
        tracks = (request.POST.get('tracks') == "true")
        text = request.POST.get('text')
        try:
            pin = Pin(trip=trip, name=name, pin_date=pin_date,
                      location=location, tracks=tracks, text=text)
            pin.save()
        except:
            response = {'success': False, 'error': 'Could not create pin'}

        try:
            for uploadedFile in request.FILES.itervalues():
                media = Image(original=uploadedFile, pin=pin)
                media.save()
                media.generate()
            response = {'success': True}
        except:
            pin.delete()
            response = {'success': False, 'error': 'Image upload failed'}
    else:
        response = {'success': False, 'error': 'Use POST'}

    return HttpResponse(json.dumps(response), mimetype='application/json')
Esempio n. 3
0
def file_upload_view(request):
    if request.method == "POST":
        files = request.FILES[u'files[]']
        if type(files) is not list:
            files = [files]

        result = []
        for new_file in files:
            content_type = new_file.content_type.split("/")[0]
            if content_type == "image":
                media = Image(original=new_file)
                media.save()
                media.generate()
                result.append({'id': media.id,
                               'name': new_file.name,
                               'url': media.pin_display.url})
            else:
                result.append(
                    {"error": new_file.name + " is not a valid image"})

        response_data = json.dumps(result)
        return HttpResponse(response_data, mimetype='application/json')
    else:
        pass  # return 404