Commit a32ffb0a80d4036b6603405faf15d2678e97354d

Authored by Gustavo Bernardo
1 parent 6c35684c

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'
... ...