From 0589893df1a87b335a1fa52e0636562fa0669c1b Mon Sep 17 00:00:00 2001 From: Trey <73353716+TreyWW@users.noreply.github.com> Date: Sun, 13 Oct 2024 14:38:18 +0100 Subject: [PATCH] moved team/user selection dropdown to top left rather than in dropdown Signed-off-by: Trey <73353716+TreyWW@users.noreply.github.com> --- backend/core/api/teams/switch_team.py | 8 +-- backend/core/models.py | 14 ++++++ frontend/templates/base/topbar/_topbar.html | 31 +----------- .../base/topbar/team_selector/selector.html | 50 +++++++++++++++++++ .../templates/components/+logged_in_for.html | 13 ----- 5 files changed, 70 insertions(+), 46 deletions(-) create mode 100644 frontend/templates/base/topbar/team_selector/selector.html diff --git a/backend/core/api/teams/switch_team.py b/backend/core/api/teams/switch_team.py index b2a5a978c..f1a12eda3 100644 --- a/backend/core/api/teams/switch_team.py +++ b/backend/core/api/teams/switch_team.py @@ -7,17 +7,17 @@ def switch_team(request: HtmxHttpRequest, team_id: str | int | None = None): - if not team_id: team_id = request.POST.get("join_team", None) if not team_id: if not request.user.logged_in_as_team: - messages.error(request, "You are not logged into an organization") + messages.warning(request, "You are not logged into an organization") + else: + messages.success(request, "You are now logged into your personal account") request.user.logged_in_as_team = None request.user.save() - messages.success(request, "You are now logged into your personal account") response = HttpResponse(status=200) response["HX-Refresh"] = "true" return response @@ -36,7 +36,7 @@ def switch_team(request: HtmxHttpRequest, team_id: str | int | None = None): messages.error(request, "You are not a member of this team") return render(request, "partials/messages_list.html") - messages.success(request, f"Now signing in for {team.name}") + messages.success(request, f"Now signing into the organization '{team.name}'") request.user.logged_in_as_team = team request.user.save() diff --git a/backend/core/models.py b/backend/core/models.py index 76c100f4d..874b53cb6 100644 --- a/backend/core/models.py +++ b/backend/core/models.py @@ -1,5 +1,6 @@ from __future__ import annotations +import itertools import typing from datetime import datetime, date, timedelta from typing import Literal, Union @@ -92,6 +93,14 @@ class Role(models.TextChoices): def name(self): return self.first_name + @property + def teams_apart_of(self) -> set[QuerySet[Organization]]: + return set(itertools.chain(self.teams_joined.all(), self.teams_leader_of.all())) + + @property + def is_org(self): + return False + def add_3hrs_from_now(): return timezone.now() + timezone.timedelta(hours=3) @@ -249,9 +258,14 @@ def is_logged_in_as_team(self, request) -> bool: return True return False + @property def is_authenticated(self): return True + @property + def is_org(self): + return True + class TeamMemberPermission(models.Model): team = models.ForeignKey(Organization, on_delete=models.CASCADE, related_name="permissions") diff --git a/frontend/templates/base/topbar/_topbar.html b/frontend/templates/base/topbar/_topbar.html index ac7591bd5..27930d742 100644 --- a/frontend/templates/base/topbar/_topbar.html +++ b/frontend/templates/base/topbar/_topbar.html @@ -15,18 +15,7 @@
- - My Finances + {% include 'base/topbar/team_selector/selector.html' %}