From cf946004c0d11c1637fad2d68f5a042f734b5eda Mon Sep 17 00:00:00 2001 From: David Kennedy Date: Wed, 3 Apr 2024 06:49:29 -0400 Subject: [PATCH] added user request details below creator in django admin --- src/registrar/models/user.py | 18 ++++++++++++++++++ .../admin/includes/detail_table_fieldset.html | 4 ++++ .../admin/includes/user_detail_list.html | 12 ++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 src/registrar/templates/django/admin/includes/user_detail_list.html diff --git a/src/registrar/models/user.py b/src/registrar/models/user.py index bf904a044..5085c0b94 100644 --- a/src/registrar/models/user.py +++ b/src/registrar/models/user.py @@ -67,6 +67,24 @@ class User(AbstractUser): def is_restricted(self): return self.status == self.RESTRICTED + def get_approved_domains_count(self): + """Return count of approved domains""" + allowed_states = ['unknown', 'dns needed', 'ready', 'on hold'] + approved_domains_count = self.domains.filter(state__in=allowed_states).count() + return approved_domains_count + + def get_active_requests_count(self): + """Return count of active requests""" + allowed_states = ['submitted', 'in review', 'action needed'] + active_requests_count = self.domain_requests_created.filter(status__in=allowed_states).count() + return active_requests_count + + def get_rejected_requests_count(self): + """Return count of rejected or ineligible requests""" + allowed_states = ['rejected', 'ineligible'] + rejected_requests_count = self.domain_requests_created.filter(status__in=allowed_states).count() + return rejected_requests_count + @classmethod def needs_identity_verification(cls, email, uuid): """A method used by our oidc classes to test whether a user needs email/uuid verification diff --git a/src/registrar/templates/django/admin/includes/detail_table_fieldset.html b/src/registrar/templates/django/admin/includes/detail_table_fieldset.html index 47145faf2..2c3b76253 100644 --- a/src/registrar/templates/django/admin/includes/detail_table_fieldset.html +++ b/src/registrar/templates/django/admin/includes/detail_table_fieldset.html @@ -65,6 +65,10 @@ This is using a custom implementation fieldset.html (see admin/fieldset.html) {% include "django/admin/includes/contact_detail_list.html" with user=original.creator no_title_top_padding=field.is_readonly %} +
+ + {% include "django/admin/includes/user_detail_list.html" with user=original.creator no_title_top_padding=field.is_readonly %} +
{% elif field.field.name == "submitter" %}
diff --git a/src/registrar/templates/django/admin/includes/user_detail_list.html b/src/registrar/templates/django/admin/includes/user_detail_list.html new file mode 100644 index 000000000..9daa8a0ee --- /dev/null +++ b/src/registrar/templates/django/admin/includes/user_detail_list.html @@ -0,0 +1,12 @@ +{% load i18n static %} + +
+ + {# Approved domains #} + Approved domains: {{ user.get_approved_domains_count }}
+ {# Active requests #} + Active requests: {{ user.get_active_requests_count }}
+ {# Rejected or ineligible requests #} + Rejected or ineligible: {{ user.get_rejected_requests_count }}
+ +