def ajax_select_ticket2(request): if request.method == 'POST': form1 = SelectEventDateForm(request.POST) form1.fields['datetime'].queryset = EventDate.objects.all() if form1.is_valid(): datetime = form1.cleaned_data['datetime'] form2 = SelectSectionForm(request.POST) form2.fields['section'].queryset = datetime.event.hallscheme.sections.all() if form2.is_valid(): section = form2.cleaned_data['section'] cart = Cart.objects.from_request(request) try: cartitems = cart.cartitem_set.all() except: cartitems = None return _json_response([dict([[ticket.product.id, { 'status': ticket.status, 'section': ticket.seat.section.name, 'col': ticket.seat.col, 'row': ticket.seat.row, 'x': ticket.seat.x_position, 'y': ticket.seat.y_position, 'price': str(ticket.product.unit_price), 'product': ticket.product.id, 'in_cart': cartitems and str(cartitems.filter(product=ticket.product).count()) or '0', 'cartitem_id': cartitems and cartitems.filter(product=ticket.product).count() and cartitems.filter(product=ticket.product)[0].id or None, }]]) for ticket in Ticket.objects.filter(seat__section=section,datetime=datetime)]) return _json_response([])
def ajax_select_ticket(request): if request.method == 'POST': form1 = SelectEventDateForm(request.POST) form1.fields['datetime'].queryset = EventDate.objects.all() if form1.is_valid(): datetime = form1.cleaned_data['datetime'] form2 = SelectSectionForm(request.POST) form2.fields['section'].queryset = datetime.event.hallscheme.sections.all() if form2.is_valid(): section = form2.cleaned_data['section'] return _json_response([{"":_('Select ticket')}] + [dict([[ticket.product.id, "%s-%s" % (ticket.__unicode__(), ticket.get_status_display())]]) for ticket in Ticket.objects.filter(seat__section=section,datetime=datetime)]) return _json_response([{"":_('Select ticket')}])
def add_ticket(request, quantity=1, redirect_to='satchmo_cart'): formdata = request.POST.copy() details = [] form1 = SelectEventDateForm(request.POST) form1.fields['datetime'].queryset = EventDate.objects.all() if form1.is_valid(): datetime = form1.cleaned_data['datetime'] form2 = SelectPlaceForm(request.POST) form2.fields['seat'].queryset = datetime.event.hallscheme.seats.all() if form2.is_valid(): seat = form2.cleaned_data['seat'] ticket = Ticket.objects.get(seat=seat, datetime=datetime) cart = Cart.objects.from_request(request, create=True) satchmo_cart_details_query.send( cart, product=ticket.product, quantity=quantity, details=details, request=request, form=formdata ) try: added_item = cart.add_item(ticket.product, number_added=1, details=details) added_item.quantity = 1 added_item.save() except CartAddProhibited, cap: return _product_error(request, ticket.product, cap.message) # got to here with no error, now send a signal so that listeners can also operate on this form. satchmo_cart_add_complete.send(cart, cart=cart, cartitem=added_item, product=ticket.product, request=request, form=formdata) satchmo_cart_changed.send(cart, cart=cart, request=request) if request.is_ajax(): data = { 'id': ticket.product.id, 'slug': seat.slug, 'name': ticket.product.translated_name(), 'item_id': added_item.id, 'item_qty': str(round_decimal(quantity, 2)), 'item_price': str(added_item.line_total) or "0.00", 'cart_count': str(round_decimal(cart.numItems, 2)), 'cart_total': str(round_decimal(cart.total, 2)), # Legacy result, for now 'results': _("Success"), } return _json_response(data) else: return redirect(redirect_to) else: return _json_response({'errors': form2.errors, 'results': _("Error")}, True)