def register(request): if request.user.is_authenticated(): return redirect('index') elif request.method == 'POST': stuff = request.POST username = stuff['userreg'] password = stuff['passreg'] first_name = stuff['namereg'] email = stuff['email'] user_type = stuff['type'] lname = stuff["lastname"] init_class = stuff['class_name'] init_num = stuff['class_number'] init_sem = stuff['class_semester'] user = user_info.objects.filter(username=username) #Checks if Email Address if valid if not isEmailAddressValid(email): error_message = "ERROR: Your email " + email + " was not valid. Please enter a valid email and try again." return render(request, 'register.html', {"error":error_message}) #Check if fields are left blank if username == "" or first_name=="" or lname =="" or email =="" or password == "": error_message = "ERROR: One or more fields were left empty. Please fill out each field and try again." return render(request, 'register.html', {"error":error_message}) #Check if user already exists elif user.exists(): error_message = "ERROR: A user already exists with the given username. Enter a new username and try again." return render(request, 'register.html', {"error":error_message}) #Creates our user else: #Creates user for user_info table cost_obj = user_info(init_class_name = init_class, init_class_number= init_num, init_class_semester = init_sem, username=username, password=password, first_name=first_name, last_name=lname, email=email, user_type=user_type) cost_obj.save() #Creates user for Auth table user = User.objects.create_user(username, email, password) user.first_name = first_name user.last_name = lname user.save() #Adds student or grader to the class as unauthorized student(teacher needs to be approved before class creation) if user_type != "TE": find_class = MyClass.objects.get(class_name = init_class, class_number = init_num, semester= init_sem) authorize_user = AuthUser(student_name = cost_obj, class_name = find_class) authorize_user.save() cost_obj.class_list.add(find_class) create_added_student_message(find_class, cost_obj) create_welcome_message(cost_obj) if login_user(request, username, password): return redirect('index') else: return redirect('register') else: return TemplateResponse (request, "register.html")
def add_a_class(request): if request.user.is_authenticated(): if request.method == 'POST': myclass_name = request.POST['class_name'] myclass_number = request.POST['class_number'] myclass_semester = request.POST['class_semester'] #updates class info for original user try: new_class = MyClass.objects.get(class_name = myclass_name, class_number = myclass_number, semester = myclass_semester) except: error_message = "Please check your data and try adding the class again." return render (request, "add_a_class.html", {"info": user_info.objects.all(), "message": error_message}) new_student = user_info.objects.get(username=request.user.username) #checks if you already tried to add the class if AuthUser.objects.filter(class_name = new_class).filter(student_name = new_student): error_message = "You have already tried to add this class. Please wait for a teacher response." return render (request, "add_a_class.html", {"info": user_info.objects.all(), "message": error_message}) new_auth_ticket = AuthUser(class_name = new_class, student_name = new_student) new_auth_ticket.save() #updates class roster try: newroster = ClassRoster.objects.get(in_class = new_class, class_name = myclass_name, class_number = myclass_number, teacher = new_class.teacher) newroster.student.add(user_info.objects.get(username=request.user.username)) newroster.save() except: error_message = "There was an error adding your to the class. Please try again." return render (request, "add_a_class.html", {"info": user_info.objects.all(), "message": error_message}) #adds class to user data try: myuser = user_info.objects.get(username=request.user.username) myuser.class_list.add(new_class) myuser.save() except: error_message = "There was an error adding your to the class. Please try again." return render (request, "add_a_class.html", {"info": user_info.objects.all(), "message": error_message}) create_added_student_message(new_class, myuser) return render (request, "add_a_class.html", {"info": user_info.objects.all(), "message": "You have added " + myclass_number + ". Please wait for teacher approval before further action."}) else: return render (request, "add_a_class.html", {"info": user_info.objects.all()}) else: return redirect('register')