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)
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"))