Commit a32ffb0a80d4036b6603405faf15d2678e97354d
1 parent
6c35684c
Exists in
master
and in
5 other branches
Finished delete link view [Issue:#121]
Showing
1 changed file
with
23 additions
and
6 deletions
Show diff stats
links/views.py
... | ... | @@ -64,13 +64,30 @@ class CreateLink(LoginRequiredMixin, HasRoleMixin, NotificationMixin, generic.Cr |
64 | 64 | def get_success_url(self): |
65 | 65 | self.success_url = redirect('course:links:render_link', slug = self.object.slug) |
66 | 66 | return self.success_url |
67 | -def deleteLink(request,linkname): | |
68 | - link = get_object_or_404(Link,name = linkname) | |
69 | - link.delete() | |
70 | - template_name = 'links/delete_link.html' | |
71 | - messages.success(request,_("Link deleted Successfully!")) | |
72 | 67 | |
73 | - return redirect('course:manage') | |
68 | +class DeleteLink(LoginRequiredMixin, HasRoleMixin, generic.DeleteView): | |
69 | + allowed_roles = ['professor', 'system_admin'] | |
70 | + login_url = reverse_lazy("core:home") | |
71 | + redirect_field_name = 'next' | |
72 | + model = Link | |
73 | + template_name = 'links/delete_link.html' | |
74 | + | |
75 | + def dispatch(self, *args, **kwargs): | |
76 | + link = get_object_or_404(Link, slug = self.kwargs.get('slug')) | |
77 | + if(not (link.topic.owner == self.request.user) and not(has_role(self.request.user, 'system_admin')) ): | |
78 | + return self.handle_no_permission() | |
79 | + return super(DeleteLink, self).dispatch(*args, **kwargs) | |
80 | + | |
81 | + def get_context_data(self, **kwargs): | |
82 | + context = super(DeleteLink, self).get_context_data(**kwargs) | |
83 | + context['course'] = self.object.topic.subject.course | |
84 | + context['subject'] = self.object.topic.subject | |
85 | + context['link'] = self.object | |
86 | + context["topic"] = self.object.topic | |
87 | + return context | |
88 | + | |
89 | + def get_success_url(self): | |
90 | + return reverse_lazy('course:view_topic', kwargs={'slug' : self.object.topic.slug}) | |
74 | 91 | |
75 | 92 | def render_link(request, slug): |
76 | 93 | template_name = 'links/render_link.html' | ... | ... |