From fdffa9ce8648b9d5f3218d6a1030cbbd5f4d8665 Mon Sep 17 00:00:00 2001 From: Saksham-1508 Date: Sun, 6 Feb 2022 13:52:56 +0530 Subject: [PATCH 1/3] created user specific forms --- AlumniConnect/forms.py | 440 +++++++++++++++++++++++++-- AlumniConnect/urls.py | 1 + applications/alumniprofile/models.py | 27 +- 3 files changed, 424 insertions(+), 44 deletions(-) diff --git a/AlumniConnect/forms.py b/AlumniConnect/forms.py index e387c6ad..9fdc7b2a 100644 --- a/AlumniConnect/forms.py +++ b/AlumniConnect/forms.py @@ -2,10 +2,351 @@ from django import forms from applications.alumniprofile.models import Profile, Constants, Batch from django.contrib.auth.models import User +from django.contrib.auth.forms import UserCreationForm +from django.core.exceptions import ValidationError from crispy_forms.helper import FormHelper from crispy_forms.layout import Layout, Submit, Row, Column, Div, Field from crispy_forms.bootstrap import InlineRadios +import re +# --------------------------------REGISTRATION FORMS FOR STUDENTS AND ALUMNI START-------------------------------------------------------- +class Alumni_NewRegister(forms.ModelForm): + date_of_birth = forms.DateField( + widget=forms.TextInput( + attrs={'type': 'date'} + ), + ) + date_of_joining = forms.DateField( + widget=forms.TextInput( + attrs={'type': 'date'} + ), + required=False, + ) + current_address = forms.CharField( + widget=forms.Textarea( + attrs={'rows': 3, 'placeholder': 'Enter Address'} + ), + max_length=4000, + ) + permanent_address = forms.CharField( + widget=forms.Textarea( + attrs={'rows': 3, 'placeholder': 'Enter Permanent Address', } + ), + max_length=4000, + required=False, + ) + country = forms.ChoiceField(widget=forms.Select( + attrs={'id': 'countryId', 'class': 'countries order-alpha presel-IN custom-select', 'name': 'country'})) + state = forms.ChoiceField( + widget=forms.Select(attrs={'id': 'stateId', 'class': 'states order-alpha custom-select', 'name': 'state'})) + city = forms.ChoiceField( + widget=forms.Select(attrs={'id': 'cityId', 'class': 'cities order-alpha custom-select', 'name': 'city'})) + linkedin = forms.URLField(widget=forms.TextInput(attrs={'placeholder': 'Linkedin URL'})) + website = forms.URLField(widget=forms.TextInput(attrs={'placeholder': 'Website'}), required=False) + facebook = forms.URLField(widget=forms.TextInput(attrs={'placeholder': 'Facebook URL'}), required=False) + # checkbox_terms = forms.BooleanField(required=True) + instagram = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Instagram Username'}), required=False) + checkbox_update = forms.BooleanField(required=True) + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.fields['fathers_name'].label = "Father/Mother's Name" + self.fields['spouse_name'].label = "Spouse's Name" + self.fields['mobile1'].label = "Mobile No." + self.fields['mobile2'].label = "Alternate Mobile No." + self.fields['batch'].label = 'Year of Passing' + self.fields['sex'].label = 'Gender' + self.fields['phone_no'].label = 'Phone No.' + self.fields['date_of_birth'].label = 'Date of Birth' + self.fields['year_of_admission'].label = 'Year of Admission' + # self.fields['checkbox_terms'].label = 'I abide by the Terms and Conditions of the SAC' + self.fields[ + 'checkbox_update'].label = 'I will update my information at regular intervals and will engage in the Alumni network actively.' + self.helper = FormHelper() + self.helper.layout = Layout( + Div( + Field('name', css_class="form-control", wrapper_class='col-md-5'), + Field('fathers_name', css_class="form-control", wrapper_class='col-md-5'), + css_class='form-row my-3', + ), + Div( + Field('sex', css_class="custom-select", wrapper_class="col-md-5"), + Field('spouse_name', css_class="form-control", wrapper_class='col-md-5'), + css_class='form-row my-3', + ), + Div( + Field('email', css_class="form-control", wrapper_class='col-md-5'), + css_class='form-row my-3', + ), + Div( + Field('date_of_birth', css_class="form-control", wrapper_class='col-md-4'), + Field('year_of_admission', css_class="custom-select", wrapper_class='col-md-4'), + Field('batch', css_class="custom-select", wrapper_class="col-md-4"), + css_class='form-row my-3', + ), + Div( + Field('branch', css_class="custom-select", wrapper_class="col-md-5"), + Field('programme', css_class="custom-select", wrapper_class="col-md-5"), + css_class='form-row my-3', + ), + Div( + Field('mobile1', css_class="form-control", wrapper_class='col-md-5'), + Field('mobile2', css_class="form-control", wrapper_class='col-md-5'), + css_class='form-row my-3', + ), + Div( + Field('current_address', css_class="form-control", wrapper_class='col-md'), + css_class='form-row my-3', + ), + Div( + Field('country', wrapper_class="col-md-4"), + Field('state', wrapper_class="col-md-4"), + Field('city', wrapper_class="col-md-4"), + css_class='form-row my-3', + ), + Div( + Field('permanent_address', css_class="form-control", wrapper_class='col-md'), + css_class='form-row my-3', + ), + InlineRadios('working_status'), + Div( + Field('current_position', css_class="form-control", wrapper_class='col-md-6 col-lg-4'), + Field('current_organisation', css_class="form-control", wrapper_class='col-md-6 col-lg-4'), + Field('date_of_joining', css_class="form-control", wrapper_class='col-md-6 col-lg-4'), + Field('past_experience', css_class="form-control", wrapper_class="col-md-6 col-lg-4"), + css_class='form-row my-3', + ), + Div( + Field('current_course', css_class="form-control", wrapper_class='col-md-6 col-lg-4'), + Field('current_university', css_class="form-control", wrapper_class='col-md-6 col-lg-4'), + css_class='form-row my-3', + ), + Div( + Field('linkedin', css_class="form-control", wrapper_class='col-md-6'), + Field('website', css_class="form-control", wrapper_class='col-md-6'), + css_class='form-row my-3', + ), + Div( + Field('facebook', css_class="form-control", wrapper_class='col-md-6'), + Field('instagram', css_class="form-control", wrapper_class='col-md-6'), + css_class='form-row my-3', + ), + Field('profile_picture', css_class="w-100"), + # 'profile_picture', + 'checkbox_update', + Submit('submit', 'Register'), + ) + + def clean(self): + super(Alumini_NewRegister, self).clean() # if necessary + del self._errors['country'] + del self._errors['city'] + del self._errors['state'] + return self.cleaned_data + + class Meta: + model = Profile + + fields = [ + 'city', + 'country', + 'state', + 'year_of_admission', + 'alternate_email', + 'phone_no', + 'mobile1', + 'mobile2', + 'facebook', + 'instagram', + 'name', + 'fathers_name', + 'spouse_name', + 'sex', + 'email', + 'roll_no', + 'date_of_birth', + 'date_of_joining', + 'working_status', + 'branch', + 'programme', + 'batch', + 'current_address', + 'permanent_address', + 'phone_no', + 'current_position', + 'current_organisation', + 'past_experience', + 'current_course', + 'current_university', + 'linkedin', + 'website', + 'profile_picture'] + + widgets = { + 'working_status': forms.RadioSelect(choices=Constants.WORKING_STATUS), + } + + +class Student_NewRegister(forms.ModelForm): + date_of_birth = forms.DateField( + widget=forms.TextInput( + attrs={'type': 'date'} + ), + ) + date_of_joining = forms.DateField( + widget=forms.TextInput( + attrs={'type': 'date'} + ), + required=False, + ) + current_address = forms.CharField( + widget=forms.Textarea( + attrs={'rows': 3, 'placeholder': 'Enter Address'} + ), + max_length=4000, + ) + permanent_address = forms.CharField( + widget=forms.Textarea( + attrs={'rows': 3, 'placeholder': 'Enter Permanent Address', } + ), + max_length=4000, + required=False, + ) + country = forms.ChoiceField(widget=forms.Select( + attrs={'id': 'countryId', 'class': 'countries order-alpha presel-IN custom-select', 'name': 'country'})) + state = forms.ChoiceField( + widget=forms.Select(attrs={'id': 'stateId', 'class': 'states order-alpha custom-select', 'name': 'state'})) + city = forms.ChoiceField( + widget=forms.Select(attrs={'id': 'cityId', 'class': 'cities order-alpha custom-select', 'name': 'city'})) + linkedin = forms.URLField(widget=forms.TextInput( + attrs={'placeholder': 'Linkedin URL'})) + website = forms.URLField(widget=forms.TextInput( + attrs={'placeholder': 'Website'}), required=False) + facebook = forms.URLField(widget=forms.TextInput( + attrs={'placeholder': 'Facebook URL'}), required=False) + # checkbox_terms = forms.BooleanField(required=True) + instagram = forms.CharField(widget=forms.TextInput( + attrs={'placeholder': 'Instagram Username'}), required=False) + checkbox_update = forms.BooleanField(required=True) + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.fields['fathers_name'].label = "Father/Mother's Name" + self.fields['mobile1'].label = "Mobile No." + self.fields['mobile2'].label = "Alternate Mobile No." + self.fields['batch'].label = 'Year of Passing' + self.fields['sex'].label = 'Gender' + self.fields['date_of_birth'].label = 'Date of Birth' + self.fields['year_of_admission'].label = 'Year of Admission' + # self.fields['checkbox_terms'].label = 'I abide by the Terms and Conditions of the SAC' + self.fields[ + 'checkbox_update'].label = 'I will update my information at regular intervals and will engage in the Alumni network actively.' + self.helper = FormHelper() + + self.helper.layout = Layout( + Div( + Field('name', css_class="form-control",wrapper_class='col-md-5'), + Field('fathers_name', css_class="form-control",wrapper_class='col-md-5'), + css_class='form-row my-3', + ), + Div( + Field('email', css_class="form-control",wrapper_class='col-md-5'), + Field('sex', css_class="custom-select",wrapper_class="col-md-5"), + css_class='form-row my-3', + ), + Div( + Field('date_of_birth', css_class="form-control", + wrapper_class='col-md-4'), + Field('year_of_admission', css_class="custom-select", + wrapper_class='col-md-4'), + Field('batch', css_class="custom-select", + wrapper_class="col-md-4"), + css_class='form-row my-3', + ), + Div( + Field('branch', css_class="custom-select", + wrapper_class="col-md-5"), + Field('programme', css_class="custom-select", + wrapper_class="col-md-5"), + css_class='form-row my-3', + ), + Div( + Field('mobile1', css_class="form-control", + wrapper_class='col-md-5'), + Field('mobile2', css_class="form-control", + wrapper_class='col-md-5'), + css_class='form-row my-3', + ), + Div( + Field('current_address', css_class="form-control", + wrapper_class='col-md'), + css_class='form-row my-3', + ), + Div( + Field('country', wrapper_class="col-md-4"), + Field('state', wrapper_class="col-md-4"), + Field('city', wrapper_class="col-md-4"), + css_class='form-row my-3', + ), + Div( + Field('permanent_address', css_class="form-control", + wrapper_class='col-md'), + css_class='form-row my-3', + ), + Div( + Field('linkedin', css_class="form-control", + wrapper_class='col-md-6'), + Field('website', css_class="form-control", + wrapper_class='col-md-6'), + css_class='form-row my-3', + ), + Div( + Field('facebook', css_class="form-control", + wrapper_class='col-md-6'), + Field('instagram', css_class="form-control", + wrapper_class='col-md-6'), + css_class='form-row my-3', + ), + Field('profile_picture', css_class="w-100"), + # 'profile_picture', + 'checkbox_update', + + Submit('submit', 'Register'), + ) + + def clean(self): + super(Student_NewRegister, self).clean() # if necessary + del self._errors['country'] + del self._errors['city'] + del self._errors['state'] + return self.cleaned_data + + class Meta: + model = Profile + + fields = [ + 'city', + 'country', + 'state', + 'year_of_admission', + 'mobile1', + 'mobile2', + 'facebook', + 'instagram', + 'name', + 'fathers_name', + 'sex', + 'email', + 'date_of_birth', + 'branch', + 'programme', + 'batch', + 'current_address', + 'permanent_address', + 'linkedin', + 'website', + 'profile_picture'] + +# --------------------------------REGISTRATION FORMS FOR STUDENTS AND ALUMNI END-------------------------------------------------------- class RegisterForm(forms.ModelForm): def __init__(self, *args, **kwargs): @@ -16,7 +357,7 @@ def __init__(self, *args, **kwargs): Column('batch', css_class='form-group col-md-4 mb-0'), Column('programme', css_class='form-group col-md-4 mb-0'), Column('branch', css_class='form-group col-md-4 mb-0'), - css_class='form-row' + css_class='form-row my-3' ), Submit('submit', 'Search', css_class=''), ) @@ -66,7 +407,7 @@ class ProfileEdit(forms.ModelForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['fathers_name'].label = "Father/Mother's Name" - self.fields['husbands_name'].label = "Husband's Name" + self.fields['spouse_name'].label = "Husband's Name" self.fields['mobile1'].label = "Mobile No." self.fields['mobile2'].label = "Alternate Mobile No." self.fields['batch'].label = 'Year of Passing' @@ -82,48 +423,48 @@ def __init__(self, *args, **kwargs): Field('roll_no', css_class="form-control", wrapper_class='col-md-4'), Field('name', css_class="form-control", wrapper_class='col-md-4'), Field('sex', css_class="custom-select", wrapper_class="col-md-4"), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('fathers_name', css_class="form-control", wrapper_class='col-md-6'), - Field('husbands_name', css_class="form-control", wrapper_class='col-md-6'), - css_class='form-row', + Field('spouse_name', css_class="form-control", wrapper_class='col-md-6'), + css_class='form-row my-3', ), Div( Field('date_of_birth', css_class="form-control", wrapper_class='col-md-4'), Field('year_of_admission', css_class="custom-select", wrapper_class='col-md-4'), Field('batch', css_class="custom-select", wrapper_class="col-md-4"), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('branch', css_class="custom-select", wrapper_class="col-md-6"), Field('programme', css_class="custom-select", wrapper_class="col-md-6"), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('mobile1', css_class="form-control", wrapper_class='col-md-4'), Field('mobile2', css_class="form-control", wrapper_class='col-md-4'), Field('phone_no', css_class="form-control", wrapper_class="col-md-4"), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('email', css_class="form-control", wrapper_class='col-md-6'), Field('alternate_email', css_class="form-control", wrapper_class='col-md-6'), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('current_address', css_class="form-control", wrapper_class='col-md'), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('country', wrapper_class="col-md-4"), Field('state', wrapper_class="col-md-4"), Field('city', wrapper_class="col-md-4"), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('permanent_address', css_class="form-control", wrapper_class='col-md'), - css_class='form-row', + css_class='form-row my-3', ), InlineRadios('working_status'), Div( @@ -131,22 +472,22 @@ def __init__(self, *args, **kwargs): Field('current_organisation', css_class="form-control", wrapper_class='col-md-6 col-lg-4'), Field('date_of_joining', css_class="form-control", wrapper_class='col-md-6 col-lg-4'), Field('past_experience', css_class="form-control", wrapper_class="col-md-6 col-lg-4"), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('current_course', css_class="form-control", wrapper_class='col-md-6 col-lg-4'), Field('current_university', css_class="form-control", wrapper_class='col-md-6 col-lg-4'), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('linkedin', css_class="form-control", wrapper_class='col-md-6'), Field('website', css_class="form-control", wrapper_class='col-md-6'), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('facebook', css_class="form-control", wrapper_class='col-md-6'), Field('instagram', css_class="form-control", wrapper_class='col-md-6'), - css_class='form-row', + css_class='form-row my-3', ), Field('profile_picture', css_class="w-100"), # 'profile_picture', @@ -176,7 +517,7 @@ class Meta: 'instagram', 'name', 'fathers_name', - 'husbands_name', + 'spouse_name', 'sex', 'email', 'roll_no', @@ -251,7 +592,7 @@ class NewRegister(forms.ModelForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['fathers_name'].label = "Father/Mother's Name" - self.fields['husbands_name'].label = "Husband's Name" + self.fields['spouse_name'].label = "Husband's Name" self.fields['mobile1'].label = "Mobile No." self.fields['mobile2'].label = "Alternate Mobile No." self.fields['batch'].label = 'Year of Passing' @@ -270,48 +611,48 @@ def __init__(self, *args, **kwargs): Field('roll_no', css_class="form-control", wrapper_class='col-md-4'), Field('name', css_class="form-control", wrapper_class='col-md-4'), Field('sex', css_class="custom-select", wrapper_class="col-md-4"), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('fathers_name', css_class="form-control", wrapper_class='col-md-6'), - Field('husbands_name', css_class="form-control", wrapper_class='col-md-6'), - css_class='form-row', + Field('spouse_name', css_class="form-control", wrapper_class='col-md-6'), + css_class='form-row my-3', ), Div( Field('date_of_birth', css_class="form-control", wrapper_class='col-md-4'), Field('year_of_admission', css_class="custom-select", wrapper_class='col-md-4'), Field('batch', css_class="custom-select", wrapper_class="col-md-4"), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('branch', css_class="custom-select", wrapper_class="col-md-6"), Field('programme', css_class="custom-select", wrapper_class="col-md-6"), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('mobile1', css_class="form-control", wrapper_class='col-md-4'), Field('mobile2', css_class="form-control", wrapper_class='col-md-4'), Field('phone_no', css_class="form-control", wrapper_class="col-md-4"), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('email', css_class="form-control", wrapper_class='col-md-6'), Field('alternate_email', css_class="form-control", wrapper_class='col-md-6'), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('current_address', css_class="form-control", wrapper_class='col-md'), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('country', wrapper_class="col-md-4"), Field('state', wrapper_class="col-md-4"), Field('city', wrapper_class="col-md-4"), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('permanent_address', css_class="form-control", wrapper_class='col-md'), - css_class='form-row', + css_class='form-row my-3', ), InlineRadios('working_status'), Div( @@ -319,22 +660,22 @@ def __init__(self, *args, **kwargs): Field('current_organisation', css_class="form-control", wrapper_class='col-md-6 col-lg-4'), Field('date_of_joining', css_class="form-control", wrapper_class='col-md-6 col-lg-4'), Field('past_experience', css_class="form-control", wrapper_class="col-md-6 col-lg-4"), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('current_course', css_class="form-control", wrapper_class='col-md-6 col-lg-4'), Field('current_university', css_class="form-control", wrapper_class='col-md-6 col-lg-4'), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('linkedin', css_class="form-control", wrapper_class='col-md-6'), Field('website', css_class="form-control", wrapper_class='col-md-6'), - css_class='form-row', + css_class='form-row my-3', ), Div( Field('facebook', css_class="form-control", wrapper_class='col-md-6'), Field('instagram', css_class="form-control", wrapper_class='col-md-6'), - css_class='form-row', + css_class='form-row my-3', ), Field('profile_picture', css_class="w-100"), # 'profile_picture', @@ -365,7 +706,7 @@ class Meta: 'instagram', 'name', 'fathers_name', - 'husbands_name', + 'spouse_name', 'sex', 'email', 'roll_no', @@ -392,6 +733,39 @@ class Meta: } +class SignUp(UserCreationForm): + username = forms.CharField( + label='Enter Username', min_length=4, max_length=150, widget=forms.TextInput(attrs={'placeholder': 'Enter your roll number'})) + email = forms.EmailField(label='Enter email', widget=forms.EmailInput( + attrs={'placeholder': 'Enter your email'})) + password1 = forms.CharField( + label='Enter password', widget=forms.PasswordInput(attrs={'placeholder': 'Enter your password'})) + password2 = forms.CharField( + label='Confirm password', widget=forms.PasswordInput(attrs={'placeholder': 'Reenter your password'})) + user_type = forms.ChoiceField(choices=(('A', 'Alumini'), ('S', 'Student'))) + + def clean_email(self): + email = self.cleaned_data['email'].lower() + r = User.objects.filter(email=email) + if re.findall("iiitdmj.ac.in$", email): + raise ValidationError( + "Institute email id is not accepted.Kindly enter your personal email id.") + return email + + def clean_username(self): + username = self.cleaned_data.get('username').lower() + r = User.objects.filter(username=username) + match = re.search('20\w\w\w\d\d\d', username) + match2 = re.search('20\d\d\d\d\d', username) + if(match == match2 == None): + raise ValidationError( + 'Please enter your institute roll number.' + ) + return username + + class Meta: + model = User + fields = ['username', 'email', 'password1', 'password2', 'user_type'] class PasswordResetRequestForm(forms.Form): roll_no = forms.IntegerField(label=("Roll No.")) email = forms.CharField(label=("Email"), max_length=254) diff --git a/AlumniConnect/urls.py b/AlumniConnect/urls.py index 75d37304..25a5e789 100644 --- a/AlumniConnect/urls.py +++ b/AlumniConnect/urls.py @@ -38,6 +38,7 @@ path('logout/', LogoutView.as_view(), name='logout'), path('register/', views.register, name='register'), path('newregister/', views.new_register, name='new_register'), + path('signup/', views.signup, name='signup'), re_path(r'^activate/(?P[0-9A-Za-z_\-]+)/(?P[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', views.activate, name='activate'), path('confirm/', TemplateView.as_view(template_name='AlumniConnect/confirm_email.html'), name = 'confirm'), path('success/', TemplateView.as_view(template_name='AlumniConnect/account_success.html'), name = 'success'), diff --git a/applications/alumniprofile/models.py b/applications/alumniprofile/models.py index c599a1bd..520496fc 100644 --- a/applications/alumniprofile/models.py +++ b/applications/alumniprofile/models.py @@ -10,6 +10,10 @@ class Constants: + USER_TYPE = ( + ('S','Student'), + ('A','Alumni') + ) SEX_CHOICES = ( ('M', 'Male'), ('F', 'Female'), @@ -28,6 +32,7 @@ class Constants: ('CSE', 'Computer Science and Engineering'), ('ECE', 'Electronics and Communication Engineering'), ('ME', 'Mechanical Engineering'), + ('SM', 'Smart Manufacturing'), ('NS', 'Natural Sciences'), ('MT', 'Mechatronics'), ('DS', 'Design'), @@ -41,11 +46,11 @@ class Constants: ) YEAR_OF_ADDMISSION = tuple((n, str(n)) for n in range(2005, datetime.datetime.now().year)) - + class Batch(models.Model): + # batch = models.IntegerField(primary_key=True,choices=Constants.BATCH_OF,default=2009) batch = models.IntegerField(primary_key=True) - def __str__(self): return str(self.batch) @@ -57,16 +62,16 @@ def upload_photo(instance, filename): class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) - roll_no = models.IntegerField(primary_key=True) - email = models.EmailField(null=False, default="") - alternate_email = models.EmailField(null=True, blank=True) + roll_no = models.CharField(primary_key=True,max_length=8) + email = models.EmailField(default="") + alternate_email = models.EmailField(null=True) year_of_admission = models.IntegerField(null=True, choices=Constants.YEAR_OF_ADDMISSION) batch = models.ForeignKey(Batch, on_delete=models.CASCADE) - name = models.CharField(max_length=1000, default="", null=False) + name = models.CharField(max_length=1000, default="", null=True) fathers_name = models.CharField(max_length=1000, default="") - husbands_name = models.CharField(null=True, blank=True, max_length=1000, default="") - programme = models.CharField(max_length=1000, choices=Constants.PROG_CHOICES, null=False) - branch = models.CharField(choices=Constants.BRANCH, max_length=1000, null=False) + spouse_name = models.CharField(null=True, blank=True, max_length=1000, default="") + programme = models.CharField(max_length=1000, choices=Constants.PROG_CHOICES) + branch = models.CharField(choices=Constants.BRANCH, max_length=1000) sex = models.CharField(max_length=2, choices=Constants.SEX_CHOICES, default='M') date_of_birth = models.DateField(default=datetime.date(1970, 1, 1)) current_address = models.TextField(max_length=1000, default="") @@ -74,7 +79,7 @@ class Profile(models.Model): mobile1 = models.BigIntegerField(null=True) mobile2 = models.BigIntegerField(null=True, blank=True) phone_no = models.BigIntegerField(null=True, blank=True) - working_status = models.CharField(max_length=1000, choices=Constants.WORKING_STATUS, default='1', null=False) + working_status = models.CharField(max_length=1000, choices=Constants.WORKING_STATUS, default='1') current_position = models.CharField(max_length=1000, null=True, blank=True) current_organisation = models.CharField(max_length=1000, null=True, blank=True) past_experience = models.IntegerField(null=True, blank=True) @@ -94,7 +99,7 @@ class Profile(models.Model): mail_sent = models.BooleanField(default=False) verify = models.BooleanField(null=True) mail_sent_tracker = FieldTracker(fields=['verify']) - + user_type = models.CharField(max_length=2, choices=Constants.USER_TYPE, default='A') def __str__(self): return self.name From c607e7df7516a08bbb7b3f2da9cc9026fe11c2be Mon Sep 17 00:00:00 2001 From: Saksham-1508 Date: Mon, 7 Feb 2022 23:04:59 +0530 Subject: [PATCH 2/3] removed extra fields from forms --- AlumniConnect/forms.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/AlumniConnect/forms.py b/AlumniConnect/forms.py index 9fdc7b2a..b0bacff0 100644 --- a/AlumniConnect/forms.py +++ b/AlumniConnect/forms.py @@ -55,9 +55,9 @@ def __init__(self, *args, **kwargs): self.fields['mobile2'].label = "Alternate Mobile No." self.fields['batch'].label = 'Year of Passing' self.fields['sex'].label = 'Gender' - self.fields['phone_no'].label = 'Phone No.' self.fields['date_of_birth'].label = 'Date of Birth' self.fields['year_of_admission'].label = 'Year of Admission' + self.fields['alternate_email'].label = 'Alternate Email' # self.fields['checkbox_terms'].label = 'I abide by the Terms and Conditions of the SAC' self.fields[ 'checkbox_update'].label = 'I will update my information at regular intervals and will engage in the Alumni network actively.' @@ -74,7 +74,7 @@ def __init__(self, *args, **kwargs): css_class='form-row my-3', ), Div( - Field('email', css_class="form-control", wrapper_class='col-md-5'), + Field('alternate_email', css_class="form-control", wrapper_class='col-md-5'), css_class='form-row my-3', ), Div( @@ -137,7 +137,7 @@ def __init__(self, *args, **kwargs): ) def clean(self): - super(Alumini_NewRegister, self).clean() # if necessary + super(Alumni_NewRegister, self).clean() # if necessary del self._errors['country'] del self._errors['city'] del self._errors['state'] @@ -151,8 +151,6 @@ class Meta: 'country', 'state', 'year_of_admission', - 'alternate_email', - 'phone_no', 'mobile1', 'mobile2', 'facebook', @@ -161,8 +159,7 @@ class Meta: 'fathers_name', 'spouse_name', 'sex', - 'email', - 'roll_no', + 'alternate_email', 'date_of_birth', 'date_of_joining', 'working_status', @@ -171,7 +168,6 @@ class Meta: 'batch', 'current_address', 'permanent_address', - 'phone_no', 'current_position', 'current_organisation', 'past_experience', @@ -237,6 +233,7 @@ def __init__(self, *args, **kwargs): self.fields['sex'].label = 'Gender' self.fields['date_of_birth'].label = 'Date of Birth' self.fields['year_of_admission'].label = 'Year of Admission' + self.fields['alternate_email'].label = 'Alternate Email' # self.fields['checkbox_terms'].label = 'I abide by the Terms and Conditions of the SAC' self.fields[ 'checkbox_update'].label = 'I will update my information at regular intervals and will engage in the Alumni network actively.' @@ -249,7 +246,7 @@ def __init__(self, *args, **kwargs): css_class='form-row my-3', ), Div( - Field('email', css_class="form-control",wrapper_class='col-md-5'), + Field('alternate_email', css_class="form-control",wrapper_class='col-md-5'), Field('sex', css_class="custom-select",wrapper_class="col-md-5"), css_class='form-row my-3', ), @@ -332,7 +329,7 @@ class Meta: 'mobile2', 'facebook', 'instagram', - 'name', + 'alternate_email', 'fathers_name', 'sex', 'email', @@ -742,7 +739,7 @@ class SignUp(UserCreationForm): label='Enter password', widget=forms.PasswordInput(attrs={'placeholder': 'Enter your password'})) password2 = forms.CharField( label='Confirm password', widget=forms.PasswordInput(attrs={'placeholder': 'Reenter your password'})) - user_type = forms.ChoiceField(choices=(('A', 'Alumini'), ('S', 'Student'))) + user_type = forms.ChoiceField(choices=(('A', 'Alumni'), ('S', 'Student'))) def clean_email(self): email = self.cleaned_data['email'].lower() From e410dfbc6c7b3b1949a8169451bc0de726b1b2af Mon Sep 17 00:00:00 2001 From: Saksham-1508 Date: Thu, 10 Feb 2022 09:57:24 +0530 Subject: [PATCH 3/3] name field added in student form --- AlumniConnect/forms.py | 6 ++++-- templates/AlumniConnect/login.html | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/AlumniConnect/forms.py b/AlumniConnect/forms.py index b0bacff0..7da9a986 100644 --- a/AlumniConnect/forms.py +++ b/AlumniConnect/forms.py @@ -175,7 +175,8 @@ class Meta: 'current_university', 'linkedin', 'website', - 'profile_picture'] + 'profile_picture', + 'checkbox_update'] widgets = { 'working_status': forms.RadioSelect(choices=Constants.WORKING_STATUS), @@ -321,6 +322,7 @@ class Meta: model = Profile fields = [ + 'name', 'city', 'country', 'state', @@ -332,12 +334,12 @@ class Meta: 'alternate_email', 'fathers_name', 'sex', - 'email', 'date_of_birth', 'branch', 'programme', 'batch', 'current_address', + 'checkbox_update', 'permanent_address', 'linkedin', 'website', diff --git a/templates/AlumniConnect/login.html b/templates/AlumniConnect/login.html index c55e74d5..c8bf71de 100644 --- a/templates/AlumniConnect/login.html +++ b/templates/AlumniConnect/login.html @@ -34,7 +34,7 @@