Added feature to transfer money to another account + some minor improvements
This commit is contained in:
parent
2bab323b86
commit
8702233934
11 changed files with 164 additions and 30 deletions
42
app/views.py
42
app/views.py
|
@ -50,7 +50,6 @@ def login_page(request):
|
|||
"user_list": userlist
|
||||
})
|
||||
|
||||
|
||||
@login_required
|
||||
def index(request):
|
||||
context = {
|
||||
|
@ -58,7 +57,6 @@ def index(request):
|
|||
}
|
||||
return render(request, "index.html", context)
|
||||
|
||||
|
||||
@login_required
|
||||
def history(request):
|
||||
context = {
|
||||
|
@ -66,7 +64,6 @@ def history(request):
|
|||
}
|
||||
return render(request, "history.html", context)
|
||||
|
||||
|
||||
@login_required
|
||||
def order(request, drinkid):
|
||||
try:
|
||||
|
@ -76,7 +73,6 @@ def order(request, drinkid):
|
|||
except Drink.DoesNotExist:
|
||||
return HttpResponseRedirect("/")
|
||||
|
||||
|
||||
@login_required
|
||||
def deposit(request):
|
||||
return render(request, "deposit.html", {})
|
||||
|
@ -91,17 +87,19 @@ def statistics(request):
|
|||
}
|
||||
return render(request, "statistics.html", context)
|
||||
|
||||
@login_required
|
||||
def transfer(request):
|
||||
userlist = get_user_model().objects.filter(hide_from_userlist=False).filter(is_active=True).order_by("username")
|
||||
return render(request, "transfer.html", {"user_list": userlist})
|
||||
|
||||
@login_required
|
||||
def supply(request):
|
||||
return render(request, "supply.html")
|
||||
|
||||
|
||||
@login_required
|
||||
def redirect_home(request):
|
||||
return HttpResponseRedirect("/")
|
||||
|
||||
|
||||
# API for XHR requests #
|
||||
|
||||
@login_required
|
||||
|
@ -123,7 +121,6 @@ def api_order_drink(request):
|
|||
print(f"An exception occured while processing an order: User: {user.username} - Exception: {e}", file=sys.stderr)
|
||||
return HttpResponse(b"", status=500)
|
||||
|
||||
|
||||
@login_required
|
||||
def api_deposit(request):
|
||||
# check request -> deposit
|
||||
|
@ -140,9 +137,38 @@ def api_deposit(request):
|
|||
return HttpResponse("success", status=200)
|
||||
else: raise Exception("Deposit amount too big or small.")
|
||||
except Exception as e:
|
||||
print(f"An exception occured while processing a transaction: User: {user.username} - Exception: {e}", file=sys.stderr)
|
||||
print(f"An exception occured while processing a deposit transaction: User: {user.username} - Exception: {e}", file=sys.stderr)
|
||||
return HttpResponse(b"", status=500)
|
||||
|
||||
@login_required
|
||||
def api_transfer(request):
|
||||
# check request -> transfer
|
||||
user = request.user
|
||||
try:
|
||||
recipient = get_user_model().objects.get(id=int(request.POST["recipientuser"]))
|
||||
if recipient.id == user.id:
|
||||
raise Exception(f"User {user.username} tried to transfer to themself.")
|
||||
amount = decimal.Decimal(request.POST["transferamount"])
|
||||
if 0.00 < amount <= user.balance:
|
||||
print("sender:", user.username)
|
||||
print("recipient:", recipient.username)
|
||||
print("amount:", amount)
|
||||
# create transaction
|
||||
RegisterTransaction.objects.create(
|
||||
transaction_sum=-amount,
|
||||
comment=f"Transfer to {recipient.username}",
|
||||
is_transfer=True,
|
||||
user=user)
|
||||
RegisterTransaction.objects.create(
|
||||
transaction_sum=amount,
|
||||
comment=f"Transfer from {user.username}",
|
||||
is_transfer=True,
|
||||
user=recipient)
|
||||
return HttpResponse("success", status=200)
|
||||
else: raise Exception("Transfer amount too big or small.")
|
||||
except Exception as e:
|
||||
print(f"An exception occured while processing a transfer transaction: User: {user.username} - Exception: {e}", file=sys.stderr)
|
||||
return HttpResponse(b"", status=500)
|
||||
|
||||
@login_required
|
||||
def api_supply(request):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue