Exemple #1
0
def taps(request):
    taptypes = TapType.objects.filter(active=True).all()
    taptypes = taptypes.extra(
        select={'price_is_null': 'price IS NULL'},
        order_by=['price_is_null', 'name']
    )
    users = my_custom_sql()

    if request.method == 'POST':
        try:
            user_id = int(request.POST['userid'])
        except:
            messages.error(request, "Invalid user id")
            return redirect('tapmanager:taps')
        if Tap.objects.filter(
                maker=request.user,
                user=user_id,
                date__gt=timezone.now()
                - datetime.timedelta(seconds=10)).count() > 0:
            messages.error(request, "Too frequent, wait 10s")
            return redirect('tapmanager:taps')
        # Checkataan kaikki taptypet, fiksuin tapa mita keksin
        added_funds = False
        for taptype in taptypes:
            amount = request.POST["type-" + str(taptype.id)]
            # Cheking that we can convert amount to decimal
            if amount:
                try:
                    amount = decimal.Decimal(float(amount))
                except:
                    messages.error(
                        request, 'Invalid value in "' +
                        taptype.name + '", didnt add that.')
                    amount = None
            # Jos amountti loyty ja on oikeessa muodossa
            if amount and amount <= 0:
                messages.error(
                    request, 'Amount <= 0 in "' +
                    taptype.name + '", didint add that.')
            elif amount:
                user = get_object_or_404(User, pk=user_id)
                t = Tap(
                    user=user, maker=request.user, taptype=taptype,
                    amount=amount, active=True)
                t.save()
                added_funds = True
        if added_funds:
            messages.success(request, "Addeds funds succesfully")
        else:
            messages.error(request, "Nothing added")
        return redirect('tapmanager:taps')
    return render(
        request, "tapmanager/taps.html",
        {'users': users, 'taptypes': taptypes,
            'messages': messages.get_messages(request)})
Exemple #2
0
def tapadmin(request):
    form = AdminForm(request.POST or None)
    if request.POST and form.is_valid():
        amount = form.cleaned_data['amount']
        maker = request.user
        user = form.cleaned_data['users']
        t = Tap(
            taptype=None, user=user, maker=maker, active=True, amount=-amount)
        t.save()
        return redirect("tapmanager:tapadmin")
    return render(request, "tapmanager/admin.html", {'form': form})