Commit ea89e68404fd26d4d8f880db4b979299de622e2a
1 parent
b04ecb94
Exists in
master
and in
3 other branches
Adding goals deletion
Showing
3 changed files
with
26 additions
and
3 deletions
Show diff stats
goals/models.py
@@ -26,10 +26,10 @@ class Goals(Resource): | @@ -26,10 +26,10 @@ class Goals(Resource): | ||
26 | return 'goals:update' | 26 | return 'goals:update' |
27 | 27 | ||
28 | def delete_link(self): | 28 | def delete_link(self): |
29 | - return 'file_links:delete' | 29 | + return 'goals:delete' |
30 | 30 | ||
31 | def delete_message(self): | 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 | class GoalItem(models.Model): | 34 | class GoalItem(models.Model): |
35 | description = models.CharField(_('Description'), max_length = 255, blank = True) | 35 | description = models.CharField(_('Description'), max_length = 255, blank = True) |
goals/urls.py
@@ -6,6 +6,7 @@ from . import views | @@ -6,6 +6,7 @@ from . import views | ||
6 | urlpatterns = [ | 6 | urlpatterns = [ |
7 | url(r'^create/(?P<slug>[\w_-]+)/$', views.CreateView.as_view(), name = 'create'), | 7 | url(r'^create/(?P<slug>[\w_-]+)/$', views.CreateView.as_view(), name = 'create'), |
8 | url(r'^update/(?P<topic_slug>[\w_-]+)/(?P<slug>[\w_-]+)/$', views.UpdateView.as_view(), name = 'update'), | 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 | url(r'^window_view/(?P<slug>[\w_-]+)/$', views.NewWindowView.as_view(), name = 'window_view'), | 10 | url(r'^window_view/(?P<slug>[\w_-]+)/$', views.NewWindowView.as_view(), name = 'window_view'), |
10 | url(r'^view/(?P<slug>[\w_-]+)/$', views.InsideView.as_view(), name = 'view'), | 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,4 +308,26 @@ class UpdateView(LoginRequiredMixin, generic.UpdateView): | ||
308 | 308 | ||
309 | success_url = reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) | 309 | success_url = reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) |
310 | 310 | ||
311 | - return success_url | ||
312 | \ No newline at end of file | 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 | \ No newline at end of file | 335 | \ No newline at end of file |