Spaces:
Sleeping
Sleeping
| from django.shortcuts import render,redirect | |
| from django.http import HttpResponse | |
| from django.contrib.auth import authenticate, login,logout | |
| from django.contrib.auth.models import User | |
| from django.db.models import Q | |
| from django.views.decorators.csrf import csrf_exempt | |
| from api.models import Profile, Department, Event, Ticket, Notifications | |
| import re | |
| import requests | |
| import random | |
| import json | |
| import uuid | |
| import smtplib | |
| from email.mime.multipart import MIMEMultipart | |
| from email.mime.text import MIMEText | |
| # sender = "xenesis232K@ldrp.ac.in" | |
| # password = "Auabs@904" | |
| # server = smtplib.SMTP('smtp.gmail.com', 587) | |
| # server.starttls() | |
| # server.login(sender, password) | |
| # create a function | |
| def emailSender(reciver,template,otp): | |
| # global server | |
| # msg = MIMEMultipart('alternative') | |
| # msg['Subject'] = "Link" | |
| # msg['From'] = sender | |
| # msg['To'] = reciver | |
| # f = open(template, "r", encoding="utf-8") | |
| # html = f.read() | |
| # html = html.replace("%%OTP1%%", otp[0]) | |
| # html = html.replace("%%OTP2%%", otp[1]) | |
| # html = html.replace("%%OTP3%%", otp[2]) | |
| # html = html.replace("%%OTP4%%", otp[3]) | |
| # part = MIMEText(html, 'html') | |
| # msg.attach(part) | |
| # server.sendmail(sender, reciver, msg.as_string()) | |
| pass | |
| def home(request): | |
| if request.user != None: | |
| try: | |
| profile = Profile.objects.filter(user=request.user).first() | |
| userName = request.user.first_name | |
| isUser = True | |
| isVolunteer = profile.isCampainVolunteer | |
| profilePic = profile.profilePic | |
| except: | |
| userName = "Anonymous" | |
| isUser = False | |
| isVolunteer = False | |
| profilePic = "0001" | |
| else: | |
| isUser = False | |
| isVolunteer = False | |
| userName = "" | |
| profilePic = "0001" | |
| departments = Department.objects.all() | |
| departmentArr = [] | |
| for department in departments: | |
| departmentArr.append([department.name, department.posterImage]) | |
| events = Event.objects.filter(department=Department.objects.filter(name="Computer Engineering").first()).all().order_by('-name') | |
| eventArr = [] | |
| impEvent = [] | |
| for event in events: | |
| if event.name != "X - Motion Game Mania": | |
| eventArr.append([event.name, (event.price).strip(), event.description, event.tagline,event.posterImage, (event.name).replace(" ", "-").replace("---", ":"),event.isTeamEvent,event.teamPrice]) | |
| else: | |
| impEvent = [[event.name, (event.price).strip(), event.description, event.tagline,event.posterImage, (event.name).replace(" ", "-").replace("---", ":"),event.isTeamEvent,event.teamPrice]] | |
| impEvent.extend(eventArr[:10]) | |
| context = { | |
| "departmentArr": departmentArr[:10], | |
| "eventArr": impEvent, | |
| "isUser" : isUser, | |
| "isVolunteer" : isVolunteer, | |
| "userName" : userName, | |
| "profilePic" : profilePic | |
| } | |
| return render(request, "index.html", context) | |
| # def events(request): | |
| # if request.user != None: | |
| # try: | |
| # profile = Profile.objects.filter(user=request.user).first() | |
| # userName = request.user.first_name | |
| # isUser = True | |
| # isVolunteer = profile.isCampainVolunteer | |
| # profilePic = profile.profilePic | |
| # except: | |
| # userName = "Anonymous" | |
| # isUser = False | |
| # isVolunteer = False | |
| # profilePic = "0001" | |
| # else: | |
| # isUser = False | |
| # isVolunteer = False | |
| # userName = "" | |
| # profilePic = "0001" | |
| # departments = Department.objects.all() | |
| # departmentArr = [] | |
| # impEvent = [] | |
| # for department in departments: | |
| # events = Event.objects.filter(department=department).order_by('-name').all() | |
| # eventArr = [] | |
| # tempDepartment = { | |
| # "departmentName" : department.name | |
| # } | |
| # for event in events: | |
| # tempEvent = { | |
| # "eventName" : event.name, | |
| # "eventPrice" : event.price, | |
| # "eventDescription" : event.description, | |
| # "eventTagline" : event.tagline, | |
| # "eventPosterImage" : event.posterImage, | |
| # "eventLink" : (event.name).replace(" ", "-").replace("---", ":"), | |
| # "isTeamEvent" : event.isTeamEvent, | |
| # "teamPrice" : event.teamPrice, | |
| # "isTeamPriceFull" : event.isTeamPriceFull, | |
| # "winnerPrice1" : event.winnerPrice1 if event.winnerPrice1 != None else 0 , | |
| # "winnerPrice2" : event.winnerPrice2 if event.winnerPrice2 != None else 0 , | |
| # "isClosed" : event.isClosed | |
| # } | |
| # eventArr.append(tempEvent) | |
| # tempDepartment["events"] = eventArr | |
| # tempDepartment["eventCount"] = len(eventArr) | |
| # departmentArr.append(tempDepartment) | |
| # context = { | |
| # "departmentArr": departmentArr, | |
| # "isUser" : isUser, | |
| # "isVolunteer" : isVolunteer, | |
| # "userName" : userName, | |
| # "profilePic" : profilePic | |
| # } | |
| # return HttpResponse(json.dumps(context), content_type="application/json") | |
| def events(request): | |
| if request.user != None: | |
| try: | |
| profile = Profile.objects.filter(user=request.user).first() | |
| userName = request.user.first_name | |
| isUser = True | |
| isVolunteer = profile.isCampainVolunteer | |
| profilePic = profile.profilePic | |
| except: | |
| userName = "Anonymous" | |
| isUser = False | |
| isVolunteer = False | |
| profilePic = "0001" | |
| else: | |
| isUser = False | |
| isVolunteer = False | |
| userName = "" | |
| profilePic = "0001" | |
| departments = Department.objects.all() | |
| departmentArr = [] | |
| impEvent = [] | |
| for department in departments: | |
| events = Event.objects.filter(department=department).order_by('-name').all() | |
| eventArr = [] | |
| flag = 0 | |
| for event in events: | |
| if event.name != "X - Motion Game Mania": | |
| eventArr.append([event.name, event.price, event.description, event.tagline, event.posterImage, (event.name).replace(" ", "-").replace("---", ":"),event.isTeamEvent,event.teamPrice,event.isTeamPriceFull,event.winnerPrice1,event.winnerPrice2,event.isClosed]) | |
| else: | |
| impEvent = [[event.name, event.price, event.description, event.tagline, event.posterImage, (event.name).replace(" ", "-").replace("---", ":"),event.isTeamEvent,event.teamPrice,event.isTeamPriceFull,event.winnerPrice1,event.winnerPrice2,event.isClosed]] | |
| flag = 1 | |
| if flag == 1: | |
| impEvent.extend(eventArr) | |
| departmentArr.append([department.name, impEvent, len(eventArr)]) | |
| else: | |
| departmentArr.append([department.name, eventArr, len(eventArr)]) | |
| context = { | |
| "departmentArr": departmentArr, | |
| "isUser" : isUser, | |
| "isVolunteer" : isVolunteer, | |
| "userName" : userName, | |
| "profilePic" : profilePic | |
| } | |
| return render(request, "event.html", context) | |
| def aboutus(request): | |
| if request.user != None: | |
| try: | |
| profile = Profile.objects.filter(user=request.user).first() | |
| userName = request.user.first_name | |
| isUser = True | |
| isVolunteer = profile.isCampainVolunteer | |
| profilePic = profile.profilePic | |
| except: | |
| userName = "Anonymous" | |
| isUser = False | |
| isVolunteer = False | |
| profilePic = "0001" | |
| else: | |
| isUser = False | |
| isVolunteer = False | |
| userName = "" | |
| profilePic = "0001" | |
| context={ | |
| "isUser" : isUser, | |
| "isVolunteer" : isVolunteer, | |
| "userName" : userName, | |
| "profilePic" : profilePic | |
| } | |
| return render(request, "about-us.html", context) | |
| def signin(request): | |
| if request.method == "POST": | |
| email = request.POST['email'] | |
| password = request.POST['password'] | |
| request.session['emailVarification'] = email | |
| try: | |
| username = User.objects.filter(email=email).first().username | |
| user = authenticate(username=username, password=password) | |
| if user is not None: | |
| profile = Profile.objects.filter(user=user).first() | |
| isVerified = True | |
| isAccountSetup = profile.isAccountSetup | |
| profile.save() | |
| if isAccountSetup == True: | |
| login(request, user) | |
| return redirect("/") | |
| else: | |
| context = {'email' : email} | |
| return redirect("/accountSetUp",context) | |
| except: | |
| context = { | |
| "error": True | |
| } | |
| return render(request, "login.html",context) | |
| else: | |
| context = { | |
| "error": True | |
| } | |
| return render(request, "login.html",context) | |
| return render(request, "login.html") | |
| def check(email): | |
| regex = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,7}\b' | |
| if(re.fullmatch(regex, email)): | |
| return True | |
| else: | |
| return False | |
| def register(request): | |
| if request.method == "POST": | |
| email = request.POST['email'] | |
| pass1 = request.POST['password1'] | |
| pass2 = request.POST['password2'] | |
| if not check(email): | |
| context = { | |
| "error" : "Invalid Email." | |
| } | |
| return render(request, "register.html",context) | |
| #return HttpResponse(json.dumps({"error": "Invalid Email."}), content_type="application/json") | |
| elif pass1 != pass2: | |
| context = { | |
| "error" : "Password Does Not Match." | |
| } | |
| return render(request, "register.html",context) | |
| #return HttpResponse(json.dumps({"error": "Password Does Not Match."}), content_type="application/json") | |
| else: | |
| users = User.objects.filter(email=email).all().count() | |
| if users == 0: | |
| newUser = User.objects.create_user(username=email, email=email, password=pass1) | |
| newUser.save() | |
| otp = str(random.randint(1000, 9999)) | |
| profileForNewUser = Profile() | |
| profileForNewUser.user = User.objects.filter(email=email).first() | |
| profileForNewUser.otp = otp | |
| profileForNewUser.events = {"data": []} | |
| profileForNewUser.notification = {"data": []} | |
| profileForNewUser.isAccountSetup = False | |
| profileForNewUser.isVolunteer = False | |
| profileForNewUser.isOrganiser = False | |
| profileForNewUser.isVerified = True | |
| profileForNewUser.save() | |
| emailSender(email,"./emailTemplates/welcomeEmail.html",str(otp)) | |
| request.session['emailVarification'] = email | |
| return redirect("/accountSetUp/") | |
| else: | |
| context = { | |
| "error" : "User Already Exists." | |
| } | |
| return render(request, "register.html",context) | |
| return render(request, "register.html") | |
| def event(request, event): | |
| if request.user != None: | |
| try: | |
| profile = Profile.objects.filter(user=request.user).first() | |
| userName = request.user.first_name | |
| email = request.user.email | |
| isUser = True | |
| isVolunteer = profile.isCampainVolunteer | |
| profilePic = profile.profilePic | |
| except: | |
| userName = "Anonymous" | |
| email = "" | |
| isUser = False | |
| isVolunteer = False | |
| profilePic = "0001" | |
| else: | |
| isUser = False | |
| isVolunteer = False | |
| email = "" | |
| userName = "" | |
| profilePic = "0001" | |
| context = { | |
| "isUser" : isUser, | |
| "isVolunteer" : isVolunteer, | |
| "userName" : userName, | |
| "profilePic" : profilePic, | |
| "email" : email | |
| } | |
| eventData = Event.objects.filter(name=event.replace("-", " ").replace(":", " - ")).first() | |
| context["isTeamEvent"] = eventData.isTeamEvent | |
| context["name"] = eventData.name | |
| context["department"] = eventData.department.name | |
| context["teamName"] = eventData.teamName | |
| context["teamLeader"] = eventData.teamLeader.user.get_full_name() if eventData.teamLeader != None else "" | |
| context["price"] = eventData.price | |
| context["winnerPrice1"] = eventData.winnerPrice1 | |
| context["winnerPrice2"] = eventData.winnerPrice2 | |
| context["location"] = eventData.location | |
| context["date"] = str(eventData.date) | |
| context["description"] = eventData.description | |
| context["rules"] = (eventData.rules).split("•")[1:] if eventData.rules != None and eventData.rules != "" else "" | |
| round1 = (eventData.round1).split("•")[1:] if eventData.round1 != None else [] | |
| round2 = (eventData.round2).split("•")[1:] if eventData.round2 != None else [] | |
| round3 = (eventData.round3).split("•")[1:] if eventData.round3 != None else [] | |
| round4 = (eventData.round4).split("•")[1:] if eventData.round4 != None else [] | |
| round5 = (eventData.round5).split("•")[1:] if eventData.round5 != None else [] | |
| round1Title = eventData.round1Title if eventData.round1Title != None else "" | |
| round2Title = eventData.round2Title if eventData.round2Title != None else "" | |
| round3Title = eventData.round3Title if eventData.round3Title != None else "" | |
| round4Title = eventData.round4Title if eventData.round4Title != None else "" | |
| round5Title = eventData.round5Title if eventData.round5Title != None else "" | |
| context["rounds"] = [] | |
| if round1Title != "": | |
| context["rounds"].append({"title": round1Title,"description": round1}) | |
| if round2Title != "": | |
| context["rounds"].append({"title": round2Title,"description": round2}) | |
| if round3Title != "": | |
| context["rounds"].append({"title": round3Title,"description": round3}) | |
| if round4Title != "": | |
| context["rounds"].append({"title": round4Title,"description": round4}) | |
| if round5Title != "": | |
| context["rounds"].append({"title": round5Title,"description": round5}) | |
| context["tagline"] = eventData.tagline | |
| context["posterImage"] = eventData.posterImage | |
| context["winner1"] = eventData.winner1.user.get_full_name() if eventData.winner1 != None else "" | |
| context["winner2"] = eventData.winner2.user.get_full_name() if eventData.winner2 != None else "" | |
| context["winner3"] = eventData.winner3.user.get_full_name() if eventData.winner3 != None else "" | |
| context["organiser1"] = eventData.organiser1.user.get_full_name() if eventData.organiser1 != None else "" | |
| context["organiser1Phone"] = Profile.objects.filter(user=eventData.organiser1.user).first().phone if eventData.organiser1 != None else "" | |
| context["organiser2"] = eventData.organiser2.user.get_full_name() if eventData.organiser2 != None else "" | |
| context["organiser2Phone"] = Profile.objects.filter(user=eventData.organiser2.user).first().phone if eventData.organiser2 != None else "" | |
| context["organiser3"] = eventData.organiser3.user.get_full_name() if eventData.organiser3 != None else "" | |
| context["organiser3Phone"] = Profile.objects.filter(user=eventData.organiser3.user).first().phone if eventData.organiser3 != None else "" | |
| context["organiser4"] = eventData.organiser4.user.get_full_name() if eventData.organiser4 != None else "" | |
| context["organiser4Phone"] = Profile.objects.filter(user=eventData.organiser4.user).first().phone if eventData.organiser4 != None else "" | |
| context["organiser5"] = eventData.organiser5.user.get_full_name() if eventData.organiser5 != None else "" | |
| context["organiser5Phone"] = Profile.objects.filter(user=eventData.organiser5.user).first().phone if eventData.organiser5 != None else "" | |
| context["isTeamEvent"] = eventData.isTeamEvent | |
| context["teamParticapantCount"] = eventData.teamParticapantCount | |
| context["isClosed"] = eventData.isClosed | |
| context["status"] = eventData.status | |
| context["images"] = eventData.images["data"] | |
| context["isClosed"] = eventData.isClosed | |
| # request.session['event'] = eventData.name | |
| # return HttpResponse(json.dumps(context), content_type="application/json") | |
| return render(request, "event-details.html", context) | |
| def otpvalidationWeb(request): | |
| if request.method == "POST": | |
| email = request.session['emailVarification'] | |
| user = Profile.objects.filter(user=User.objects.filter(email=email).first()).first() | |
| if userOtp == user.otp: | |
| profile = Profile.objects.filter(user=User.objects.filter(email=email).first()).first() | |
| profile.isVerified = True | |
| profile.save() | |
| return redirect("/accountSetUp/") | |
| else: | |
| context = {'error' : "Invalid OTP"} | |
| return render(request, "otp-page.html",context) | |
| #404 page | |
| return render(request, "404.html") | |
| def pageNotFound(request): | |
| return render(request,"404.html") | |
| def cart(request): | |
| if request.user != None: | |
| try: | |
| profile = Profile.objects.filter(user=request.user).first() | |
| userName = request.user.first_name | |
| isUser = True | |
| isVolunteer = profile.isCampainVolunteer | |
| profilePic = profile.profilePic | |
| except: | |
| userName = "Anonymous" | |
| isUser = False | |
| isVolunteer = False | |
| profilePic = "0001" | |
| else: | |
| isUser = False | |
| isVolunteer = False | |
| userName = "" | |
| profilePic = "0001" | |
| context={ | |
| "isUser" : isUser, | |
| "isVolunteer" : isVolunteer, | |
| "userName" : userName, | |
| "profilePic" : profilePic | |
| } | |
| return render(request,"cart.html",context) | |
| def signOut(request): | |
| logout(request) | |
| return redirect('/') | |
| def faqs(request): | |
| if request.user != None: | |
| try: | |
| profile = Profile.objects.filter(user=request.user).first() | |
| userName = request.user.first_name | |
| isUser = True | |
| isVolunteer = profile.isCampainVolunteer | |
| profilePic = profile.profilePic | |
| except: | |
| userName = "Anonymous" | |
| isUser = False | |
| isVolunteer = False | |
| profilePic = "0001" | |
| else: | |
| isUser = False | |
| isVolunteer = False | |
| userName = "" | |
| profilePic = "0001" | |
| context = { | |
| "isUser" : isUser, | |
| "isVolunteer" : isVolunteer, | |
| "userName" : userName, | |
| "profilePic" : profilePic | |
| } | |
| return render(request,"faqs.html",context) | |
| def accountSetUp(request): | |
| if request.method == "POST": | |
| try: | |
| email = request.session['emailVarification'] | |
| name = request.POST['firstname'] | |
| #college = body['college'] | |
| phone = request.POST['mobileNo'] | |
| profilePic = request.POST['profilePic'] | |
| user = User.objects.filter(email=email).first() | |
| user.first_name = name | |
| user.save() | |
| profile = Profile.objects.filter(user=user).first() | |
| profile.college = "LDRP-ITR" | |
| profile.phone = phone | |
| profile.profilePic = profilePic | |
| profile.isAccountSetup = True | |
| profile.save() | |
| request.session['accountSetup'] = True | |
| return redirect('/login') | |
| except Exception as error: | |
| print(error) | |
| return render(request, "account-setup.html") | |
| return render(request, "account-setup.html") | |
| def resendOtpWeb(request): | |
| try: | |
| email = request.session['emailVarification'] | |
| otp = str(random.randint(1000, 9999)) | |
| profile = Profile.objects.filter(user=User.objects.filter(email=email).first()).first() | |
| profile.otp = otp | |
| profile.save() | |
| emailSender(email,"./emailTemplates/resendOTPEmail.html",str(otp)) | |
| return HttpResponse(json.dumps({"msg": "OTP sent to "+email}), content_type="application/json") | |
| except Exception as error: | |
| return HttpResponse(json.dumps({"error": error}), content_type="application/json") | |
| def ticketVerifer(request): | |
| if request.user != None: | |
| try: | |
| profile = Profile.objects.filter(user=request.user).first() | |
| userName = request.user.first_name | |
| isUser = True | |
| isVolunteer = profile.isCampainVolunteer | |
| profilePic = profile.profilePic | |
| except: | |
| userName = "Anonymous" | |
| isUser = False | |
| isVolunteer = False | |
| profilePic = "0001" | |
| else: | |
| isUser = False | |
| isVolunteer = False | |
| userName = "" | |
| profilePic = "0001" | |
| if isVolunteer == True: | |
| if request.method == "POST": | |
| body = json.loads(request.body) | |
| id = body['id'] | |
| ticket = Ticket.objects.filter(id=id).first() | |
| if ticket != None: | |
| ticket.acceptedBy = profile | |
| ticket.isPaid = True | |
| ticket.save() | |
| return HttpResponse(json.dumps({"msg": "Ticket has been Paid."}), content_type="application/json") | |
| else: | |
| return HttpResponse(json.dumps({"error": "error"}), content_type="application/json") | |
| tickets = Ticket.objects.all() | |
| dataTemp = [] | |
| for ticket in tickets: | |
| count = 1 | |
| if ticket.owner1 != None: | |
| count=count+1 | |
| if ticket.owner2 != None: | |
| count=count+1 | |
| if ticket.owner3 != None: | |
| count=count+1 | |
| if ticket.owner4 != None: | |
| count=count+1 | |
| temp = {} | |
| temp["id"] = ticket.id | |
| temp["profilePic"] = ticket.owner.profilePic | |
| temp["username"] = ticket.owner.user.first_name | |
| temp["email"] = ticket.owner.user.email | |
| if ticket.event.isTeamEvent != True: | |
| temp["price"] = ticket.event.price | |
| else: | |
| temp["price"] = ticket.event.teamPrice | |
| temp["eventName"] = ticket.event.name | |
| temp["isPaid"] = ticket.isPaid | |
| temp["isTeamPriceFull"] = ticket.event.isTeamPriceFull | |
| try: | |
| temp["userCount"] = count | |
| if count != 1: | |
| temp["total"] = count*int(ticket.event.price) | |
| except: | |
| temp["userCount"] = count | |
| temp["total"] = ticket.event.price | |
| dataTemp.append(temp) | |
| data = [] | |
| data2 = [] | |
| for i in dataTemp: | |
| if i["isPaid"]== False: | |
| data.append(i) | |
| else: | |
| data2.append(i) | |
| data = data[::-1] | |
| data.extend(data2) | |
| context = { | |
| "data" : data, | |
| "isUser" : isUser, | |
| "isVolunteer" : isVolunteer, | |
| "userName" : userName, | |
| "profilePic" : profilePic | |
| } | |
| return render(request, "ticket.html",context) | |
| else: | |
| return render(request, "404.html") | |
| def myTicket(request): | |
| if request.user != None: | |
| try: | |
| profile = Profile.objects.filter(user=request.user).first() | |
| userName = request.user.first_name | |
| isUser = True | |
| isVolunteer = profile.isCampainVolunteer | |
| profilePic = profile.profilePic | |
| except: | |
| userName = "Anonymous" | |
| isUser = False | |
| isVolunteer = False | |
| profilePic = "0001" | |
| else: | |
| isUser = False | |
| isVolunteer = False | |
| userName = "" | |
| profilePic = "0001" | |
| if isUser == True: | |
| tickets = Ticket.objects.filter(Q(owner=profile)|Q(owner1=profile)|Q(owner2=profile)|Q(owner3=profile)|Q(owner4=profile)).all() | |
| dataTemp = [] | |
| for ticket in tickets: | |
| count = 1 | |
| if ticket.owner1 != None: | |
| count=count+1 | |
| if ticket.owner2 != None: | |
| count=count+1 | |
| if ticket.owner3 != None: | |
| count=count+1 | |
| if ticket.owner4 != None: | |
| count=count+1 | |
| temp = {} | |
| temp["id"] = ticket.id | |
| temp["profilePic"] = ticket.owner.profilePic | |
| temp["username"] = ticket.owner.user.first_name | |
| temp["email"] = ticket.owner.user.email | |
| if ticket.event.isTeamEvent != True: | |
| temp["price"] = ticket.event.price | |
| else: | |
| temp["price"] = ticket.event.teamPrice | |
| temp["eventName"] = ticket.event.name | |
| temp["isPaid"] = ticket.isPaid | |
| temp["qrCodeData"] = ticket.qrCodeData | |
| temp["isTeamPriceFull"] = ticket.event.isTeamPriceFull | |
| if ticket.userCount >0: | |
| temp["isScanned"] = False | |
| else: | |
| temp["isScanned"] = True | |
| try: | |
| temp["userCount"] = count | |
| if count != 1: | |
| temp["total"] = count*int(ticket.event.price) | |
| except: | |
| temp["userCount"] = 1 | |
| temp["total"] = 0 | |
| dataTemp.append(temp) | |
| data = [] | |
| data2 = [] | |
| for i in dataTemp: | |
| if i["isPaid"]== False: | |
| data.append(i) | |
| else: | |
| data2.append(i) | |
| data = data[::-1] | |
| data2 = data2[::-1] | |
| data.extend(data2) | |
| context = { | |
| "data" : data, | |
| "isUser" : isUser, | |
| "isVolunteer" : isVolunteer, | |
| "userName" : userName, | |
| "profilePic" : profilePic | |
| } | |
| return render(request, "myTicket.html",context) | |
| else: | |
| return render(request, "404.html") | |
| def eventConfirmation(request): | |
| if request.user != None: | |
| try: | |
| profile = Profile.objects.filter(user=request.user).first() | |
| userName = request.user.first_name | |
| isUser = True | |
| isVolunteer = profile.isCampainVolunteer | |
| profilePic = profile.profilePic | |
| except: | |
| userName = "Anonymous" | |
| isUser = False | |
| isVolunteer = False | |
| profilePic = "0001" | |
| else: | |
| isUser = False | |
| isVolunteer = False | |
| userName = "" | |
| profilePic = "0001" | |
| context = { | |
| "isUser" : isUser, | |
| "isVolunteer" : isVolunteer, | |
| "userName" : userName, | |
| "profilePic" : profilePic, | |
| "team" : request.session['team'], | |
| "event" : request.session['event'] | |
| } | |
| return render(request, "event-confirmation.html",context) | |
| def addTeamMebers(request): | |
| if request.user != None: | |
| try: | |
| profile = Profile.objects.filter(user=request.user).first() | |
| userName = request.user.first_name | |
| isUser = True | |
| isVolunteer = profile.isCampainVolunteer | |
| profilePic = profile.profilePic | |
| except: | |
| userName = "Anonymous" | |
| isUser = False | |
| isVolunteer = False | |
| profilePic = "0001" | |
| else: | |
| isUser = False | |
| isVolunteer = False | |
| userName = "" | |
| profilePic = "0001" | |
| if request.method == "POST": | |
| isForm = request.POST.get('isForm',False) | |
| if isForm == False: | |
| body = json.loads(request.body) | |
| email = body['email'] | |
| user = User.objects.filter(email=email).first() | |
| if user is not None: | |
| return HttpResponse(json.dumps({"msg": email + " does exist in our Database."}), content_type="application/json") | |
| else: | |
| return HttpResponse(json.dumps({"error": "Email does not exist in our Database"}), content_type="application/json") | |
| else: | |
| users = request.POST.get('user') | |
| emailArr = users.split(",") | |
| request.session['team'] = [] | |
| try: | |
| for i in range(len(emailArr)): | |
| user = User.objects.filter(email=emailArr[i]).first() | |
| profile = Profile.objects.filter(user=user).first() | |
| if user is not None: | |
| request.session['team'].append({"name":user.first_name, "email":user.email,"phone":profile.phone}) | |
| return redirect("/eventConfirmation/") | |
| except: | |
| context = { | |
| 'email':request.user, | |
| "isUser" : isUser, | |
| "isVolunteer" : isVolunteer, | |
| "userName" : userName, | |
| "profilePic" : profilePic, | |
| "event" : request.session['event'], | |
| "min":Event.objects.filter(name=request.session['event']).first().teamParticapantCountMin, | |
| "max":Event.objects.filter(name=request.session['event']).first().teamParticapantCount, | |
| "error" : "Please confirm emails of your team members.", | |
| } | |
| return render(request, 'event-registration-form.html',context) | |
| context = { | |
| 'email':request.user, | |
| "isUser" : isUser, | |
| "isVolunteer" : isVolunteer, | |
| "userName" : userName, | |
| "profilePic" : profilePic, | |
| "event" : request.session['event'], | |
| "min":Event.objects.filter(name=request.session['event']).first().teamParticapantCountMin, | |
| "max":Event.objects.filter(name=request.session['event']).first().teamParticapantCount, | |
| } | |
| return render(request, 'event-registration-form.html',context) | |
| def ticketGenrator(request): | |
| if request.method == "POST": | |
| try: | |
| body = json.loads(request.body) | |
| if 'isTeam' not in body.keys(): | |
| eventName = body['event'] | |
| event = Event.objects.filter(name=eventName).first() | |
| if event.isClosed == True: | |
| return HttpResponse(json.dumps({"error": "Registration for this event is closed."}), content_type="application/json") | |
| else: | |
| email = body['email'] | |
| user = User.objects.filter(email=email).first() | |
| owner = Profile.objects.filter(user=user).first() | |
| qrCodeData = uuid.uuid1() | |
| userCount = body['userCount'] | |
| newTicket = Ticket() | |
| newTicket.event = event | |
| newTicket.owner = owner | |
| newTicket.qrCodeData = qrCodeData | |
| newTicket.userCount = userCount | |
| newTicket.save() | |
| return HttpResponse(json.dumps({"msg": "You are successfully registered. Your registration will get confirmed and you will also see the ticket in your account once you make the payment."}), content_type="application/json") | |
| else: | |
| eventName = body['event'] | |
| event = Event.objects.filter(name=eventName).first() | |
| if event.isClosed == True: | |
| return HttpResponse(json.dumps({"error": "Registration for this event is closed."}), content_type="application/json") | |
| else: | |
| email = request.session['team'][0]['email'] | |
| user = User.objects.filter(email=email).first() | |
| owner = Profile.objects.filter(user=user).first() | |
| qrCodeData = uuid.uuid1() | |
| newTicket = Ticket() | |
| newTicket.event = event | |
| newTicket.owner = owner | |
| try: | |
| teamMember1= User.objects.filter(email=request.session['team'][1]["email"]).first() | |
| teamMember1Profile = Profile.objects.filter(user=teamMember1).first() | |
| newTicket.owner1 = teamMember1Profile | |
| except: | |
| newTicket.owner1 = None | |
| try: | |
| teamMember2= User.objects.filter(email=request.session['team'][2]["email"]).first() | |
| teamMember2Profile = Profile.objects.filter(user=teamMember2).first() | |
| newTicket.owner2 = teamMember2Profile | |
| except: | |
| newTicket.owner2 = None | |
| try: | |
| teamMember3= User.objects.filter(email=request.session['team'][3]["email"]).first() | |
| teamMember3Profile = Profile.objects.filter(user=teamMember3).first() | |
| newTicket.owner3 = teamMember3Profile | |
| except: | |
| newTicket.owner3 = None | |
| try: | |
| teamMember4= User.objects.filter(email=request.session['team'][4]["email"]).first() | |
| teamMember4Profile = Profile.objects.filter(user=teamMember4).first() | |
| newTicket.owner4 = teamMember4Profile | |
| except: | |
| newTicket.owner4 = None | |
| newTicket.qrCodeData = qrCodeData | |
| newTicket.userCount = len(request.session['team']) | |
| newTicket.save() | |
| request.session['team'] = [] | |
| return HttpResponse(json.dumps({"msg": "You are successfully registered. Your registration will get confirmed and you will also see the ticket in your account once you make the payment."}), content_type="application/json") | |
| except Exception as error: | |
| return HttpResponse(json.dumps({"error": str(error)}), content_type="application/json") | |
| else: | |
| return render(request, "404.html") | |
| def dataOutper(request): | |
| for event in Event.objects.all(): | |
| eventName = event.name | |
| department = event.department.name | |
| tickets = Ticket.objects.filter(event=event).all() | |
| paid = 0 | |
| unpaid = 0 | |
| for ticket in tickets: | |
| if ticket.event.isTeamEvent: | |
| if ticket.isPaid: | |
| paid += ticket.userCount | |
| else: | |
| unpaid += ticket.userCount | |
| else: | |
| if ticket.isPaid: | |
| paid += 1 | |
| else: | |
| unpaid += 1 | |
| print(department,",",eventName,",",paid,",",unpaid) | |
| return HttpResponse("Done") | |
| def closeEvents(request): | |
| for event in Event.objects.all(): | |
| event.isClosed = True | |
| event.save() | |
| return HttpResponse("Done") |