Commit 8dbba617d44db21241f1a027bc8c0a27970aecf1

Authored by Zambom
1 parent 781cb416

Adding file link deletion

file_link/models.py
... ... @@ -42,4 +42,4 @@ class FileLink(Resource):
42 42 return 'file_links:update'
43 43  
44 44 def delete_link(self):
45   - return 'webpages:delete'
  45 + return 'file_links:delete'
... ...
file_link/templates/file_links/delete.html 0 → 100644
... ... @@ -0,0 +1,22 @@
  1 +{% load i18n %}
  2 +
  3 +<div class="modal fade" id="topic" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  4 + <div class="modal-dialog" role="document">
  5 + <div class="modal-content">
  6 + <div class="modal-body">
  7 + <form id="delete_form" action="{% url 'file_links:delete' file_link.slug %}" method="post">
  8 + {% csrf_token %}
  9 + <h4>{% trans 'Are you sure you want delete the file link' %}: {{ file_link }}?</h4>
  10 + </form>
  11 + </div>
  12 + <div class="modal-footer">
  13 + <div class="pull-right">
  14 + <button type="button" class="btn btn-default btn-raised" data-dismiss="modal">{% trans "Close" %}</button>
  15 + </div>
  16 + <div class="pull-left">
  17 + <button type="submit" form="delete_form" class="btn btn-success btn-raised">{% trans "Delete" %}</button>
  18 + </div>
  19 + </div>
  20 + </div>
  21 + </div>
  22 +</div>
0 23 \ No newline at end of file
... ...
file_link/urls.py
... ... @@ -6,5 +6,6 @@ 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'^download/(?P<slug>[\w_-]+)/$', views.DownloadFile.as_view(), name = 'download'),
10 11 ]
... ...
file_link/views.py
... ... @@ -239,4 +239,26 @@ class UpdateView(LoginRequiredMixin, generic.UpdateView):
239 239 def get_success_url(self):
240 240 messages.success(self.request, _('The File Link "%s" was updated successfully!')%(self.object.name))
241 241  
  242 + return reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug})
  243 +
  244 +class DeleteView(LoginRequiredMixin, generic.DeleteView):
  245 + login_url = reverse_lazy("users:login")
  246 + redirect_field_name = 'next'
  247 +
  248 + template_name = 'file_links/delete.html'
  249 + model = FileLink
  250 + context_object_name = 'file_link'
  251 +
  252 + def dispatch(self, request, *args, **kwargs):
  253 + slug = self.kwargs.get('slug', '')
  254 + file_link = get_object_or_404(FileLink, slug = slug)
  255 +
  256 + if not has_subject_permissions(request.user, file_link.topic.subject):
  257 + return redirect(reverse_lazy('subjects:home'))
  258 +
  259 + return super(DeleteView, self).dispatch(request, *args, **kwargs)
  260 +
  261 + def get_success_url(self):
  262 + messages.success(self.request, _('The File Link "%s" was removed successfully from virtual environment "%s"!')%(self.object.name, self.object.topic.subject.name))
  263 +
242 264 return reverse_lazy('subjects:view', kwargs = {'slug': self.object.topic.subject.slug})
243 265 \ No newline at end of file
... ...