diff --git a/file_link/models.py b/file_link/models.py index e112b9d..bc51b1f 100644 --- a/file_link/models.py +++ b/file_link/models.py @@ -42,4 +42,4 @@ class FileLink(Resource): return 'file_links:update' def delete_link(self): - return 'webpages:delete' + return 'file_links:delete' diff --git a/file_link/templates/file_links/delete.html b/file_link/templates/file_links/delete.html new file mode 100644 index 0000000..a4e0660 --- /dev/null +++ b/file_link/templates/file_links/delete.html @@ -0,0 +1,22 @@ +{% load i18n %} + + \ No newline at end of file diff --git a/file_link/urls.py b/file_link/urls.py index 097870e..c2ee34c 100644 --- a/file_link/urls.py +++ b/file_link/urls.py @@ -6,5 +6,6 @@ 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'^download/(?P[\w_-]+)/$', views.DownloadFile.as_view(), name = 'download'), ] diff --git a/file_link/views.py b/file_link/views.py index 7d106fa..1754e27 100644 --- a/file_link/views.py +++ b/file_link/views.py @@ -239,4 +239,26 @@ class UpdateView(LoginRequiredMixin, generic.UpdateView): def get_success_url(self): messages.success(self.request, _('The File Link "%s" was updated successfully!')%(self.object.name)) + return reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) + +class DeleteView(LoginRequiredMixin, generic.DeleteView): + login_url = reverse_lazy("users:login") + redirect_field_name = 'next' + + template_name = 'file_links/delete.html' + model = FileLink + context_object_name = 'file_link' + + def dispatch(self, request, *args, **kwargs): + slug = self.kwargs.get('slug', '') + file_link = get_object_or_404(FileLink, slug = slug) + + if not has_subject_permissions(request.user, file_link.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 File Link "%s" was removed successfully from virtual environment "%s"!')%(self.object.name, self.object.topic.subject.name)) + return reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug}) \ No newline at end of file -- libgit2 0.21.2