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_city(request): if request.method == 'POST': form = SelectCityForm(request.POST) if form.is_valid(): city = form.cleaned_data['city'] return _json_response([{"":_('Hall of event')}] + [dict([[hall.id,hall.name]]) for hall in city.halls.all()]) return _json_response([{"":_('Hall of event')}])
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)
def flatblock_edit(request, pk, modelform_class=FlatBlockForm, permission_check=None, template_name='flatblocks/edit.html', success_url=None): flatblock = get_object_or_404(FlatBlock, pk=pk) if permission_check is not None: permcheck_result = permission_check(request, flatblock) if permcheck_result is False: return HttpResponseForbidden(_('You are not allowed to edit this flatblock')) if isinstance(permcheck_result, HttpResponse): return permcheck_result session_key = 'flatblock.origin.%d' % (int(pk), ) if request.method == 'POST': origin = request.session.get(session_key, request.META.get('HTTP_REFERER', '/')) form = modelform_class(request.POST, instance=flatblock) if form.is_valid(): instance = form.save(commit=False) instance.slug = flatblock.slug instance.save() try: del request.session[session_key] except KeyError: pass if request.is_ajax(): data = { 'id': flatblock.pk, 'slug': flatblock.slug, 'header': flatblock.header, 'content': flatblock.content, 'results': _("Success"), } return _json_response(data) else: redirect_to = success_url and success_url or origin return redirect(redirect_to) else: origin = request.META.get('HTTP_REFERER', '/') # Don't set origin to this view's url no matter what origin = origin == request.get_full_path() and request.session.get(session_key, '/') or origin form = modelform_class(instance=flatblock) request.session[session_key] = origin if request.is_ajax(): return _json_response({'errors': form.errors, 'results': _("Error")}, True) else: return render_to_response(template_name, { 'form': form, 'origin': origin, 'flatblock': flatblock, }, context_instance=RequestContext(request))
def remove_ticket(request): if not request.POST: return bad_or_missing(request, "Please use a POST request") success, cart, cartitem, errors = _set_quantity(request, force_delete=True) if request.is_ajax(): if errors: return _json_response({'errors': errors, 'results': _("Error")}, True) else: return _json_response({ 'cart_total': str(cart.total), 'cart_count': str(cart.numItems), 'item_id': cartitem.id, 'results': success, # Legacy })
def section_editor(request, hallscheme_id, template_name='localsite/hallscheme_editor.html'): hallscheme = HallScheme.objects.get(id=section_id) if request.method == 'POST': formset = SeatSectionInline(request.POST, instance=hallscheme) if formset.is_valid(): formset.save() data = {'results': _("Success")} return _json_response(data) else: data = {'errors': formset.errors} return _json_response(data) else: formset= SeatSectionInline(instance=hallscheme) ctx = RequestContext(request, { 'hallscheme': hallscheme, 'formset': formset, }) return render_to_response(template_name, context_instance=ctx)
def place_editor(request, section_id, template_name='localsite/place_editor.html'): section = SeatSection.objects.get(id=section_id) groupform = None if request.method == 'POST': formset = SeatLocationInline(request.POST, instance=section) if formset.is_valid(): formset.save() data = {'results': _("Success")} return _json_response(data) else: data = {'errors': formset.errors} return _json_response(data) else: formset= SeatLocationInline(instance=section) groupform = SelectSeatGroupForm() groupform.fields['group'].queryset = SeatGroup.objects.filter(hallscheme__sections=section) ctx = RequestContext(request, { 'section': section, 'formset': formset, 'groupform': groupform, }) return render_to_response(template_name, context_instance=ctx)
'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) else: return _json_response({'errors': form1.errors, 'results': _("Error")}, True) def remove_ticket(request): if not request.POST: return bad_or_missing(request, "Please use a POST request") success, cart, cartitem, errors = _set_quantity(request, force_delete=True) if request.is_ajax(): if errors: return _json_response({'errors': errors, 'results': _("Error")}, True) else: return _json_response({ 'cart_total': str(cart.total), 'cart_count': str(cart.numItems),