Commit ea89e68404fd26d4d8f880db4b979299de622e2a

Authored by Zambom
1 parent b04ecb94

Adding goals deletion

goals/models.py
... ... @@ -26,10 +26,10 @@ class Goals(Resource):
26 26 return 'goals:update'
27 27  
28 28 def delete_link(self):
29   - return 'file_links:delete'
  29 + return 'goals:delete'
30 30  
31 31 def delete_message(self):
32   - return _('Are you sure you want delete the goals')
  32 + return _('Are you sure you want delete the %s topic goals specification')%(self.topic.name)
33 33  
34 34 class GoalItem(models.Model):
35 35 description = models.CharField(_('Description'), max_length = 255, blank = True)
... ...
goals/urls.py
... ... @@ -6,6 +6,7 @@ from . import views
6 6 urlpatterns = [
7 7 url(r'^create/(?P<slug>[\w_-]+)/$', views.CreateView.as_view(), name = 'create'),
8 8 url(r'^update/(?P<topic_slug>[\w_-]+)/(?P<slug>[\w_-]+)/$', views.UpdateView.as_view(), name = 'update'),
  9 + url(r'^delete/(?P<slug>[\w_-]+)/$', views.DeleteView.as_view(), name = 'delete'),
9 10 url(r'^window_view/(?P<slug>[\w_-]+)/$', views.NewWindowView.as_view(), name = 'window_view'),
10 11 url(r'^view/(?P<slug>[\w_-]+)/$', views.InsideView.as_view(), name = 'view'),
11 12 ]
... ...
goals/views.py
... ... @@ -308,4 +308,26 @@ class UpdateView(LoginRequiredMixin, generic.UpdateView):
308 308  
309 309 success_url = reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug})
310 310  
311   - return success_url
312 311 \ No newline at end of file
  312 + return success_url
  313 +
  314 +class DeleteView(LoginRequiredMixin, generic.DeleteView):
  315 + login_url = reverse_lazy("users:login")
  316 + redirect_field_name = 'next'
  317 +
  318 + template_name = 'resources/delete.html'
  319 + model = Goals
  320 + context_object_name = 'resource'
  321 +
  322 + def dispatch(self, request, *args, **kwargs):
  323 + slug = self.kwargs.get('slug', '')
  324 + goals = get_object_or_404(Goals, slug = slug)
  325 +
  326 + if not has_subject_permissions(request.user, goals.topic.subject):
  327 + return redirect(reverse_lazy('subjects:home'))
  328 +
  329 + return super(DeleteView, self).dispatch(request, *args, **kwargs)
  330 +
  331 + def get_success_url(self):
  332 + messages.success(self.request, _('The Goals specification of the thopic %s was removed successfully!')%(self.object.topic.name))
  333 +
  334 + return reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug})
313 335 \ No newline at end of file
... ...