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
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,
@ -329,6 +329,7 @@ urlpatterns = [
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

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>
{% 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">

View file

@ -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)
# def get_user_domain_count(request):
# """Fetch the domain count for a specified user and portfolio."""
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):
domain_count = DomainInformation.objects.filter(portfolio=portfolio).count()
else:
domain_count = UserDomainRole.objects.filter(user=target_user).count()
# # 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)
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,
# })