added scary message for the admins, added transactions, overall @vassdeniss needs to fix the web design and we're set
This commit is contained in:
parent
d007ab0997
commit
786a4e4902
Binary file not shown.
Binary file not shown.
@ -10,38 +10,39 @@ def homePage(request):
|
|||||||
Cashier = False
|
Cashier = False
|
||||||
Processor = False
|
Processor = False
|
||||||
|
|
||||||
|
|
||||||
|
balObject = Balance.objects.filter(user=request.user.id)
|
||||||
|
userBalance = balObject.values("balanceValue")
|
||||||
try:
|
try:
|
||||||
balObject = Balance.objects.filter(user=request.user.id)
|
userBalance = userBalance[0]['balanceValue']
|
||||||
userBalance = balObject.values("balanceValue")
|
except IndexError:
|
||||||
userQR = f"Name = {request.user.username}, Date Joined = {request.user.date_joined.date()}, ID = {request.user.id}, Balance = {userBalance[0]['balanceValue']}"
|
userBalance = None
|
||||||
if request.user.groups.filter(name='Cashier').exists():
|
if request.user.groups.filter(name='Cashier').exists():
|
||||||
Cashier = True
|
Cashier = True
|
||||||
elif request.user.groups.filter(name='Processor').exists():
|
elif request.user.groups.filter(name='Processor').exists():
|
||||||
Processor = True
|
Processor = True
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
a = Balance.objects.all()
|
if request.user.is_authenticated:
|
||||||
|
userQR = f"Name = {request.user.username}, Date Joined = {request.user.date_joined.date()}, ID = {request.user.id}, isCashier={Cashier}, isProcessor={Processor}, Balance = {userBalance}"
|
||||||
|
else:
|
||||||
|
userQR=None
|
||||||
|
a = Balance.objects.all()
|
||||||
|
|
||||||
for user in a:
|
for user in a:
|
||||||
all_balance.append(user.balanceValue)
|
all_balance.append(user.balanceValue)
|
||||||
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,
|
"isCashier": Cashier,
|
||||||
"isProcessor": Processor,
|
"isProcessor": Processor,
|
||||||
"userQR":userQR,
|
"userQR":userQR,
|
||||||
"fullbalance": limited_coins,
|
"fullbalance": limited_coins,
|
||||||
"currencyTotal": sum(all_balance),
|
"currencyTotal": sum(all_balance),
|
||||||
"userBalance": userBalance[0]["balanceValue"]
|
"userBalance": userBalance
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return render(request, "home.html", context)
|
return render(request, "home.html", context)
|
||||||
|
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
|
|
||||||
context = {
|
|
||||||
"currencyTotal":e
|
|
||||||
}
|
|
||||||
return render(request, "home.html", context)
|
|
BIN
reValuate/media/1/PngItem_1280311_6mFEE04.png
Normal file
BIN
reValuate/media/1/PngItem_1280311_6mFEE04.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 102 KiB |
BIN
reValuate/media/5/pexels-mali-maeder-802221.jpg
Normal file
BIN
reValuate/media/5/pexels-mali-maeder-802221.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 747 KiB |
@ -69,7 +69,7 @@
|
|||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|
||||||
<h1>Congratulations, there is no work left</h1>
|
<h1>Няма повече работа!</h1>
|
||||||
<div class="choiceButtons">
|
<div class="choiceButtons">
|
||||||
<h1 class="emoji">🎉</h1>
|
<h1 class="emoji">🎉</h1>
|
||||||
<h1 class="emoji">🥳</h1>
|
<h1 class="emoji">🥳</h1>
|
||||||
|
@ -29,16 +29,11 @@
|
|||||||
<ul class="navbar-nav">
|
<ul class="navbar-nav">
|
||||||
<li class="nav-item d-none d-md-block" >
|
<li class="nav-item d-none d-md-block" >
|
||||||
|
|
||||||
{% if user.is_authenticated %}
|
|
||||||
<a class="nav-link" href="/upload/">Качи</a>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
<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>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
@ -2,12 +2,72 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
|
|
||||||
{% block title %}Home{% endblock %}
|
{% block title %}Home{% endblock %}
|
||||||
|
{% block optionalParams%}
|
||||||
|
<style>
|
||||||
|
.checkmark__circle {
|
||||||
|
stroke-dasharray: 166;
|
||||||
|
stroke-dashoffset: 166;
|
||||||
|
stroke-width: 2;
|
||||||
|
stroke-miterlimit: 10;
|
||||||
|
stroke: #7ac142;
|
||||||
|
fill: none;
|
||||||
|
animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkmark {
|
||||||
|
width: 56px;
|
||||||
|
height: 56px;
|
||||||
|
border-radius: 50%;
|
||||||
|
display: block;
|
||||||
|
stroke-width: 2;
|
||||||
|
stroke: #fff;
|
||||||
|
stroke-miterlimit: 10;
|
||||||
|
margin: 10% auto;
|
||||||
|
box-shadow: inset 0px 0px 0px #7ac142;
|
||||||
|
animation: fill .4s ease-in-out .4s forwards, scale .3s ease-in-out .9s both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkmark__check {
|
||||||
|
transform-origin: 50% 50%;
|
||||||
|
stroke-dasharray: 48;
|
||||||
|
stroke-dashoffset: 48;
|
||||||
|
animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes stroke {
|
||||||
|
100% {
|
||||||
|
stroke-dashoffset: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@keyframes scale {
|
||||||
|
0%, 100% {
|
||||||
|
transform: none;
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
transform: scale3d(1.1, 1.1, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@keyframes fill {
|
||||||
|
100% {
|
||||||
|
box-shadow: inset 0px 0px 0px 30px #7ac142;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
<div class="centered" style="text-align: center;">
|
||||||
|
|
||||||
{% if user.is_authenticated %}
|
{% if user.is_authenticated %}
|
||||||
Hi {{ user.username }}!
|
{% if userBalance %}
|
||||||
{{ userBalance}}
|
<h1 style="color:#7ac142;">Транзакцията е записана успешно!</h1>
|
||||||
|
Кликни <a style="color:#7ac142;"href="/remove_balance/">тук</a>, ако искаш да запишеш нова!
|
||||||
|
<svg class="checkmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52">
|
||||||
|
<circle class="checkmark__circle" cx="26" cy="26" r="25" fill="none"/>
|
||||||
|
<path class="checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"/>
|
||||||
|
</svg>
|
||||||
|
{% endif %}
|
||||||
<div>
|
<div>
|
||||||
{{ qr_code }}
|
{{ qr_code }}
|
||||||
</div>
|
</div>
|
||||||
@ -15,5 +75,5 @@
|
|||||||
<p>You are not logged in</p>
|
<p>You are not logged in</p>
|
||||||
<a href="{% url 'login' %}">Log In</a>
|
<a href="{% url 'login' %}">Log In</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -37,8 +37,8 @@
|
|||||||
|
|
||||||
{% if isProcessor %}
|
{% if isProcessor %}
|
||||||
<li class="nav-item d-none d-md-block" >
|
<li class="nav-item d-none d-md-block" >
|
||||||
<a class="nav-link" href="/admin/">Админ</a>
|
<a class="nav-link" href="/admin/">Админ</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if isCashier %}
|
{% if isCashier %}
|
||||||
@ -101,11 +101,11 @@
|
|||||||
|
|
||||||
<img src="static/home/images/white.png" width="200" height="200">
|
<img src="static/home/images/white.png" width="200" height="200">
|
||||||
<h1><strong>reValuate</strong><br />
|
<h1><strong>reValuate</strong><br />
|
||||||
</h1>
|
</h1><br>
|
||||||
{% if user.is_authenticated %}
|
{% if user.is_authenticated %}
|
||||||
<p>Здравей, {{ user.username }}!</p>
|
<h2>Здравей, {{ user.username }}!</h2>
|
||||||
{% if userBalance %}
|
{% if userBalance %}
|
||||||
<br><p>Баланса ти е: {{ userBalance }} reCoins</p>
|
<br><h2 >Балансът ти е: <span style="color:rgb(0, 85, 19);">{{ userBalance }}</span> reCoins</h2>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<ul class="actions special">
|
<ul class="actions special">
|
||||||
<li><a href="/upload/" class="button scrolly">Качи!</a></li>
|
<li><a href="/upload/" class="button scrolly">Качи!</a></li>
|
||||||
@ -175,28 +175,12 @@
|
|||||||
<section id="three" class="main style1 special">
|
<section id="three" class="main style1 special">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<header class="major">
|
<header class="major">
|
||||||
<h2>Други дейности по проекта</h2>
|
<h2>Защо да участвам? </h2>
|
||||||
</header>
|
</header>
|
||||||
<div class="row gtr-150">
|
|
||||||
<div class="col-6 col-12-large">
|
<div style="text-align: center;">
|
||||||
<span class="image fit"><img src="images/logo_blue.png" alt="" /></span>
|
|
||||||
<h3>Популяризация:</h3>
|
|
||||||
<ul><br>
|
|
||||||
<li>информация на сайта на проекта/ на училището</li><br>
|
|
||||||
<li>информация на страницата на училището в соц.мрежи</li><br>
|
|
||||||
<li>презентации по класове</li><br>
|
|
||||||
<li>плакати на ключови места в училище</li><br>
|
|
||||||
<li>стените на класните стаи в google classroom</li><br>
|
|
||||||
<li>тик- ток видеа с образователна и забавна цел</li><br>
|
|
||||||
</ul>
|
|
||||||
<ul class="actions special">
|
|
||||||
<p></p>
|
|
||||||
<!-- <li><a href="" class="button">More</a></li> -->
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="col-6 col-12-large">
|
|
||||||
<span class="image fit"><img src="images/logo_green.png" alt="" /></span>
|
<span class="image fit"><img src="images/logo_green.png" alt="" /></span>
|
||||||
<h3>Защо да участвам? </h3><br>
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>награден фонд за участие в проекта: напитки, вафли, солети и голяма награда ваучер за пазаруване от голяма верига. Наградите се разпределят спрямо натрупаните точки в сайта. </li><br>
|
<li>награден фонд за участие в проекта: напитки, вафли, солети и голяма награда ваучер за пазаруване от голяма верига. Наградите се разпределят спрямо натрупаните точки в сайта. </li><br>
|
||||||
<li>Сертификат за участие в извънкласни дейности от името на училището при натрупани минимум 30 точки.</li><br>
|
<li>Сертификат за участие в извънкласни дейности от името на училището при натрупани минимум 30 точки.</li><br>
|
||||||
|
@ -8,13 +8,15 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p>Hello, {{ user.username }} !</p><br>
|
<p>Здравей, {{ 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="Enter userID here"><br><br>
|
<input name="user_instance" id="user_instance" placeholder="1(userID)"><br><br>
|
||||||
|
|
||||||
|
<input name="tokens" id="tokens" placeholder="123 (reCoins)"><br><br>
|
||||||
|
<input name="item" id="item" placeholder="e.g. Вафла"><br><br>
|
||||||
|
|
||||||
<input name="tokens" id="tokens" placeholder="Enter number of tokens to remove"><br><br>
|
|
||||||
<button type="submit" class="Buttons">Upload</button>
|
<button type="submit" class="Buttons">Upload</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
@ -51,12 +51,18 @@
|
|||||||
box-shadow: inset 0px 0px 0px 30px #7ac142;
|
box-shadow: inset 0px 0px 0px 30px #7ac142;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
{% if warning %}
|
||||||
|
<div class="alert alert alert-danger" role="alert">Ако злоупотребяваш с правата си за сайта ще бъдеш баннат. Big Brother is watching you.</div>
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<div class="centered" style="text-align: center;">
|
<div class="centered" style="text-align: center;">
|
||||||
{% if user.is_authenticated %}
|
{% if user.is_authenticated %}
|
||||||
{% if img_obj %}
|
{% if img_obj %}
|
||||||
|
Binary file not shown.
Binary file not shown.
18
reValuate/upload/migrations/0024_media_managed_by.py
Normal file
18
reValuate/upload/migrations/0024_media_managed_by.py
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 3.1.6 on 2021-03-16 12:00
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('upload', '0023_auto_20210315_1901'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='media',
|
||||||
|
name='managed_by',
|
||||||
|
field=models.CharField(blank=True, default=None, max_length=30, null=True),
|
||||||
|
),
|
||||||
|
]
|
Binary file not shown.
@ -26,6 +26,7 @@ class Media(models.Model):
|
|||||||
reason = models.CharField(max_length=120)
|
reason = models.CharField(max_length=120)
|
||||||
date = models.DateField(default=date.today)
|
date = models.DateField(default=date.today)
|
||||||
time = models.TimeField(auto_now=True)
|
time = models.TimeField(auto_now=True)
|
||||||
|
managed_by = models.CharField(max_length=30, blank=True, null=True, default=None, )
|
||||||
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -24,6 +24,11 @@ def uploadContent(request):
|
|||||||
|
|
||||||
def imageUpload(request):
|
def imageUpload(request):
|
||||||
"""Process images uploaded by users"""
|
"""Process images uploaded by users"""
|
||||||
|
|
||||||
|
if request.user.groups.filter(name='Processor').exists():
|
||||||
|
warning = True
|
||||||
|
else:
|
||||||
|
warning = False
|
||||||
|
|
||||||
print(request.user.id)
|
print(request.user.id)
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
@ -46,7 +51,7 @@ def imageUpload(request):
|
|||||||
video_obj.user = request.user
|
video_obj.user = request.user
|
||||||
video_obj.is_video = True
|
video_obj.is_video = True
|
||||||
form.save()
|
form.save()
|
||||||
return render(request, 'uploadImage.html', {'form': form, 'img_obj': video_obj})
|
return render(request, 'uploadImage.html', {'form': form, 'img_obj': video_obj, 'warning':warning})
|
||||||
else:
|
else:
|
||||||
raise Exception("What")
|
raise Exception("What")
|
||||||
else:
|
else:
|
||||||
@ -54,7 +59,7 @@ def imageUpload(request):
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
form = ImageForm()
|
form = ImageForm()
|
||||||
return render(request, 'uploadImage.html', {'form': form})
|
return render(request, 'uploadImage.html', {'form': form, 'warning':warning})
|
||||||
|
|
||||||
# def videoUpload(request):
|
# def videoUpload(request):
|
||||||
# """Process videos uploaded by users"""
|
# """Process videos uploaded by users"""
|
||||||
|
Binary file not shown.
Binary file not shown.
24
reValuate/users/migrations/0008_transaction.py
Normal file
24
reValuate/users/migrations/0008_transaction.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# Generated by Django 3.1.6 on 2021-03-16 12:06
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('auth', '0012_alter_user_first_name_max_length'),
|
||||||
|
('users', '0007_balance'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Transaction',
|
||||||
|
fields=[
|
||||||
|
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='auth.user')),
|
||||||
|
('date', models.DateField(default=datetime.date.today)),
|
||||||
|
('item', models.CharField(blank=True, default=None, max_length=30, null=True)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
]
|
23
reValuate/users/migrations/0009_auto_20210316_1408.py
Normal file
23
reValuate/users/migrations/0009_auto_20210316_1408.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# Generated by Django 3.1.6 on 2021-03-16 12:08
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('users', '0008_transaction'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RenameField(
|
||||||
|
model_name='transaction',
|
||||||
|
old_name='user',
|
||||||
|
new_name='client',
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='transaction',
|
||||||
|
name='cashier',
|
||||||
|
field=models.CharField(blank=True, default=None, max_length=30, null=True),
|
||||||
|
),
|
||||||
|
]
|
27
reValuate/users/migrations/0010_auto_20210316_1415.py
Normal file
27
reValuate/users/migrations/0010_auto_20210316_1415.py
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# Generated by Django 3.1.6 on 2021-03-16 12:15
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
('users', '0009_auto_20210316_1408'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='transaction',
|
||||||
|
name='cashier',
|
||||||
|
field=models.OneToOneField(default=None, on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='auth.user'),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='transaction',
|
||||||
|
name='client',
|
||||||
|
field=models.CharField(blank=True, default=None, max_length=30, null=True),
|
||||||
|
),
|
||||||
|
]
|
21
reValuate/users/migrations/0011_auto_20210316_1420.py
Normal file
21
reValuate/users/migrations/0011_auto_20210316_1420.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Generated by Django 3.1.6 on 2021-03-16 12:20
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
('users', '0010_auto_20210316_1415'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='transaction',
|
||||||
|
name='cashier',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL),
|
||||||
|
),
|
||||||
|
]
|
27
reValuate/users/migrations/0012_auto_20210316_1421.py
Normal file
27
reValuate/users/migrations/0012_auto_20210316_1421.py
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# Generated by Django 3.1.6 on 2021-03-16 12:21
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
('users', '0011_auto_20210316_1420'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='transaction',
|
||||||
|
name='id',
|
||||||
|
field=models.AutoField(auto_created=True, default=None, primary_key=True, serialize=False, verbose_name='ID'),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='transaction',
|
||||||
|
name='cashier',
|
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
|
||||||
|
),
|
||||||
|
]
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,7 +1,14 @@
|
|||||||
from django.db import models
|
from django.db import models
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
|
from datetime import date
|
||||||
|
|
||||||
class Balance(models.Model):
|
class Balance(models.Model):
|
||||||
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
|
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
|
||||||
balanceValue = models.IntegerField(default=0)
|
balanceValue = models.IntegerField(default=0)
|
||||||
|
|
||||||
|
class Transaction(models.Model):
|
||||||
|
cashier = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||||
|
client = models.CharField(max_length=30, blank=True, null=True, default=None, )
|
||||||
|
date = models.DateField(default=date.today)
|
||||||
|
item = models.CharField(max_length=30, blank=True, null=True, default=None, )
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
from django.contrib.auth.forms import UserCreationForm
|
from django.contrib.auth.forms import UserCreationForm
|
||||||
from django.urls import reverse_lazy
|
from django.urls import reverse_lazy
|
||||||
from django.views import generic
|
from django.views import generic
|
||||||
from .models import Balance
|
from .models import Balance, Transaction
|
||||||
from django.shortcuts import render, redirect, get_object_or_404
|
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
|
||||||
@ -30,7 +30,7 @@ def addToBalance(request):
|
|||||||
print(balAdd)
|
print(balAdd)
|
||||||
return render(request, "addBalance.html", {"message": f"Added balance to user {user_given}"})
|
return render(request, "addBalance.html", {"message": f"Added balance to user {user_given}"})
|
||||||
except Balance.DoesNotExist:
|
except Balance.DoesNotExist:
|
||||||
balAdd = Balance(balanceValue=tokens, user_id=user_given)
|
balAdd = Balance(balanceValue=kens, user_id=user_given)
|
||||||
balAdd.save()
|
balAdd.save()
|
||||||
return render(request, "addBalance.html", {"message": f"Created and added tokens to {user_given}'s token account"})
|
return render(request, "addBalance.html", {"message": f"Created and added tokens to {user_given}'s token account"})
|
||||||
|
|
||||||
@ -45,7 +45,10 @@ def removeBalance(request):
|
|||||||
tokens = request.POST["tokens"]
|
tokens = request.POST["tokens"]
|
||||||
tokens = int(tokens) * -1
|
tokens = int(tokens) * -1
|
||||||
user_given = request.POST["user_instance"]
|
user_given = request.POST["user_instance"]
|
||||||
|
item = request.POST["item"]
|
||||||
|
user_taken = request.user
|
||||||
try:
|
try:
|
||||||
|
transAdd = Transaction.objects.create(client=user_given, cashier=user_taken, item=item)
|
||||||
user_instance = Balance.objects.get(user=user_given)
|
user_instance = Balance.objects.get(user=user_given)
|
||||||
sum_balance = user_instance.balanceValue + tokens
|
sum_balance = user_instance.balanceValue + tokens
|
||||||
balRem = Balance(balanceValue=sum_balance, user_id=user_instance)
|
balRem = Balance(balanceValue=sum_balance, user_id=user_instance)
|
||||||
@ -92,6 +95,8 @@ def adminView(request):
|
|||||||
|
|
||||||
imageObj = Media.objects.get(image=latestPicture, user_id=userId)
|
imageObj = Media.objects.get(image=latestPicture, user_id=userId)
|
||||||
imageObj.tokenized = True
|
imageObj.tokenized = True
|
||||||
|
imageObj.managed_by = request.user.username
|
||||||
|
|
||||||
imageObj.save()
|
imageObj.save()
|
||||||
|
|
||||||
return redirect("/admin/")
|
return redirect("/admin/")
|
||||||
@ -99,6 +104,7 @@ def adminView(request):
|
|||||||
imageObj = Media.objects.get(image=latestPicture, user_id=userId)
|
imageObj = Media.objects.get(image=latestPicture, user_id=userId)
|
||||||
imageObj.tokenized=False
|
imageObj.tokenized=False
|
||||||
imageObj.reason="Invalid"
|
imageObj.reason="Invalid"
|
||||||
|
imageObj.managed_by = request.user.username
|
||||||
imageObj.save()
|
imageObj.save()
|
||||||
return render(request, "adminView.html", {"time":time, "date":date,"image":latestPicture, "userId":userId, "username":username, "is_video":is_video})
|
return render(request, "adminView.html", {"time":time, "date":date,"image":latestPicture, "userId":userId, "username":username, "is_video":is_video})
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user