Esempio n. 1
0
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})
Esempio n. 2
0
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})