summaryrefslogtreecommitdiffstats
path: root/users/views/settings.py
diff options
context:
space:
mode:
authorAndrew Godwin2022-11-16 21:42:25 -0700
committerAndrew Godwin2022-11-16 21:42:25 -0700
commit5b34ea46c3f458a174c5443714ade43c21defdac (patch)
treee41dda2218cee559268f99a802210f7507f47b02 /users/views/settings.py
parent9d97fc92d82289301896c88f8c828321aa99701d (diff)
downloadtakahe-5b34ea46c3f458a174c5443714ade43c21defdac.tar.gz
takahe-5b34ea46c3f458a174c5443714ade43c21defdac.tar.bz2
takahe-5b34ea46c3f458a174c5443714ade43c21defdac.zip
Call it admin rather than system settings
Diffstat (limited to 'users/views/settings.py')
-rw-r--r--users/views/settings.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/users/views/settings.py b/users/views/settings.py
new file mode 100644
index 0000000..877ad01
--- /dev/null
+++ b/users/views/settings.py
@@ -0,0 +1,39 @@
+from django.utils.decorators import method_decorator
+from django.views.generic import RedirectView
+
+from core.models import Config
+from users.decorators import identity_required
+from users.views.admin import AdminSettingsPage
+
+
+@method_decorator(identity_required, name="dispatch")
+class SettingsRoot(RedirectView):
+ url = "/settings/interface/"
+
+
+class SettingsPage(AdminSettingsPage):
+ """
+ Shows a settings page dynamically created from our settings layout
+ at the bottom of the page. Don't add this to a URL directly - subclass!
+ """
+
+ options_class = Config.IdentityOptions
+ template_name = "settings/settings.html"
+
+ def load_config(self):
+ return Config.load_identity(self.request.identity)
+
+ def save_config(self, key, value):
+ Config.set_identity(self.request.identity, key, value)
+
+
+class InterfacePage(SettingsPage):
+
+ section = "interface"
+
+ options = {
+ "toot_mode": {
+ "title": "I Will Toot As I Please",
+ "help_text": "If enabled, changes all 'Post' buttons to 'Toot!'",
+ }
+ }