From 07a1acda757ce0ad487db4f4362486b033a9b1e3 Mon Sep 17 00:00:00 2001 From: Matthias Kestenholz Date: Mon, 8 Jul 2024 21:48:32 +0200 Subject: [PATCH] Show project users --- app/templates/projects/project.html | 5 +++++ projects/models.py | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/app/templates/projects/project.html b/app/templates/projects/project.html index 74e30e4..929dfda 100644 --- a/app/templates/projects/project.html +++ b/app/templates/projects/project.html @@ -22,6 +22,11 @@

{% translate 'catalogs'|capfirst %}

{% endfor %} +

{% translate 'users'|capfirst %}

+

+{% for user in project.all_users %}{{ user.get_full_name }}{% if not forloop.last %}, {% endif %}{% endfor %} +

+

{% translate 'CLI configuration' %}

~/.config/traduire.toml diff --git a/projects/models.py b/projects/models.py index 6e0fa34..c2f6b00 100644 --- a/projects/models.py +++ b/projects/models.py @@ -4,10 +4,13 @@ from django.conf import global_settings, settings from django.core import validators from django.db import models +from django.db.models import Q from django.urls import reverse from django.utils.timesince import timesince from django.utils.translation import gettext_lazy as _ +from accounts.models import User + class ChoicesCharField(models.CharField): """ @@ -82,6 +85,12 @@ def get_api_url(self): def pretty_timesince(self): return timesince(self.updated_at, depth=1) + @cached_property + def all_users(self): + return User.objects.filter( + Q(is_active=True) & (Q(is_staff=True) | Q(projects=self)) + ) + class CatalogQuerySet(models.QuerySet): def for_user(self, user):