예제 #1
0
def edit_sale(request, id):
    """
    Updates a sale transaction
    """
    sale = get_object_or_404(Sale, pk=id, user=request.user)
    if request.method == 'POST':
        form = SaleForm(request.POST, instance=sale, user_id=request.user.pk)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/core/sale/')
    else:
        form = SaleForm(instance=sale, user_id=request.user.pk)
    return render_to_response('core/manage_sale.html',
            {'form': form, 'is_new': False},
        context_instance=RequestContext(request))
예제 #2
0
def edit_sale(request, id):
    """
    Updates a sale transaction
    """
    sale = get_object_or_404(Sale, pk=id, user=request.user)
    if request.method == 'POST':
        form = SaleForm(request.POST, instance=sale, user_id=request.user.pk)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/core/sale/')
    else:
        form = SaleForm(instance=sale, user_id=request.user.pk)
    return render_to_response('core/manage_sale.html', {
        'form': form,
        'is_new': False
    },
                              context_instance=RequestContext(request))
예제 #3
0
def new_sale(request):
    """View for handling the creation of new sales."""
    form = SaleForm()
    error = ""

    facebook = get_facebook_graph(request) != None

    if request.method == "POST":
        data = request.POST.copy()
        data["merchant"] = request.user.id
        data["status"] = Sale.PENDING

        form = SaleForm(data)
        if form.is_valid():
            sale = form.save(commit=False)
            sale.expires = form.cleaned_data["expires"]

            url = request.POST.get("image", "")
            if url == "" or len(url) > 1000:
                sale.image = File(open(os.path.join(STATIC_ROOT, "img/book_placeholder.gif")))

            else:
                req = urllib2.Request(url, headers={"User-Agent": "Magic Browser"})
                img_temp = NamedTemporaryFile(delete=True)
                image = urllib2.urlopen(req).read()
                img_temp.write(image)
                img_temp.flush()

                try:
                    im = Image.open(StringIO.StringIO(image))
                    im.verify()
                except Exception, e:
                    error = "Invalid image URL." + str(e)
                    return load_page(request, "new_sale.html", {"form": form, "error": error})

                filename = data["image"] if "." in data["image"][-5:] else data["image"] + ".png"
                sale.image.save(filename, File(img_temp))

            sale.save()

            message = "Thanks, your sale has been listed!"
            try:
                if request.POST["facebook"]:
                    share_sale(request, sale)
                    message += " A post has been added to your timeline."
            except:
                pass

            return index(request, flash=message)
예제 #4
0
def add_sale(request):
    """
    Creates a sale transaction
    """
    if request.method == 'POST':
        form = SaleForm(request.POST, user_id=request.user.pk)
        if form.is_valid():
            sale = form.save(commit=False)
            sale.user = request.user
            sale.save()
            return HttpResponseRedirect('/core/sale/')
    else:
        form = SaleForm(user_id=request.user.pk)
    return render_to_response('core/manage_sale.html',
            {'form': form, 'is_new': True, 'products': Product.objects.filter(user=request.user)},
        context_instance=RequestContext(request))
예제 #5
0
def add_sale(request):
    """
    Creates a sale transaction
    """
    if request.method == 'POST':
        form = SaleForm(request.POST, user_id=request.user.pk)
        if form.is_valid():
            sale = form.save(commit=False)
            sale.user = request.user
            sale.save()
            return HttpResponseRedirect('/core/sale/')
    else:
        form = SaleForm(user_id=request.user.pk)
    return render_to_response(
        'core/manage_sale.html', {
            'form': form,
            'is_new': True,
            'products': Product.objects.filter(user=request.user)
        },
        context_instance=RequestContext(request))