From 88fb835949b8b2f9c6697f3f0ddfc9e84f971c87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Thu, 26 Dec 2024 17:30:11 +0100 Subject: [PATCH] make quests optionially impolite --- .../0018_userpermissions_impolite_quests.py | 18 ++++++++++++++++++ src/c3nav/control/models.py | 1 + src/c3nav/editor/views/quest.py | 3 +++ 3 files changed, 22 insertions(+) create mode 100644 src/c3nav/control/migrations/0018_userpermissions_impolite_quests.py diff --git a/src/c3nav/control/migrations/0018_userpermissions_impolite_quests.py b/src/c3nav/control/migrations/0018_userpermissions_impolite_quests.py new file mode 100644 index 00000000..6170e0b4 --- /dev/null +++ b/src/c3nav/control/migrations/0018_userpermissions_impolite_quests.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.8 on 2024-12-26 16:29 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('control', '0017_userpermissions_quests'), + ] + + operations = [ + migrations.AddField( + model_name='userpermissions', + name='impolite_quests', + field=models.BooleanField(default=False, verbose_name='dont say thanks after completing a quest'), + ), + ] diff --git a/src/c3nav/control/models.py b/src/c3nav/control/models.py index 0d90020e..856e25aa 100644 --- a/src/c3nav/control/models.py +++ b/src/c3nav/control/models.py @@ -43,6 +43,7 @@ class UserPermissions(models.Model): nonpublic_themes = models.BooleanField(default=False, verbose_name=_('show non-public themes in theme selector')) quests: list[str] = SchemaField(schema=list[str], default=list) + impolite_quests = models.BooleanField(default=False, verbose_name=_('dont say thanks after completing a quest')) class Meta: verbose_name = _('User Permissions') diff --git a/src/c3nav/editor/views/quest.py b/src/c3nav/editor/views/quest.py index 24e37be3..69cf3905 100644 --- a/src/c3nav/editor/views/quest.py +++ b/src/c3nav/editor/views/quest.py @@ -5,6 +5,7 @@ from django.urls import reverse_lazy from django.views.generic.edit import FormView from c3nav.mapdata.quests.base import get_quest_for_request +from c3nav.site.views import close_response class QuestFormView(FormView): @@ -39,4 +40,6 @@ class QuestFormView(FormView): def form_valid(self, form): form.save() + if self.request.user_permissions.impolite_quests: + return close_response(self.request) return super().form_valid(form) \ No newline at end of file