Add user domain count

This commit is contained in:
Rebecca Hsieh 2024-10-22 09:02:35 -07:00
parent 199f669fad
commit 8cf3bb7819
No known key found for this signature in database
3 changed files with 23 additions and 14 deletions

View file

@ -26,7 +26,7 @@ from registrar.views.report_views import (
# --jsons # --jsons
from registrar.views.domain_requests_json import get_domain_requests_json from registrar.views.domain_requests_json import get_domain_requests_json
from registrar.views.domains_json import get_domains_json from registrar.views.domains_json import get_domains_json
from registrar.views.portfolio_members_json import get_portfolio_members_json from registrar.views.portfolio_members_json import get_portfolio_members_json, get_user_domain_count
from registrar.views.utility.api_views import ( from registrar.views.utility.api_views import (
get_senior_official_from_federal_agency_json, get_senior_official_from_federal_agency_json,
get_federal_and_portfolio_types_from_federal_agency_json, get_federal_and_portfolio_types_from_federal_agency_json,
@ -329,6 +329,7 @@ urlpatterns = [
path("get-domains-json/", get_domains_json, name="get_domains_json"), path("get-domains-json/", get_domains_json, name="get_domains_json"),
path("get-domain-requests-json/", get_domain_requests_json, name="get_domain_requests_json"), path("get-domain-requests-json/", get_domain_requests_json, name="get_domain_requests_json"),
path("get-portfolio-members-json/", get_portfolio_members_json, name="get_portfolio_members_json"), path("get-portfolio-members-json/", get_portfolio_members_json, name="get_portfolio_members_json"),
# path("user/<int:user_id>/domain-count/", get_user_domain_count, name='get_user_domain_count'),
] ]
# Djangooidc strips out context data from that context, so we define a custom error # Djangooidc strips out context data from that context, so we define a custom error

View file

@ -4,6 +4,7 @@
<span id="portfolio-js-value" class="display-none" data-portfolio="{{ portfolio.id }}" data-has-edit-permission="{{ has_edit_members_portfolio_permission }}"></span> <span id="portfolio-js-value" class="display-none" data-portfolio="{{ portfolio.id }}" data-has-edit-permission="{{ has_edit_members_portfolio_permission }}"></span>
{% comment %} Stores the json endpoint in a url for easier access {% endcomment %} {% comment %} Stores the json endpoint in a url for easier access {% endcomment %}
{% url 'get_portfolio_members_json' as url %} {% url 'get_portfolio_members_json' as url %}
<!-- {% url 'get_user_domain_count' as url %} -->
<span id="get_members_json_url" class="display-none">{{url}}</span> <span id="get_members_json_url" class="display-none">{{url}}</span>
<section class="section-outlined members margin-top-0 section-outlined--border-base-light" id="members"> <section class="section-outlined members margin-top-0 section-outlined--border-base-light" id="members">
<div class="section-outlined__header margin-bottom-3 grid-row"> <div class="section-outlined__header margin-bottom-3 grid-row">

View file

@ -173,19 +173,26 @@ def serialize_members(request, portfolio, item, user):
return member_json return member_json
def get_user_domain_count(request, user_id): # def get_user_domain_count(request):
"""Returns the count of domains associated with the specified user on UserDomainRole or Portfolio""" # """Fetch the domain count for a specified user and portfolio."""
# Fetch the target user based on the user_id provided
try:
target_user = User.objects.get(id=user_id)
except User.DoesNotExist:
return JsonResponse({"error": "User not found."}, status=404)
portfolio = request.session.get("portfolio") # user_id = request.GET.get("user_id")
# portfolio = request.GET.get("portfolio")
if target_user.is_org_user(request) and target_user.has_view_all_domains_portfolio_permission(portfolio): # # Fetch the target user based on the user_id provided
domain_count = DomainInformation.objects.filter(portfolio=portfolio).count() # try:
else: # target_user = User.objects.get(id=user_id)
domain_count = UserDomainRole.objects.filter(user=target_user).count() # except User.DoesNotExist:
# return JsonResponse({"error": "User not found."}, status=404)
return JsonResponse({"domain_count": domain_count}) # # Check permissions and count domains
# if target_user.is_org_user(request) and target_user.has_view_all_domains_portfolio_permission(portfolio):
# domain_count = DomainInformation.objects.filter(portfolio=portfolio).count()
# else:
# domain_count = UserDomainRole.objects.filter(user=target_user).count()
# return JsonResponse({
# "user_id": user_id,
# "portfolio": portfolio,
# "domain_count": domain_count,
# })