Exemplo n.º 1
0
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([])
Exemplo n.º 2
0
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')}])
Exemplo n.º 3
0
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')}])
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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))
Exemplo n.º 6
0
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
            })
Exemplo n.º 7
0
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)
Exemplo n.º 8
0
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)
Exemplo n.º 9
0
                    '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),