Commit 692a2510ab0944980dfe8b75266449d58d3524e7
1 parent
7baf9496
Exists in
master
and in
5 other branches
bug nas urls, falta de template/correção de bugs #171
Showing
5 changed files
with
38 additions
and
16 deletions
Show diff stats
exam/forms.py
... | ... | @@ -4,7 +4,7 @@ from .models import Exam |
4 | 4 | class ExamForm(forms.ModelForm): |
5 | 5 | def clean_end_date(self): |
6 | 6 | beginDate = self.data['beginDate'] |
7 | - endDate = self.data['endDate] | |
7 | + endDate = self.data['endDate'] | |
8 | 8 | |
9 | 9 | if beginDate and endDate and endDate < beginDate: |
10 | 10 | raise forms.ValidationError(_('The end date may not be before the start date.')) |
... | ... | @@ -12,7 +12,7 @@ class ExamForm(forms.ModelForm): |
12 | 12 | |
13 | 13 | def clean_begin_date(self): |
14 | 14 | endDate = self.data['endDate'] |
15 | - beginDate = self.data['beignDate'] | |
15 | + beginDate = self.data['beginDate'] | |
16 | 16 | |
17 | 17 | if enDate and benginDate and beginDate <= endDate: |
18 | 18 | raise forms.ValidationError(_('The exam start date must be after the end of registration.')) |
... | ... | @@ -28,14 +28,12 @@ class ExamForm(forms.ModelForm): |
28 | 28 | |
29 | 29 | |
30 | 30 | |
31 | - class Meta: | |
32 | - model = Exam | |
33 | - fields = ['name','beginDate','endDate'] | |
31 | + class Meta: | |
32 | + model = Exam | |
33 | + fields = ['name','beginDate','endDate'] | |
34 | 34 | |
35 | - widgets = { | |
36 | - 'name': forms.TextInput(attrs={'placeholder': 'Exam?'}), | |
37 | - 'beginDate': forms.DateTimeInput( | |
38 | - attrs={'placeholder': 'Start date to resolve the exam'}), | |
39 | - 'endDate': forms.DateTimeInput( | |
40 | - attrs={'placeholder': 'Finish date permited to resolve the exam'}), | |
41 | - } | |
35 | + widgets = { | |
36 | + 'name': forms.TextInput(attrs={'placeholder': 'Exam?'}), | |
37 | + 'beginDate': forms.DateTimeInput(attrs={'placeholder': 'Start date to resolve the exam'}), | |
38 | + 'endDate': forms.DateTimeInput(attrs={'placeholder': 'Finish date permited to resolve the exam'}), | |
39 | + } | ... | ... |
exam/models.py
... | ... | @@ -0,0 +1,12 @@ |
1 | +from rolepermissions.permissions import register_object_checker | |
2 | +from amadeus.roles import SystemAdmin | |
3 | + | |
4 | +@register_object_checker() | |
5 | +def edit_exam(role, user, exam): | |
6 | + if (role == SystemAdmin): | |
7 | + return True | |
8 | + | |
9 | + if (user in exam.topic.subject.professors.all()): | |
10 | + return True | |
11 | + | |
12 | + return False | ... | ... |
... | ... | @@ -0,0 +1,9 @@ |
1 | +from django.conf.urls import url | |
2 | + | |
3 | +from . import views | |
4 | + | |
5 | +urlpatterns = [ | |
6 | + url(r'^create/(?P<slug>[\w\-_]+)/$', views.CreateExam.as_view(), name='create_poll'), | |
7 | + url(r'^update/(?P<slug>[\w\-_]+)/$', views.UpdateExam.as_view(), name='update_poll'), | |
8 | + | |
9 | +] | ... | ... |
exam/views.py
... | ... | @@ -16,7 +16,7 @@ from core.mixins import NotificationMixin |
16 | 16 | from users.models import User |
17 | 17 | from courses.models import Course, Topic |
18 | 18 | |
19 | -class CreatePoll(LoginRequiredMixin,generic.CreateView): | |
19 | +class CreateExam(LoginRequiredMixin,generic.CreateView): | |
20 | 20 | |
21 | 21 | login_url = reverse_lazy("core:home") |
22 | 22 | redirect_field_name = 'next' |
... | ... | @@ -39,7 +39,7 @@ class CreatePoll(LoginRequiredMixin,generic.CreateView): |
39 | 39 | |
40 | 40 | return super(CreateExam, self).form_valid(form) |
41 | 41 | |
42 | - def form_invalid(self, form,**kwargs): | |
42 | + def form_invalid(self, form,**kwargs): | |
43 | 43 | context = super(CreateExam, self).form_invalid(form) |
44 | 44 | answers = {} |
45 | 45 | for key in self.request.POST: |
... | ... | @@ -61,14 +61,15 @@ class UpdateExam(LoginRequiredMixin,generic.UpdateView): |
61 | 61 | template_name = 'poll/form_exam.html' |
62 | 62 | success_url = reverse_lazy('core:home') |
63 | 63 | |
64 | - def dispatch(self, *args, **kwargs): | |
64 | + def dispatch(self, *args, **kwargs): | |
65 | 65 | poll = get_object_or_404(Poll, slug = self.kwargs.get('slug')) |
66 | + | |
66 | 67 | if(not has_object_permission('edit_exam', self.request.user, exam)): |
67 | 68 | return self.handle_no_permission() |
68 | 69 | return super(UpdateExam, self).dispatch(*args, **kwargs) |
69 | 70 | |
70 | 71 | def get_object(self, queryset=None): |
71 | - return get_object_or_404(Poll, slug = self.kwargs.get('slug')) | |
72 | + return get_object_or_404(Poll, slug = self.kwargs.get('slug')) | |
72 | 73 | |
73 | 74 | def form_valid(self, form): |
74 | 75 | poll = self.object | ... | ... |