Ejemplo n.º 1
0
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")
Ejemplo n.º 2
0
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')