diff --git a/openslides/motion/models.py b/openslides/motion/models.py index 47646094e..25260f71d 100644 --- a/openslides/motion/models.py +++ b/openslides/motion/models.py @@ -535,6 +535,8 @@ class Category(models.Model): def get_absolute_url(self, link='update'): if link == 'update' or link == 'edit': return reverse('motion_category_update', args=[str(self.id)]) + if link == 'delete': + return reverse('motion_category_delete', args=[str(self.id)]) class Meta: ordering = ['prefix'] diff --git a/openslides/motion/urls.py b/openslides/motion/urls.py index 06bccb7b2..1fd507ad1 100644 --- a/openslides/motion/urls.py +++ b/openslides/motion/urls.py @@ -119,4 +119,9 @@ urlpatterns = patterns('openslides.motion.views', 'category_update', name='motion_category_update', ), + + url(r'^category/(?P\d+)/del/$', + 'category_delete', + name='motion_category_delete', + ), ) diff --git a/openslides/motion/views.py b/openslides/motion/views.py index 126c1eeab..a9aae4b0a 100644 --- a/openslides/motion/views.py +++ b/openslides/motion/views.py @@ -492,6 +492,14 @@ class CategoryUpdateView(UpdateView): category_update = CategoryUpdateView.as_view() +class CategoryDeleteView(DeleteView): + permission_required = 'motion.can_manage_motion' + model = Category + success_url_name = 'motion_category_list' + +category_delete = CategoryDeleteView.as_view() + + class Config(FormView): """The View for the config tab.""" permission_required = 'config.can_manage_config' diff --git a/openslides/utils/views.py b/openslides/utils/views.py index 928e56767..00bc6b9fa 100644 --- a/openslides/utils/views.py +++ b/openslides/utils/views.py @@ -304,7 +304,8 @@ class DeleteView(SingleObjectMixin, QuestionMixin, RedirectView): return super(DeleteView, self).get(request, *args, **kwargs) def get_redirect_url(self, **kwargs): - if self.request.method == 'GET' and self.question_url_name is None: + if self.question_url_name is None and (self.request.method == 'GET' or + self.get_answer() == 'no'): return self.object.get_absolute_url() else: return super(DeleteView, self).get_redirect_url(**kwargs)