diff --git a/mainapp/admin.py b/mainapp/admin.py
index c9daa64..29e880d 100644
--- a/mainapp/admin.py
+++ b/mainapp/admin.py
@@ -1,9 +1,9 @@
from django.contrib import admin
-from .models import Student, Project, ProjectSkills,UserProfile
+from .models import Student, Project, ProjectSkills,UserProfile, UserSkills
admin.site.register(Student)
admin.site.register(UserProfile)
admin.site.register(Project)
admin.site.register(ProjectSkills)
-
+admin.site.register(UserSkills)
diff --git a/mainapp/forms.py b/mainapp/forms.py
index 8584072..1bfee95 100644
--- a/mainapp/forms.py
+++ b/mainapp/forms.py
@@ -1,7 +1,7 @@
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import AuthenticationForm
-from .models import Project, ProjectSkills, Student, UserProfile
+from .models import Project, ProjectSkills, Student, UserProfile, UserSkills
import datetime
@@ -13,12 +13,12 @@ class LoginForm(AuthenticationForm):
class RegistrationForm(forms.ModelForm):
- first_name = forms.CharField(label='',required=True, widget=forms.TextInput(attrs={'placeholder': 'First_Name'}))
- last_name = forms.CharField(label='', widget=forms.TextInput(attrs={'placeholder': 'Last_Name'}))
- username = forms.CharField(label='', widget=forms.TextInput(attrs={'placeholder': 'UserName'}))
- password1 = forms.CharField(label='', widget=forms.PasswordInput(attrs={'placeholder': 'Password'}))
- password2 = forms.CharField(label='', widget=forms.PasswordInput(attrs={'placeholder': 'Re-Enter Password'}))
- email = forms.EmailField(label='', widget=forms.EmailInput(attrs={'placeholder': 'Email'}))
+ first_name = forms.CharField(label='First Name',required=True, widget=forms.TextInput(attrs={'placeholder': 'First Name'}))
+ last_name = forms.CharField(label='Last Name', widget=forms.TextInput(attrs={'placeholder': 'Last Name'}))
+ username = forms.CharField(label='Username', widget=forms.TextInput(attrs={'placeholder': 'Username'}))
+ password1 = forms.CharField(label='Password', widget=forms.PasswordInput(attrs={'placeholder': 'Password'}))
+ password2 = forms.CharField(label='Verify Password', widget=forms.PasswordInput(attrs={'placeholder': 'Re-Enter Password'}))
+ email = forms.EmailField(label='Email', widget=forms.EmailInput(attrs={'placeholder': 'Email'}))
class Meta:
model = User
@@ -65,6 +65,30 @@ class Meta:
fields = ['u_gender', 'u_dob']
+class UserSkillsForm(forms.ModelForm):
+ first_skill = forms.CharField(label='Skill (1)', required=True, widget=forms.TextInput(attrs={'placeholder': 'Team Player, etc...'}))
+ second_skill = forms.CharField(label='Skill (2)', required=False, widget=forms.TextInput(attrs={'placeholder': 'Presenter, etc...'}))
+ third_skill = forms.CharField(label='Skill (3)', required=False, widget=forms.TextInput(attrs={'placeholder': 'Programming, etc...'}))
+
+
+ class Meta:
+ model = UserSkills
+ fields = ['first_skill', 'second_skill', 'third_skill']
+
+ def clean(self):
+ first_skill = self.cleaned_data['first_skill']
+ second_skill = self.cleaned_data['second_skill']
+ third_skill = self.cleaned_data['third_skill']
+ if ( 'first_skill' in self.cleaned_data and 'second_skill' in self.cleaned_data \
+ and 'third_skill' in self.cleaned_data ) and \
+ ( self.cleaned_data['first_skill'] == self.cleaned_data['second_skill'] \
+ or self.cleaned_data['first_skill'] == self.cleaned_data['third_skill'] \
+ or (self.cleaned_data['second_skill'] == self.cleaned_data['third_skill'] and self.cleaned_data['third_skill'] != '') ):
+ raise forms.ValidationError("Skills cannot be matching.")
+ return self.cleaned_data
+
+
+
class ProjectForm(forms.ModelForm):
CHOICES = [('B', 'Beginner'),
('I', 'Intermediate'),
diff --git a/mainapp/models.py b/mainapp/models.py
index a86887d..e72114f 100644
--- a/mainapp/models.py
+++ b/mainapp/models.py
@@ -54,3 +54,13 @@ class UserProfile(models.Model):
def __str__(self):
return self.user.username
+
+class UserSkills(models.Model):
+ user = models.OneToOneField(User, on_delete=models.CASCADE)
+ first_skill = models.TextField(max_length=100)
+ second_skill = models.TextField(max_length=100)
+ third_skill = models.TextField(max_length=100)
+
+ def __str__(self):
+ return self.user.username
+
\ No newline at end of file
diff --git a/mainapp/views.py b/mainapp/views.py
index 0f96572..4fcd24a 100644
--- a/mainapp/views.py
+++ b/mainapp/views.py
@@ -1,5 +1,5 @@
from django.contrib import messages
-from .forms import RegistrationForm, ProfileForm, ProjectForm,UserProfileForm, LoginForm
+from .forms import RegistrationForm, ProfileForm, ProjectForm,UserProfileForm, LoginForm, UserSkillsForm
from .forms import RegistrationForm, ProfileForm, ProjectForm, SearchForm
from django.contrib.auth.models import User
from django.shortcuts import render, redirect, get_object_or_404
@@ -49,7 +49,8 @@ def user_register(request):
if request.method == 'POST':
form = RegistrationForm(request.POST) #This will be used in POST request
form_pro = ProfileForm(request.POST)
- if form.is_valid() and form_pro.is_valid():
+ skill_form = UserSkillsForm(request.POST)
+ if form.is_valid() and form_pro.is_valid() and skill_form.is_valid():
user = User.objects.create_user(
username=form.cleaned_data['username'],
email=form.cleaned_data['email'],
@@ -67,10 +68,11 @@ def user_register(request):
messages.error(request, "Error")
else:
-
form = RegistrationForm()
form_pro = ProfileForm()
- return render(request, 'user_reg.html', {'form': form, 'form_pro': form_pro})
+ skill_form = UserSkillsForm()
+
+ return render(request, 'user_reg.html', {'form': form, 'skill_form': skill_form, 'form_pro': form_pro})
def profile_update(request):
diff --git a/templates/base.html b/templates/base.html
index cd88f4c..2243f1f 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -40,8 +40,8 @@
- Login
- Register
+ Login
+ Register
diff --git a/templates/user_reg.html b/templates/user_reg.html
index b6e6b0c..8359dfb 100644
--- a/templates/user_reg.html
+++ b/templates/user_reg.html
@@ -5,6 +5,7 @@
{% csrf_token %}
{{ form.as_p }}
+ {{ skill_form.as_p }}
{{ form_pro.as_p }}