thejagstudio's picture
Upload 1159 files
05dddec verified
from django.shortcuts import render
from django.http import HttpResponse
from api.models import Profile, Ticket, Event, Ticket, Department
import json
# Create your views here.
def index(request):
if request.user.is_authenticated:
if request.user.is_superuser:
totalAmount = 0
totalevent = []
departmentArr = {}
eventArr = {}
tickets = Ticket.objects.all()
events = Event.objects.all()
userCount = Profile.objects.all().count()
eventCount = events.count()
ticketCount = tickets.count()
ticketCountNotPaid = tickets.filter(isPaid=False).count()
totalPaidUsers = 0
users = []
for ticket in tickets:
if ticket.isPaid == True:
if ticket.userCount > 1:
if ticket.owner not in users:
users.append(ticket.owner)
totalPaidUsers = totalPaidUsers + 1
if ticket.owner1 not in users:
users.append(ticket.owner1)
totalPaidUsers = totalPaidUsers + 1
if ticket.owner2 not in users:
users.append(ticket.owner2)
totalPaidUsers = totalPaidUsers + 1
if ticket.owner3 not in users:
users.append(ticket.owner3)
totalPaidUsers = totalPaidUsers + 1
if ticket.owner4 not in users:
users.append(ticket.owner4)
totalPaidUsers = totalPaidUsers + 1
else:
if ticket.owner not in users:
users.append(ticket.owner)
totalPaidUsers = totalPaidUsers + 1
for ticket in tickets:
event = ticket.event
try:
if ticket.isPaid == True:
if event.isTeamEvent == True:
totalAmount = totalAmount + int((event.teamPrice).split("-")[0])
else:
totalAmount = totalAmount + int((event.price).split("-")[0])
except:
pass
if event.department.name not in departmentArr.keys():
if ticket.isPaid == True:
departmentArr[event.department.name] = [1, 0, 0]
else:
departmentArr[event.department.name] = [0, 0, 1]
else:
departmentArr[event.department.name] = [departmentArr[event.department.name][0] + 1, departmentArr[event.department.name][1],departmentArr[event.department.name][2]]
if event.name not in eventArr:
if ticket.isPaid == True:
try:
if event.isTeamEvent == True:
eventArr[event.name] = [1, int((event.teamPrice).split("-")[0]),event.name, event.posterImage,0]
else:
eventArr[event.name] = [1, int((event.price).split("-")[0]),event.name, event.posterImage,0]
except:
eventArr[event.name] = [1, int(event.price),event.name, event.posterImage,0]
else:
try:
if event.isTeamEvent == True:
eventArr[event.name] = [0, int((event.teamPrice).split("-")[0]),event.name, event.posterImage,1]
else:
eventArr[event.name] = [0, int((event.price).split("-")[0]),event.name, event.posterImage,1]
except:
eventArr[event.name] = [0, int(event.price),event.name, event.posterImage,1]
else:
if ticket.isPaid == True:
eventArr[event.name] = [eventArr[event.name][0] + 1,eventArr[event.name][1],event.name, event.posterImage,eventArr[event.name][4]]
else:
eventArr[event.name] = [eventArr[event.name][0],eventArr[event.name][1],event.name, event.posterImage,eventArr[event.name][4]+1]
for event in eventArr.keys():
eventpercentage = (eventArr[event][0]/ticketCount)*100
eventArr[event] = [eventArr[event][0], eventArr[event][1]*eventArr[event][0], eventArr[event][2], eventArr[event][3],eventpercentage,eventArr[event][4]]
eventArrValue = eventArr.values()
eventArrValue = sorted(eventArrValue,key=lambda x:x[1])[::-1]
for event in events:
if event.department.name not in departmentArr.keys():
departmentArr[event.department.name] = [0, 1, 0]
else:
departmentArr[event.department.name] = [departmentArr[event.department.name][0], departmentArr[event.department.name][1]+1,departmentArr[event.department.name][2]]
context = {
"departmentArr": zip(departmentArr.keys(), departmentArr.values()),
"eventArr": eventArrValue[:10],
"totalAmount": totalAmount ,
"userCount":userCount,
"eventCount":eventCount,
"ticketCount":ticketCount,
"ticketCountNotPaid":ticketCountNotPaid,
"totalPaidUsers":totalPaidUsers,
"ticketsPaid": ticketCount-ticketCountNotPaid,
}
return render(request, "dashboard.html", context)
else:
return render(request, "404.html")
return render(request, "404.html")
def data(request):
if request.user.is_authenticated:
if request.user.is_superuser:
departments = Department.objects.all()
context ={"departmentArr":departments}
return render(request, "admintable.html", context)
else:
return render(request, "404.html")
return render(request, "404.html")
def events(request):
if request.user.is_authenticated:
if request.user.is_superuser:
eventArr = {}
tickets = Ticket.objects.all()
ticketCount = tickets.count()
for ticket in tickets:
event = ticket.event
if event.name not in eventArr:
if ticket.isPaid == True:
try:
if event.isTeamEvent == True:
eventArr[event.name] = [1, int((event.teamPrice).split("-")[0]),event.name, event.posterImage,0]
else:
eventArr[event.name] = [1, int((event.price).split("-")[0]),event.name, event.posterImage,0]
except:
eventArr[event.name] = [1, int(event.price),event.name, event.posterImage,0]
else:
try:
if event.isTeamEvent == True:
eventArr[event.name] = [0, int((event.teamPrice).split("-")[0]),event.name, event.posterImage,1]
else:
eventArr[event.name] = [0, int((event.price).split("-")[0]),event.name, event.posterImage,1]
except:
eventArr[event.name] = [0, int(event.price),event.name, event.posterImage,1]
else:
if ticket.isPaid == True:
eventArr[event.name] = [eventArr[event.name][0] + 1,eventArr[event.name][1],event.name, event.posterImage,eventArr[event.name][4]]
else:
eventArr[event.name] = [eventArr[event.name][0],eventArr[event.name][1],event.name, event.posterImage,eventArr[event.name][4]+1]
for event in eventArr.keys():
eventpercentage = (eventArr[event][0]/ticketCount)*100
eventArr[event] = [eventArr[event][0], eventArr[event][1]*eventArr[event][0], eventArr[event][2], eventArr[event][3],eventpercentage,eventArr[event][4]]
eventArrValue = eventArr.values()
eventArrValue = sorted(eventArrValue,key=lambda x:x[1])[::-1]
context = {"eventArr": eventArrValue}
return render(request, "admin-events-list.html", context)
else:
return render(request, "404.html")
return render(request, "404.html")
def tableData(request):
if request.user.is_authenticated:
if request.user.is_superuser:
dataType = request.GET.get("type")
if dataType == "all":
users = Ticket.objects.all()
userArr = []
for i in users:
paid = "No"
if i.isPaid == True:
paid = "Yes"
userArr.append(["T"+str(i.id),i.owner.user.first_name,i.owner.user.username,i.owner.phone,i.event.department.name,i.event.name,paid,i.owner.college])
return HttpResponse(json.dumps({"users":userArr}),content_type="application/json")
if dataType == "event":
departmentName = request.GET.get("department")
events = Event.objects.filter(department=Department.objects.filter(name=departmentName).first()).all()
eventArr = []
for i in events:
eventArr.append(i.name)
users = Ticket.objects.filter(event__in=events).all()
userArr = []
for i in users:
paid = "No"
if i.isPaid == True:
paid = "Yes"
userArr.append(["T"+str(i.id),i.owner.user.first_name,i.owner.user.username,i.owner.phone,i.event.department.name,i.event.name,paid,i.owner.college])
return HttpResponse(json.dumps({"events":eventArr,"users":userArr}),content_type="application/json")
if dataType == "final":
eventName = request.GET.get("event")
users = Ticket.objects.filter(event=Event.objects.filter(name=eventName).first()).all()
userArr = []
for i in users:
paid = "No"
if i.isPaid == True:
paid = "Yes"
userArr.append(["T"+str(i.id),i.owner.user.first_name,i.owner.user.username,i.owner.phone,i.event.department.name,i.event.name,paid,i.owner.college])
return HttpResponse(json.dumps({"users":userArr}),content_type="application/json")
else:
return HttpResponse(json.dumps({"data":[]}),content_type="application/json")
else:
return render(request, "404.html")
return render(request, "404.html")
def singin(request):
return HttpResponse("Admin Login")