From a88f8cea34cb2e5298641c06d0ce17f314f7f51b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Mon, 2 Dec 2024 13:40:53 +0100 Subject: [PATCH] more stuff for not applying changesets when they have problems --- src/c3nav/editor/models/changeset.py | 2 +- src/c3nav/editor/templates/editor/changeset.html | 2 +- src/c3nav/editor/views/changes.py | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/c3nav/editor/models/changeset.py b/src/c3nav/editor/models/changeset.py index 2c01953a..142dffd9 100644 --- a/src/c3nav/editor/models/changeset.py +++ b/src/c3nav/editor/models/changeset.py @@ -167,7 +167,7 @@ class ChangeSet(models.Model): return self.can_edit(request) and self.state == 'unproposed' def can_propose(self, request): - return self.can_edit(request) and not self.proposed and self.changes + return self.can_edit(request) and not self.proposed and self.changes and not self.problems.any def can_unpropose(self, request): return self.author_id == request.user.pk and self.state in ('proposed', 'reproposed') diff --git a/src/c3nav/editor/templates/editor/changeset.html b/src/c3nav/editor/templates/editor/changeset.html index 2389b8bd..f34ed72d 100644 --- a/src/c3nav/editor/templates/editor/changeset.html +++ b/src/c3nav/editor/templates/editor/changeset.html @@ -143,7 +143,7 @@ {% endif %} {% if can_end_review %} - + {% endif %} {% endif %} {% if can_start_review %} diff --git a/src/c3nav/editor/views/changes.py b/src/c3nav/editor/views/changes.py index 7a4ec576..be493fa9 100644 --- a/src/c3nav/editor/views/changes.py +++ b/src/c3nav/editor/views/changes.py @@ -185,6 +185,10 @@ def changeset_detail(request, pk): messages.error(request, _('You cannot accept and apply these changes.')) return redirect(reverse('editor.changesets.detail', kwargs={'pk': changeset.pk})) + if not changeset.can_apply(request): + messages.error(request, _('You cannot apply this changeset cause it has problems.')) + return redirect(reverse('editor.changesets.detail', kwargs={'pk': changeset.pk})) + if request.POST.get('apply_confirm') == '1': changeset.apply(request.user) messages.success(request, _('You accepted and applied these changes.')) @@ -219,8 +223,8 @@ def changeset_detail(request, pk): 'can_unpropose': changeset.can_unpropose(request), 'can_start_review': changeset.can_start_review(request), 'can_end_review': changeset.can_end_review(request), - 'can_apply': changeset.can_apply(request), 'can_unreject': changeset.can_unreject(request), + 'can_apply': changeset.can_apply(request), 'active': active, }