diff --git a/amadeus/static/js/topics.js b/amadeus/static/js/topics.js index c7a3ccf..5a171b2 100644 --- a/amadeus/static/js/topics.js +++ b/amadeus/static/js/topics.js @@ -63,4 +63,14 @@ function sendUpdate(data) { console.log(response); } }); +} + +function delete_topic(url) { + $('.modal').remove(); + + $.get(url, function (modal) { + $("#topics-accordion").after(modal); + + $('.modal').modal('show'); + }); } \ No newline at end of file diff --git a/topics/templates/topics/delete.html b/topics/templates/topics/delete.html new file mode 100644 index 0000000..1963c9d --- /dev/null +++ b/topics/templates/topics/delete.html @@ -0,0 +1,23 @@ +{% load i18n %} + + \ No newline at end of file diff --git a/topics/templates/topics/list.html b/topics/templates/topics/list.html index 167c8a4..78892d8 100644 --- a/topics/templates/topics/list.html +++ b/topics/templates/topics/list.html @@ -6,6 +6,7 @@
+ {% for topic in subject.topic_subject.all %} {% if not topic.repository and topic.visible or has_subject_permissions %}
@@ -25,7 +26,7 @@
diff --git a/topics/urls.py b/topics/urls.py index 5d77fed..88bff2c 100644 --- a/topics/urls.py +++ b/topics/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'^update_order/$', views.update_order, name = 'update_order'), ] diff --git a/topics/views.py b/topics/views.py index 914b5d8..2c69a99 100644 --- a/topics/views.py +++ b/topics/views.py @@ -114,6 +114,28 @@ class UpdateView(LoginRequiredMixin, generic.UpdateView): return reverse_lazy('subjects:view', kwargs = {'slug': self.object.subject.slug}) +class DeleteView(LoginRequiredMixin, generic.DeleteView): + login_url = reverse_lazy("users:login") + redirect_field_name = 'next' + + template_name = 'topics/delete.html' + model = Topic + context_object_name = 'topic' + + def dispatch(self, request, *args, **kwargs): + slug = self.kwargs.get('slug', '') + topic = get_object_or_404(Topic, slug = slug) + + if not has_subject_permissions(request.user, 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, _('Topic "%s" was removed from virtual enviroment "%s" successfully!')%(self.object.name, self.object.subject.name)) + + return reverse_lazy('subjects:view', kwargs = {'slug': self.object.subject.slug}) + def update_order(request): data = request.GET.get('data', None) -- libgit2 0.21.2