added groups will add a small file containing useful commands for adding users in it

This commit is contained in:
Yamozha 2021-03-15 23:59:19 +02:00
parent 1913e45328
commit d007ab0997
8 changed files with 82 additions and 70 deletions

Binary file not shown.

View File

@ -7,12 +7,19 @@ from django.conf import settings
def homePage(request): def homePage(request):
iter_var = 0 iter_var = 0
all_balance = [] all_balance = []
Cashier = False
Processor = False
try: try:
balObject = Balance.objects.filter(user=request.user.id) balObject = Balance.objects.filter(user=request.user.id)
userBalance = balObject.values("balanceValue") userBalance = balObject.values("balanceValue")
userQR = f"Name = {request.user.username}, Date Joined = {request.user.date_joined.date()}, ID = {request.user.id}, Balance = {userBalance[0]['balanceValue']}" userQR = f"Name = {request.user.username}, Date Joined = {request.user.date_joined.date()}, ID = {request.user.id}, Balance = {userBalance[0]['balanceValue']}"
if request.user.groups.filter(name='Cashier').exists():
Cashier = True
elif request.user.groups.filter(name='Processor').exists():
Processor = True
else:
pass
a = Balance.objects.all() a = Balance.objects.all()
for user in a: for user in a:
@ -20,6 +27,8 @@ def homePage(request):
print(f"{all_balance}") print(f"{all_balance}")
limited_coins = settings.ALL_COINS - sum(all_balance) limited_coins = settings.ALL_COINS - sum(all_balance)
context = { context = {
"isCashier": Cashier,
"isProcessor": Processor,
"userQR":userQR, "userQR":userQR,
"fullbalance": limited_coins, "fullbalance": limited_coins,
"currencyTotal": sum(all_balance), "currencyTotal": sum(all_balance),

View File

@ -42,7 +42,6 @@
{% block content %} {% block content %}
<div class="centered"> <div class="centered">
{% if request.user.is_superuser %}
{% if image %} {% if image %}
<form method="post"> <form method="post">
@ -83,12 +82,7 @@
</div> </div>
{% else %}
<h1>Unauthorized</h1>
</div>
{% endif %}
{% endblock %} {% endblock %}

View File

@ -34,13 +34,18 @@
{% endif %} {% endif %}
</li> </li>
{% if isProcessor %}
<li class="nav-item d-none d-md-block" > <li class="nav-item d-none d-md-block" >
{% if user.is_superuser %}
<a class="nav-link" href="/admin/">Админ</a> <a class="nav-link" href="/admin/">Админ</a>
</li>
{% endif %} {% endif %}
</li> {% if isCashier %}
<li class="nav-item d-none d-md-block">
<a class="nav-link" href="/remove_balance/">Каса</a>
</li>
{% endif %}
</ul> </ul>
<ul class="navbar-nav ml-auto" style="right: 0; left: auto;"> <ul class="navbar-nav ml-auto" style="right: 0; left: auto;">

View File

@ -4,26 +4,20 @@
{% block content %} {% block content %}
<div class="centered"> <div class="centered" style="text-align: center;">
{% if request.user.is_superuser %}
<p>Hello, {{ user.username }} !</p> <p>Hello, {{ user.username }} !</p><br>
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
<input name="user_instance" id="user_instance" placeholder="Pencho Slaveikov"><br> <input name="user_instance" id="user_instance" placeholder="Enter userID here"><br><br>
<input name="tokens" id="tokens" placeholder="523...">
<button type="submit">Upload</button> <input name="tokens" id="tokens" placeholder="Enter number of tokens to remove"><br><br>
<button type="submit" class="Buttons">Upload</button>
</form> </form>
{% else %}
<h1>Unauthorized</h1>
</div>
{% endif %}
{% endblock %} {% endblock %}

View File

@ -6,6 +6,8 @@ from django.shortcuts import render, redirect, get_object_or_404
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.contrib import messages from django.contrib import messages
from upload.models import Media from upload.models import Media
from django.core.exceptions import PermissionDenied
# need to make oauth facebook login # need to make oauth facebook login
class SignUpView(generic.CreateView): class SignUpView(generic.CreateView):
@ -37,23 +39,26 @@ def addToBalance(request):
return render(request,"addBalance.html") return render(request,"addBalance.html")
def removeBalance(request): def removeBalance(request):
balRem = None if request.user.groups.filter(name='Cashier').exists():
if request.method == "POST": balRem = None
tokens = request.POST["tokens"] if request.method == "POST":
tokens = int(tokens) * -1 tokens = request.POST["tokens"]
user_given = request.POST["user_instance"] tokens = int(tokens) * -1
try: user_given = request.POST["user_instance"]
user_instance = Balance.objects.get(user=user_given) try:
sum_balance = user_instance.balanceValue + tokens user_instance = Balance.objects.get(user=user_given)
balRem = Balance(balanceValue=sum_balance, user_id=user_instance) sum_balance = user_instance.balanceValue + tokens
balRem.save() balRem = Balance(balanceValue=sum_balance, user_id=user_instance)
print(balRem) balRem.save()
except Balance.DoesNotExist: print(balRem)
balRem = Balance(balanceValue=tokens, user_id=user_given) except Balance.DoesNotExist:
balRem.save() balRem = Balance(balanceValue=tokens, user_id=user_given)
return render(request,"getBalance.html", {"userBalance":balRem}) balRem.save()
return render(request,"getBalance.html", {"userBalance":balRem})
else:
return render(request,"removeBalance.html")
else: else:
return render(request,"removeBalance.html") raise PermissionDenied("Unauthorized")
def getBalance(request): def getBalance(request):
balObject = Balance.objects.filter(user=request.user.id) balObject = Balance.objects.filter(user=request.user.id)
@ -65,38 +70,43 @@ def getBalance(request):
return render(request,"getBalance.html", {"userBalance":userBalance} ) return render(request,"getBalance.html", {"userBalance":userBalance} )
def adminView(request): def adminView(request):
try:
latestPicture = Media.objects.filter(tokenized=None) if request.user.groups.filter(name='Processor').exists():
latestPicture, userId, date, time, is_video = latestPicture.values("image")[0]["image"], latestPicture.values("user_id")[0]["user_id"], latestPicture.values("date")[0]["date"], latestPicture.values("time")[0]["time"], latestPicture.values("is_video")[0]["is_video"]
username = User.objects.get(pk=userId)
if request.method == "POST": try:
if request.POST['isValid'] == "Valid": latestPicture = Media.objects.filter(tokenized=None)
try: latestPicture, userId, date, time, is_video = latestPicture.values("image")[0]["image"], latestPicture.values("user_id")[0]["user_id"], latestPicture.values("date")[0]["date"], latestPicture.values("time")[0]["time"], latestPicture.values("is_video")[0]["is_video"]
user_instance = Balance.objects.get(user=userId) username = User.objects.get(pk=userId)
sum_balance = 5 + user_instance.balanceValue
balAdd = Balance(balanceValue=sum_balance, user_id=user_instance) if request.method == "POST":
balAdd.save() if request.POST['isValid'] == "Valid":
print(balAdd) try:
except Balance.DoesNotExist: user_instance = Balance.objects.get(user=userId)
balAdd = Balance(balanceValue=5, user_id=userId) sum_balance = 5 + user_instance.balanceValue
balAdd.save() balAdd = Balance(balanceValue=sum_balance, user_id=user_instance)
balAdd.save()
print(balAdd)
except Balance.DoesNotExist:
balAdd = Balance(balanceValue=5, user_id=userId)
balAdd.save()
imageObj = Media.objects.get(image=latestPicture, user_id=userId)
imageObj.tokenized = True
imageObj.save()
return redirect("/admin/")
elif request.POST['isValid'] == "Invalid":
imageObj = Media.objects.get(image=latestPicture, user_id=userId)
imageObj.tokenized=False
imageObj.reason="Invalid"
imageObj.save()
return render(request, "adminView.html", {"time":time, "date":date,"image":latestPicture, "userId":userId, "username":username, "is_video":is_video})
imageObj = Media.objects.get(image=latestPicture, user_id=userId)
imageObj.tokenized = True
imageObj.save()
return redirect("/admin/") else:
elif request.POST['isValid'] == "Invalid": return render(request, "adminView")
imageObj = Media.objects.get(image=latestPicture, user_id=userId) return render(request, "adminView.html", {"time":time, "date":date,"image":latestPicture, "userId":userId, "username":username, "is_video":is_video})
imageObj.tokenized=False except IndexError:
imageObj.reason="Invalid" return render(request, "adminView.html")
imageObj.save() else:
return render(request, "adminView.html", {"time":time, "date":date,"image":latestPicture, "userId":userId, "username":username, "is_video":is_video}) raise PermissionDenied("Unauthorized")
else:
return render(request, "adminView")
return render(request, "adminView.html", {"time":time, "date":date,"image":latestPicture, "userId":userId, "username":username, "is_video":is_video})
except IndexError:
return render(request, "adminView.html")