示例#1
0
def random_order_form():
    no_variants = True
    while no_variants:
        item = Item.objects.order_by('?')[0]
        if item.variant_set.count():
            v = item.variant_set.all()[0]
            v.schedule = None
            v.save()
            break
    item.taxable = True
    item.save()
    form_class = get_order_form(item)
    data = data_for_order_form(item)
    bound_form = form_class(data, location=Location.objects.all()[0])
    bound_form.full_clean()
    return item, bound_form
示例#2
0
文件: views.py 项目: tonomuniz/tiger
@online_ordering
def order_item(request, section_id, section_slug, item_id, item_slug):
    if not request.location:
        return HttpResponseRedirect(reverse('change_location'))
    i = get_object_or_404(Item, section__slug=section_slug, section__id=section_id, id=item_id, slug=item_slug, site=request.site)
    try:
        assert request.site.is_open(request.location) and i.is_available(request.location)
    except OrderingError, e:
        if request.is_mobile:
            return HttpResponse(json.dumps({
                'error': True,
                'msg': e.msg
            }))
        messages.warning(request, e.msg) 
        return HttpResponseRedirect(e.redirect_to)
    OrderForm = get_order_form(i)
    total = i.variant_set.order_by('-price')[0].price
    if request.method == 'POST':
        form = OrderForm(request.POST, location=request.location)
        if form.is_valid():
            request.cart.add(i, form)
            if request.is_mobile:
                return HttpResponse(request.cart.to_json())   
            else:
                msg = """%s added to your order. You can 
                <a href="%s">complete your order now</a> or <a href="/menu/">add more items</a>.""" % (
                    i.name, reverse('preview_order'))
                messages.success(request, msg) 
                return HttpResponseRedirect(i.section.get_absolute_url())
        elif request.is_mobile:
            return HttpResponse(json.dumps({