diff --git a/goals/models.py b/goals/models.py index 804f7bf..17f93ad 100644 --- a/goals/models.py +++ b/goals/models.py @@ -26,10 +26,10 @@ class Goals(Resource): return 'goals:update' def delete_link(self): - return 'file_links:delete' + return 'goals:delete' def delete_message(self): - return _('Are you sure you want delete the goals') + return _('Are you sure you want delete the %s topic goals specification')%(self.topic.name) class GoalItem(models.Model): description = models.CharField(_('Description'), max_length = 255, blank = True) diff --git a/goals/urls.py b/goals/urls.py index 9bbfa3b..b93055e 100644 --- a/goals/urls.py +++ b/goals/urls.py @@ -6,6 +6,7 @@ from . import views urlpatterns = [ url(r'^create/(?P[\w_-]+)/$', views.CreateView.as_view(), name = 'create'), url(r'^update/(?P[\w_-]+)/(?P[\w_-]+)/$', views.UpdateView.as_view(), name = 'update'), + url(r'^delete/(?P[\w_-]+)/$', views.DeleteView.as_view(), name = 'delete'), url(r'^window_view/(?P[\w_-]+)/$', views.NewWindowView.as_view(), name = 'window_view'), url(r'^view/(?P[\w_-]+)/$', views.InsideView.as_view(), name = 'view'), ] diff --git a/goals/views.py b/goals/views.py index 646e520..4bb02e6 100644 --- a/goals/views.py +++ b/goals/views.py @@ -308,4 +308,26 @@ class UpdateView(LoginRequiredMixin, generic.UpdateView): success_url = reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) - return success_url \ No newline at end of file + return success_url + +class DeleteView(LoginRequiredMixin, generic.DeleteView): + login_url = reverse_lazy("users:login") + redirect_field_name = 'next' + + template_name = 'resources/delete.html' + model = Goals + context_object_name = 'resource' + + def dispatch(self, request, *args, **kwargs): + slug = self.kwargs.get('slug', '') + goals = get_object_or_404(Goals, slug = slug) + + if not has_subject_permissions(request.user, goals.topic.subject): + return redirect(reverse_lazy('subjects:home')) + + return super(DeleteView, self).dispatch(request, *args, **kwargs) + + def get_success_url(self): + messages.success(self.request, _('The Goals specification of the thopic %s was removed successfully!')%(self.object.topic.name)) + + return reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) \ No newline at end of file -- libgit2 0.21.2