def student_registration(request, *args, **kwargs): if request.method == "POST": form = StudentForm(request.POST or None) if form.is_valid(): details = form.cleaned_data new_passwd = details['passwd'] new_username = details['username'] new_fName = details['firstName'] new_mName = details['middleName'] new_lName = details['lastName'] new_email = details['email'] new_enrolment = details['enrolment'] new_dob = details['date'] new_gender = details['gender'] new_mobile = details['mobile'] new_branch = details['branch'] new_sem = details['sem'] new_account_id = id_generator() try: validate_password(new_passwd, form) except ValidationError as e: form.add_error('passwd', e) return render(request, "common/studentregistration.html", {'form': form}) # try: # user_credentials = [new_username, new_fName, new_lName, new_mName, new_mobile, new_enrolment] # for item in user_credentials: # if item.lower() in new_passwd.lower(): # raise ValidationError('Password too similar to credentials...') # except ValidationError as e: # form.add_error('passwd', e) # return render(request, "common/studentregistration.html", {'form': form}) newStudent = Student(firstName=str(new_fName.capitalize()), middleName=str(new_mName.capitalize()), lastName=str(new_lName.capitalize()), username=str(new_username), passwd=str(new_passwd), account_id=str(new_account_id), enrolment=str(new_enrolment), date=str(new_dob), mobile=str(new_mobile), branch=str(new_branch), sem=str(new_sem), email=str(new_email.lower()), gender=str(new_gender), isPending=True) # newUser = AppUser( # firstName=str(new_fName.capitalize()), # lastName=str(new_lName.capitalize()), # username=str(new_username), # passwd=str(new_passwd), # email=str(new_email.lower()), # category='Student', # isAdmin=False, # isPending=True # ) newUser = User.objects.create_user( username=str(new_username), password=str(new_passwd), first_name=str(new_fName.capitalize()), last_name=str(new_lName.capitalize()), email=str(new_email.lower()), ) # newDjangoUser.save() newUser.save() newStudent.save() # Student.objects.create(**form.cleaned_data) return redirect("../pending-account") else: form = StudentForm(request.POST or None) for field in form.errors: form[field].field.widget.attrs['class'] += 'error' return render(request, "common/studentregistration.html", {'form': form})
def student_registration(request, *args, **kwargs): if not request.user.is_anonymous: userEmail = request.user.email user = Staff.objects.filter(email=userEmail, isPending=False) if user: if user[0].isAdmin: return redirect('../college-admin/home/') else: return redirect('../staff/home/') else: user = Student.objects.filter(email=userEmail, isPending=False) if user: return redirect('../students/home/') else: return render(request, "common/no_permission.html") if request.method == "POST": form = StudentForm(request.POST or None) if form.is_valid(): details = form.cleaned_data new_passwd = details['passwd'] new_username = details['username'] new_fName = details['firstName'] new_mName = details['middleName'] new_lName = details['lastName'] new_email = details['email'] new_enrolment = details['enrolment'] new_dob = details['date'] new_gender = details['gender'] new_mobile = details['mobile'] new_branch = details['branch'] new_sem = details['sem'] new_account_id = id_generator() try: validate_password(new_passwd, form) except ValidationError as e: form.add_error('passwd', e) return render(request, "common/studentregistration.html", {'form': form}) # try: # user_credentials = [new_username, new_fName, new_lName, new_mName, new_mobile, new_enrolment] # for item in user_credentials: # if item.lower() in new_passwd.lower(): # raise ValidationError('Password too similar to credentials...') # except ValidationError as e: # form.add_error('passwd', e) # return render(request, "common/studentregistration.html", {'form': form}) newStudent = Student(firstName=str(new_fName.capitalize()), middleName=str(new_mName.capitalize()), lastName=str(new_lName.capitalize()), username=str(new_username), passwd=str(new_passwd), account_id=str(new_account_id), enrolment=str(new_enrolment), date=str(new_dob), mobile=str(new_mobile), branch=str(new_branch), sem=str(new_sem), email=str(new_email.lower()), gender=str(new_gender), isPending=True) newUser = User.objects.create_user( username=str(new_username), password=str(new_passwd), first_name=str(new_fName.capitalize()), last_name=str(new_lName.capitalize()), email=str(new_email.lower()), ) newUser.save() newStudent.save() return redirect("../pending-account") else: form = StudentForm(request.POST or None) for field in form.errors: form[field].field.widget.attrs['class'] += 'error' return render(request, "common/studentregistration.html", {'form': form})