Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions mainapp/admin.py
Original file line number Diff line number Diff line change
@@ -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)
38 changes: 31 additions & 7 deletions mainapp/forms.py
Original file line number Diff line number Diff line change
@@ -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


Expand All @@ -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
Expand Down Expand Up @@ -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'),
Expand Down
10 changes: 10 additions & 0 deletions mainapp/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

10 changes: 6 additions & 4 deletions mainapp/views.py
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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'],
Expand All @@ -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):
Expand Down
4 changes: 2 additions & 2 deletions templates/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@
</div>
</div>
<span class="user-auth d-flex">
<a href="#" class="item">Login</a>
<a href="#" class="item">Register</a>
<a href="{% url 'login' %}" class="item">Login</a>
<a href="{% url 'register' %}" class="item">Register</a>
</span>
</div>
</div>
Expand Down
1 change: 1 addition & 0 deletions templates/user_reg.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
{% csrf_token %}

{{ form.as_p }}
{{ skill_form.as_p }}
{{ form_pro.as_p }}

<input type="submit" value="Submit" />
Expand Down