Ejemplo n.º 1
0
def add_to_basket(request, gitem_id):
    """Handles the size, colour and style selection of a gallery item to create a RequestedItem"""
    gitem = get_object_or_404(GalleryItem, pk=gitem_id)
    selected_size = None
    selected_colour = None
    selected_style = None
    quantity = 1
    member = None
    if hasattr(request.user, 'clubmember'):
        member = request.user.clubmember

    try:
        selected_size = gitem.sizeinfo_set.get(pk=request.POST['size'])
    except (KeyError, SizeInfo.DoesNotExist):
        pass
    try:
        selected_colour = gitem.colourinfo_set.get(pk=request.POST['colour'])
    except (KeyError, ColourInfo.DoesNotExist):
        pass

    try:
        selected_style = gitem.styleinfo_set.get(pk=request.POST['style'])
    except (KeyError, StyleInfo.DoesNotExist):
        pass

    try:
        quantity = request.POST['quantity']
    except:
        messages.error(request, "Failed to obtain any quantity")
        return render(request, 'inventory/galleryitem.html', {
            'item': gitem,
            'error_message': "Failed to obtain any quantity",
            })

    next_url = reverse('index')
    try:
        if 'next-url' in request.POST:
            next_url = request.POST['next-url']
            print "Found next_url: %s" % next_url
        else:
            print "Can't find next_url :("
    except:
        print "Failed to obtain next"
        pass

    for i in range(int(quantity)):
        ritem = RequestedItem(gallery_item=gitem, size_info=selected_size, requester=member,
                              colour_info=selected_colour, style_info=selected_style)
        ritem.save()

    msg = "One item " if quantity == 1 else "%s items " % quantity
    msg += "successfully added to the basket"
    messages.success(request, msg)
    return HttpResponseRedirect(next_url)
Ejemplo n.º 2
0
    def add_to_basket(request, gitem_id):
        """Handles the size, colour and style selection of a gallery item to create a RequestedItem"""
        gitem = get_object_or_404(GalleryItem, pk=gitem_id)
        selected_size = None
        selected_colour = None
        selected_style = None
        quantity = 1

        try:
            selected_size = gitem.sizeinfo_set.get(pk=request.POST["size"])
        except (KeyError, SizeInfo.DoesNotExist):
            pass
        try:
            selected_colour = gitem.colourinfo_set.get(pk=request.POST["colour"])
        except (KeyError, ColourInfo.DoesNotExist):
            pass

        try:
            selected_style = gitem.styleinfo_set.get(pk=request.POST["style"])
        except (KeyError, StyleInfo.DoesNotExist):
            pass

        try:
            quantity = request.POST["quantity"]
        except:
            messages.error(request, "Failed to obtain any quantity")
            return render(
                request, "inventory/galleryitem.html", {"item": gitem, "error_message": "Failed to obtain any quantity"}
            )

        for i in range(int(quantity)):
            ritem = RequestedItem(
                gallery_item=gitem, size_info=selected_size, colour_info=selected_colour, style_info=selected_style
            )
            ritem.save()

        msg = "One item " if quantity == 1 else "%s items " % quantity
        msg += "successfully added to the basket"
        messages.success(request, msg)
        return HttpResponseRedirect(reverse("inventory:gallery_items"))