-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathforms.py
More file actions
executable file
·79 lines (69 loc) · 2.71 KB
/
Copy pathforms.py
File metadata and controls
executable file
·79 lines (69 loc) · 2.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
from django.db import models
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User,Group
from si.models import Session,Student
from django import forms
import string
class SessionForm(forms.ModelForm):
class Meta:
model = Session
def clean_student(self):
students = self.cleaned_data['student']
try:
course = self.cleaned_data['course']
except:
return self.cleaned_data['student']
for s in students:
if s.course != course:
raise forms.ValidationError("Students must be part of selected course!")
return self.cleaned_data['student']
class UserAddForm(UserCreationForm):
first_name = forms.CharField(max_length=30)
last_name = forms.CharField(max_length=30)
email = forms.EmailField(max_length=75)
class Meta:
model = User
fields = ('first_name','last_name','email','username')
def save(self,commit=True):
user = super(UserCreationForm,self).save(commit=False)
user.set_password(self.cleaned_data["password1"])
user.email = self.cleaned_data['email']
user.first_name = self.cleaned_data["first_name"]
user.last_name = self.cleaned_data["last_name"]
user.is_active = True
user.is_staff = True
if commit:
user.save()
leaders = Group.objects.get(name='leaders')
leaders.user_set.add(user)
leaders.save()
return user
class SigninForm(forms.Form):
first_name = forms.CharField(max_length=30)
last_name = forms.CharField(max_length=30)
session = forms.IntegerField()
student = None
def clean(self):
cleaned_data = self.cleaned_data
session = cleaned_data.get('session')
first_name = cleaned_data.get('first_name')
last_name = cleaned_data.get('last_name')
if first_name == None or last_name == None:
return cleaned_data
first_name = string.capwords(first_name)
last_name = string.capwords(last_name)
sess = Session.objects.get(pk=session)
try:
stud = Student.objects.get(course=sess.course,first_name=first_name,last_name=last_name)
if stud in sess.student.all():
raise forms.ValidationError("You are already signed in!")
else:
self.student = stud
except Student.DoesNotExist:
raise forms.ValidationError("You are not a member of this course!")
return cleaned_data
def signin(self):
session = self.cleaned_data['session']
sess = Session.objects.get(pk=session)
sess.student.add(self.student)
sess.save()