|
|
@@ -1,6 +1,7 @@
|
|
1
|
1
|
from django.shortcuts import render
|
|
2
|
2
|
from census.models import Course,Count,Lesson
|
|
3
|
3
|
from django import forms
|
|
|
4
|
+from django.http import HttpResponseRedirect
|
|
4
|
5
|
|
|
5
|
6
|
#Auxiliariy functions
|
|
6
|
7
|
|
|
|
@@ -39,8 +40,15 @@ def getCourseStatistics(course):
|
|
39
|
40
|
course.lessonscount= course.lessons.count()
|
|
40
|
41
|
return course
|
|
41
|
42
|
|
|
42
|
|
-class addCountForm(forms.Form):
|
|
43
|
|
- course = forms.CharField(label="Cours",max_length=60)
|
|
|
43
|
+class addCountForm(forms.ModelForm):
|
|
|
44
|
+ class Meta:
|
|
|
45
|
+ model = Count
|
|
|
46
|
+ def clean_census(self):
|
|
|
47
|
+ census = self.cleaned_data['census']
|
|
|
48
|
+ enrolled = self.cleaned_data['lesson'].course.enrolled
|
|
|
49
|
+ if (census>enrolled):
|
|
|
50
|
+ raise forms.ValidationError("Tu as compté plus de gens qu'il n'y a de personnes inscrites dans ce cours !")
|
|
|
51
|
+ return census # Ne pas oublier de renvoyer le contenu du champ traité
|
|
44
|
52
|
|
|
45
|
53
|
#Views
|
|
46
|
54
|
|
|
|
@@ -69,15 +77,14 @@ def addcount(request):
|
|
69
|
77
|
if request.method == 'POST':
|
|
70
|
78
|
# create a form instance and populate it with data from the request:
|
|
71
|
79
|
form = addCountForm(request.POST)
|
|
|
80
|
+ form.fields["lesson"].queryset = Lesson.objects.all().order_by('-date')
|
|
72
|
81
|
# check whether it's valid:
|
|
73
|
82
|
if form.is_valid():
|
|
74
|
|
- # process the data in form.cleaned_data as required
|
|
75
|
|
- # ...
|
|
76
|
|
- # redirect to a new URL:
|
|
77
|
|
- return HttpResponseRedirect('/')
|
|
78
|
|
-
|
|
|
83
|
+ count = form.save()
|
|
|
84
|
+ return HttpResponseRedirect('/cours/'+ str(count.lesson.course.id))
|
|
79
|
85
|
# if a GET (or any other method) we'll create a blank form
|
|
80
|
86
|
else:
|
|
81
|
87
|
form = addCountForm()
|
|
|
88
|
+ form.fields["lesson"].queryset = Lesson.objects.all().order_by('-date')
|
|
82
|
89
|
|
|
83
|
90
|
return render(request, 'addcountTemplate.html', {'form': form})
|