From 7f389434a43bb2bce4161d8a028636c45a59dc86 Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Thu, 20 Mar 2025 09:46:59 +0100 Subject: [PATCH] Add organization dashboard and redirects --- src/servala/core/models/organization.py | 12 +++++++ .../dashboard.html} | 0 .../frontend/templates/includes/sidebar.html | 31 ++++++++++++------- src/servala/frontend/urls.py | 17 ++++++++-- src/servala/frontend/views/__init__.py | 3 +- src/servala/frontend/views/organization.py | 6 +++- 6 files changed, 54 insertions(+), 15 deletions(-) rename src/servala/frontend/templates/frontend/{index.html => organizations/dashboard.html} (100%) diff --git a/src/servala/core/models/organization.py b/src/servala/core/models/organization.py index 38bc699..8a1c552 100644 --- a/src/servala/core/models/organization.py +++ b/src/servala/core/models/organization.py @@ -1,5 +1,8 @@ from django.conf import settings from django.db import models +from django.urls import reverse +from django.utils.functional import cached_property +from django.utils.text import slugify from django.utils.translation import gettext_lazy as _ from .mixins import ServalaModelMixin @@ -29,6 +32,15 @@ class Organization(ServalaModelMixin, models.Model): verbose_name=_("Members"), ) + @cached_property + def slug(self): + return f"{slugify(self.name)}-{self.id}" + + def get_absolute_url(self): + return reverse( + "frontend:organization.dashboard", kwargs={"organization": self.slug} + ) + def set_owner(self, user): OrganizationMembership.objects.filter(user=user, organization=self).delete() OrganizationMembership.objects.create( diff --git a/src/servala/frontend/templates/frontend/index.html b/src/servala/frontend/templates/frontend/organizations/dashboard.html similarity index 100% rename from src/servala/frontend/templates/frontend/index.html rename to src/servala/frontend/templates/frontend/organizations/dashboard.html diff --git a/src/servala/frontend/templates/includes/sidebar.html b/src/servala/frontend/templates/includes/sidebar.html index 8c47293..1380052 100644 --- a/src/servala/frontend/templates/includes/sidebar.html +++ b/src/servala/frontend/templates/includes/sidebar.html @@ -5,7 +5,7 @@