Commit a3fa7886239e96d62c37c4f58be9c6be59a0f27e
1 parent
11b3072e
Exists in
master
and in
5 other branches
Teste de deletar enquete #79, #114
Showing
3 changed files
with
30 additions
and
7 deletions
Show diff stats
poll/permissions.py
@@ -10,3 +10,13 @@ def edit_poll(role, user, poll): | @@ -10,3 +10,13 @@ def edit_poll(role, user, poll): | ||
10 | return True | 10 | return True |
11 | 11 | ||
12 | return False | 12 | return False |
13 | + | ||
14 | +@register_object_checker() | ||
15 | +def delete_poll(role, user, poll): | ||
16 | + if (role == SystemAdmin): | ||
17 | + return True | ||
18 | + | ||
19 | + if (user in poll.topic.subject.professors.all()): | ||
20 | + return True | ||
21 | + | ||
22 | + return False |
poll/tests/poll.py
@@ -113,6 +113,19 @@ class PollTestCase(TestCase): | @@ -113,6 +113,19 @@ class PollTestCase(TestCase): | ||
113 | "limit_date":'2016-11-06', | 113 | "limit_date":'2016-11-06', |
114 | "all_students":True, | 114 | "all_students":True, |
115 | } | 115 | } |
116 | + self.client.login(username='student', password='testing') | ||
116 | self.assertNotEqual(poll_student, self.topic.activities.all()[self.topic.activities.all().count() - 1].name) # old name | 117 | self.assertNotEqual(poll_student, self.topic.activities.all()[self.topic.activities.all().count() - 1].name) # old name |
117 | response = self.client.post(url, data) | 118 | response = self.client.post(url, data) |
118 | - self.assertEqual(poll_student, self.topic.activities.all()[self.topic.activities.all().count() - 1].name) # new name | 119 | + self.assertNotEqual(poll_student, self.topic.activities.all()[self.topic.activities.all().count() - 1].name) # new name |
120 | + | ||
121 | + def test_poll_delete(self): | ||
122 | + url = reverse('course:poll:delete_poll',kwargs={'slug':self.poll.slug}) | ||
123 | + self.client.login(username='student', password='testing') | ||
124 | + poll = self.topic.activities.all().count() | ||
125 | + response = self.client.post(url) | ||
126 | + self.assertEqual(poll,self.topic.activities.all().count()) | ||
127 | + | ||
128 | + self.client.login(username='professor', password='testing') | ||
129 | + poll = self.topic.activities.all().count() | ||
130 | + response = self.client.post(url) | ||
131 | + self.assertEqual(poll - 1,self.topic.activities.all().count()) |
poll/views.py
@@ -125,7 +125,7 @@ class UpdatePoll(LoginRequiredMixin,HasRoleMixin,generic.UpdateView): | @@ -125,7 +125,7 @@ class UpdatePoll(LoginRequiredMixin,HasRoleMixin,generic.UpdateView): | ||
125 | 125 | ||
126 | return context | 126 | return context |
127 | 127 | ||
128 | -class DeletePoll(LoginRequiredMixin, generic.DeleteView): | 128 | +class DeletePoll(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): |
129 | 129 | ||
130 | allowed_roles = ['professor', 'system_admin'] | 130 | allowed_roles = ['professor', 'system_admin'] |
131 | login_url = reverse_lazy("core:home") | 131 | login_url = reverse_lazy("core:home") |
@@ -133,11 +133,11 @@ class DeletePoll(LoginRequiredMixin, generic.DeleteView): | @@ -133,11 +133,11 @@ class DeletePoll(LoginRequiredMixin, generic.DeleteView): | ||
133 | model = Poll | 133 | model = Poll |
134 | template_name = 'poll/remove.html' | 134 | template_name = 'poll/remove.html' |
135 | 135 | ||
136 | - # def dispatch(self, *args, **kwargs): | ||
137 | - # poll = get_object_or_404(Poll, slug = self.kwargs.get('slug')) | ||
138 | - # if(not has_object_permission('delete_subject', self.request.user, subject)): | ||
139 | - # return self.handle_no_permission() | ||
140 | - # return super(DeleteSubjectView, self).dispatch(*args, **kwargs) | 136 | + def dispatch(self, *args, **kwargs): |
137 | + poll = get_object_or_404(Poll, slug = self.kwargs.get('slug')) | ||
138 | + if(not has_object_permission('delete_poll', self.request.user, poll)): | ||
139 | + return self.handle_no_permission() | ||
140 | + return super(DeletePoll, self).dispatch(*args, **kwargs) | ||
141 | 141 | ||
142 | 142 | ||
143 | def get_context_data(self, **kwargs): | 143 | def get_context_data(self, **kwargs): |