Skip to content

Commit

Permalink
Add user domain count
Browse files Browse the repository at this point in the history
  • Loading branch information
therealslimhsiehdy committed Oct 22, 2024
1 parent 199f669 commit 8cf3bb7
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 17 deletions.
3 changes: 2 additions & 1 deletion src/registrar/config/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
# --jsons
from registrar.views.domain_requests_json import get_domain_requests_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 (
get_senior_official_from_federal_agency_json,
get_federal_and_portfolio_types_from_federal_agency_json,
Expand Down Expand Up @@ -329,6 +329,7 @@
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-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
Expand Down
1 change: 1 addition & 0 deletions src/registrar/templates/includes/members_table.html
Original file line number Diff line number Diff line change
Expand Up @@ -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>
{% comment %} Stores the json endpoint in a url for easier access {% endcomment %}
{% 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>
<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">
Expand Down
39 changes: 23 additions & 16 deletions src/registrar/views/portfolio_members_json.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,19 +173,26 @@ def serialize_members(request, portfolio, item, user):
return member_json


def get_user_domain_count(request, user_id):
"""Returns the count of domains associated with the specified user on UserDomainRole or 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")

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({"domain_count": domain_count})
# def get_user_domain_count(request):
# """Fetch the domain count for a specified user and portfolio."""

# user_id = request.GET.get("user_id")
# portfolio = request.GET.get("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)

# # 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,
# })

0 comments on commit 8cf3bb7

Please sign in to comment.