Exemplo n.º 1
0
def change_location(request):
    if request.site.location_set.count() == 1:
        raise Http404
    if request.method == 'POST':
        form = LocationSelectionForm(request.POST, site=request.site)
        if form.is_valid():
            request.session['location'] = request.location = form.cleaned_data.get('location')
            if request.cart:
                request.cart.clear()
            return HttpResponseRedirect(request.session.get('next') or '/')
    else:
        form = LocationSelectionForm(site=request.site)
        request.session['next'] = request.META.get('HTTP_REFERER') or '/'
    return render_custom(request, 'core/change_location.html', {'form': form})
Exemplo n.º 2
0
def payment_authnet(request):
    order_id = request.REQUEST.get('o')
    try:
        order = Order.objects.get(id=order_id)
    except (Order.DoesNotExist, KeyError):
        return HttpResponseRedirect(reverse('preview_order'))
    if request.method == 'POST':
        form = AuthNetForm(request.POST, order=order)
        if form.is_valid():
            order.notify_restaurant(Order.STATUS_PAID)
            return HttpResponseRedirect(str(request.site) + reverse('order_success'))
    else:
        form = AuthNetForm(order=order)
    context = {'form': form, 'order_id': order_id, 'order_settings': request.site.ordersettings}
    return render_custom(request, 'core/payment_authnet.html', context)
Exemplo n.º 3
0
def search(request):
    sqs = SearchQuerySet().filter(site=request.site.id)
    query = ''
    results = []
    if request.META.has_key('QUERY_STRING'):
        form = MenuSearchForm(request.GET, searchqueryset=sqs, load_all=True)
        if form.is_valid():
            query = form.cleaned_data['q']
            results = form.search()
    else:
        form = MenuSearchForm(searchqueryset=sqs, load_all=True)
    context = {
        'results': results,
        'query': query,
    }
    return render_custom(request, 'search/search.html', context)
Exemplo n.º 4
0
def preview_order(request):
    if not request.cart:
        return HttpResponseRedirect('/menu/')
    if request.method == 'POST':
        form = CouponForm(request.site, request.POST)
        if request.cart.has_coupon:
            messages.error(request, 'You have already added a coupon to this order.')   
        elif form.is_valid():
            coupon = form.coupon
            request.cart.add_coupon(coupon)
            return HttpResponseRedirect(reverse('preview_order'))
    else:
        if request.cart.has_coupon:
            form = None
        else:
            form = CouponForm()
    return render_custom(request, 'core/preview_order.html', 
        {'form': form})
Exemplo n.º 5
0
def payment_paypal(request):
    try:
        order = Order.objects.get(id=request.session['order_id'])
    except (Order.DoesNotExist, KeyError):
        return HttpResponseRedirect(reverse('preview_order'))
    site = request.site
    domain = str(site)
    paypal_dict = {
        'business': site.ordersettings.paypal_email,
        'amount': order.total_plus_tax(),
        'invoice': request.session['order_id'],
        'item_name': 'Your order at %s' % site.name,
        'notify_url': domain + reverse('paypal-ipn'),
        'return_url': domain + reverse('order_success'),
        'cancel_return': domain + reverse('preview_order'),
    }
    form = PayPalPaymentsForm(initial=paypal_dict)
    context = {'form': form}
    return render_custom(request, 'core/payment_paypal.html', context)
Exemplo n.º 6
0
def section_detail(request, section_id, section_slug):
    s = get_object_or_404(Section, slug=section_slug, id=section_id, site=request.site)
    return render_custom(request, 'core/section_detail.html', 
        {'section': s})
Exemplo n.º 7
0
def section_list(request):
    sections = Section.objects.filter(site=request.site)
    return render_custom(request, 'core/section_list.html', 
        {'sections': sections})
Exemplo n.º 8
0
def order_success(request):
    return render_custom(request, 'core/order_success.html')
Exemplo n.º 9
0
    return HttpResponsePermanentRedirect(i.get_absolute_url())

def item_detail(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 i.is_available(request.location)
    except OrderingError, e:
        messages.warning(request, e.msg) 
    if i.incomplete:
        if request.user.is_authenticated() and request.site.authorized(request.user):
            messages.warning(request, 'This is menu item is incomplete and will not appear to users.  To complete it, <a href="%s">add a price</a>.' % reverse('dashboard_edit_options', args=['item', i.id]))
        else:
            raise Http404
    return render_custom(request, 'core/item_detail.html', 
        {'item': i, 'sections': request.site.section_set.all()})

@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) 
Exemplo n.º 10
0
def press_detail(request, object_id, slug):
    press = get_object_or_404(Release, id=object_id, site=request.site, visible=True)
    return render_custom(request, 'notify/press_detail.html', 
        {'release': press})
Exemplo n.º 11
0
def press_list(request):
    return render_custom(request, 'notify/press_list.html', 
        {'releases': request.site.release_set.filter(visible=True).order_by('-publish_time')})
Exemplo n.º 12
0
def home(request):
    page = MenuItem.objects.get(position=1, site=request.site).page
    return render_custom(request, 'content/page.html', {'page': page})
Exemplo n.º 13
0
def image_detail(request, image_id, slug):
    img = get_object_or_404(ItemImage, id=image_id, site=request.site)
    return render_custom(request, 'content/image_detail.html', {'img': img})    
Exemplo n.º 14
0
def page_detail(request, id, slug):
    page = Content.objects.get(site=request.site, id=id)
    return render_custom(request, 'content/page.html', {'page': page})