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})
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)
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)
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})
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)
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})
def section_list(request): sections = Section.objects.filter(site=request.site) return render_custom(request, 'core/section_list.html', {'sections': sections})
def order_success(request): return render_custom(request, 'core/order_success.html')
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)
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})
def press_list(request): return render_custom(request, 'notify/press_list.html', {'releases': request.site.release_set.filter(visible=True).order_by('-publish_time')})
def home(request): page = MenuItem.objects.get(position=1, site=request.site).page return render_custom(request, 'content/page.html', {'page': page})
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})
def page_detail(request, id, slug): page = Content.objects.get(site=request.site, id=id) return render_custom(request, 'content/page.html', {'page': page})