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,13 +64,30 @@ class CreateLink(LoginRequiredMixin, HasRoleMixin, NotificationMixin, generic.Cr | ||
64 | def get_success_url(self): | 64 | def get_success_url(self): |
65 | self.success_url = redirect('course:links:render_link', slug = self.object.slug) | 65 | self.success_url = redirect('course:links:render_link', slug = self.object.slug) |
66 | return self.success_url | 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 | def render_link(request, slug): | 92 | def render_link(request, slug): |
76 | template_name = 'links/render_link.html' | 93 | template_name = 'links/render_link.html' |