summaryrefslogtreecommitdiffstats
path: root/users/views
diff options
context:
space:
mode:
Diffstat (limited to 'users/views')
-rw-r--r--users/views/admin.py (renamed from users/views/settings_system.py)46
-rw-r--r--users/views/settings.py (renamed from users/views/settings_identity.py)12
2 files changed, 39 insertions, 19 deletions
diff --git a/users/views/settings_system.py b/users/views/admin.py
index e5e9e85..c1210f1 100644
--- a/users/views/settings_system.py
+++ b/users/views/admin.py
@@ -10,28 +10,26 @@ from django.views.generic import FormView, RedirectView, TemplateView
from core.models import Config
from users.decorators import admin_required
-from users.models import Domain
+from users.models import Domain, Identity, User
@method_decorator(admin_required, name="dispatch")
-class SystemSettingsRoot(RedirectView):
- url = "/settings/system/basic/"
+class AdminRoot(RedirectView):
+ pattern_name = "admin_basic"
@method_decorator(admin_required, name="dispatch")
-class SystemSettingsPage(FormView):
+class AdminSettingsPage(FormView):
"""
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!
"""
- template_name = "settings/settings_system.html"
+ template_name = "admin/settings.html"
options_class = Config.SystemOptions
section: ClassVar[str]
options: Dict[str, Dict[str, str]]
- extra_context = {"top_section": "settings_system"}
-
def get_form_class(self):
# Create the fields dict from the config object
fields = {}
@@ -84,7 +82,7 @@ class SystemSettingsPage(FormView):
return redirect(".")
-class BasicPage(SystemSettingsPage):
+class BasicPage(AdminSettingsPage):
section = "basic"
@@ -103,7 +101,7 @@ class BasicPage(SystemSettingsPage):
@method_decorator(admin_required, name="dispatch")
class DomainsPage(TemplateView):
- template_name = "settings/settings_system_domains.html"
+ template_name = "admin/domains.html"
def get_context_data(self):
return {
@@ -115,7 +113,7 @@ class DomainsPage(TemplateView):
@method_decorator(admin_required, name="dispatch")
class DomainCreatePage(FormView):
- template_name = "settings/settings_system_domain_create.html"
+ template_name = "admin/domain_create.html"
extra_context = {"section": "domains"}
class form_class(forms.Form):
@@ -175,7 +173,7 @@ class DomainCreatePage(FormView):
@method_decorator(admin_required, name="dispatch")
class DomainEditPage(FormView):
- template_name = "settings/settings_system_domain_edit.html"
+ template_name = "admin/domain_edit.html"
extra_context = {"section": "domains"}
class form_class(forms.Form):
@@ -221,7 +219,7 @@ class DomainEditPage(FormView):
@method_decorator(admin_required, name="dispatch")
class DomainDeletePage(TemplateView):
- template_name = "settings/settings_system_domain_delete.html"
+ template_name = "admin/domain_delete.html"
def dispatch(self, request, domain):
self.domain = get_object_or_404(
@@ -241,3 +239,27 @@ class DomainDeletePage(TemplateView):
raise ValueError("Tried to delete domain with identities!")
self.domain.delete()
return redirect("/settings/system/domains/")
+
+
+@method_decorator(admin_required, name="dispatch")
+class UsersPage(TemplateView):
+
+ template_name = "admin/users.html"
+
+ def get_context_data(self):
+ return {
+ "users": User.objects.order_by("email"),
+ "section": "users",
+ }
+
+
+@method_decorator(admin_required, name="dispatch")
+class IdentitiesPage(TemplateView):
+
+ template_name = "admin/identities.html"
+
+ def get_context_data(self):
+ return {
+ "identities": Identity.objects.order_by("username"),
+ "section": "identities",
+ }
diff --git a/users/views/settings_identity.py b/users/views/settings.py
index f35928a..877ad01 100644
--- a/users/views/settings_identity.py
+++ b/users/views/settings.py
@@ -3,24 +3,22 @@ from django.views.generic import RedirectView
from core.models import Config
from users.decorators import identity_required
-from users.views.settings_system import SystemSettingsPage
+from users.views.admin import AdminSettingsPage
@method_decorator(identity_required, name="dispatch")
-class IdentitySettingsRoot(RedirectView):
+class SettingsRoot(RedirectView):
url = "/settings/interface/"
-class IdentitySettingsPage(SystemSettingsPage):
+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!
"""
- extra_context = {"top_section": "settings"}
-
options_class = Config.IdentityOptions
- template_name = "settings/settings_identity.html"
+ template_name = "settings/settings.html"
def load_config(self):
return Config.load_identity(self.request.identity)
@@ -29,7 +27,7 @@ class IdentitySettingsPage(SystemSettingsPage):
Config.set_identity(self.request.identity, key, value)
-class InterfacePage(IdentitySettingsPage):
+class InterfacePage(SettingsPage):
section = "interface"