diff --git a/src/registrar/assets/js/get-gov.js b/src/registrar/assets/js/get-gov.js
index 3b0da926c..7c7b3655e 100644
--- a/src/registrar/assets/js/get-gov.js
+++ b/src/registrar/assets/js/get-gov.js
@@ -1872,17 +1872,17 @@ class MembersTable extends LoadTableBase {
loadTable(page, sortBy = this.currentSortBy, order = this.currentOrder, scroll = this.scrollToTable, status = this.currentStatus, searchTerm =this.currentSearchTerm, portfolio = this.portfolioValue) {
// --------- SEARCH
- // let searchParams = new URLSearchParams(
- // {
- // "page": page,
- // "sort_by": sortBy,
- // "order": order,
- // "status": status,
- // "search_term": searchTerm
- // }
- // );
- // if (portfolio)
- // searchParams.append("portfolio", portfolio)
+ let searchParams = new URLSearchParams(
+ {
+ "page": page,
+ "sort_by": sortBy,
+ "order": order,
+ "status": status,
+ "search_term": searchTerm
+ }
+ );
+ if (portfolio)
+ searchParams.append("portfolio", portfolio)
// --------- FETCH DATA
@@ -1896,8 +1896,8 @@ class MembersTable extends LoadTableBase {
if (!baseUrlValue) {
return;
}
-
- let url = `${baseUrlValue}?${searchParams.toString()}`
+
+ let url = `${baseUrlValue}?${searchParams.toString()}` //TODO: uncomment for search function
fetch(url)
.then(response => response.json())
.then(data => {
@@ -1913,17 +1913,21 @@ class MembersTable extends LoadTableBase {
const memberList = document.querySelector('.members__table tbody');
memberList.innerHTML = '';
- data.members.forEach(member => {
- // const actionUrl = domain.action_url;
+ if (data.members)
+ {
+ data.members.forEach(member => {
+ // const actionUrl = domain.action_url;
+ const member_name = member.name;
+ const last_active = member.last_active;
const row = document.createElement('tr');
row.innerHTML = `
- TEMP -- member ID
+ ${member_name}
|
-
- ${member.id}
+ |
+ ${last_active}
|
`;
@@ -1939,6 +1943,26 @@ class MembersTable extends LoadTableBase {
memberList.appendChild(row);
});
+ }
+ else
+ {
+ //TODO: error message?
+ const row = document.createElement('tr');
+ row.innerHTML = `
+
+ ERROR
+ |
+
+ ERROR
+ |
+ `;
+
+ memberList.appendChild(row);
+ }
+
+
+
+
// initialize tool tips immediately after the associated DOM elements are added
initializeTooltips();
diff --git a/src/registrar/config/urls.py b/src/registrar/config/urls.py
index a428f74db..f7bd65185 100644
--- a/src/registrar/config/urls.py
+++ b/src/registrar/config/urls.py
@@ -22,18 +22,20 @@ from registrar.views.report_views import (
ExportDataTypeUser,
)
-from registrar.views.domain_request import Step
+# --jsons
from registrar.views.domain_requests_json import get_domain_requests_json
-from registrar.views.transfer_user import TransferUserView
+from registrar.views.domains_json import get_domains_json
+from registrar.views.portfolio_members_json import get_portfolio_members_json
from registrar.views.utility.api_views import (
get_senior_official_from_federal_agency_json,
get_federal_and_portfolio_types_from_federal_agency_json,
)
-from registrar.views.domains_json import get_domains_json
+
+from registrar.views.domain_request import Step
+from registrar.views.transfer_user import TransferUserView
from registrar.views.utility import always_404
from api.views import available, get_current_federal, get_current_full
-
DOMAIN_REQUEST_NAMESPACE = views.DomainRequestWizard.URL_NAMESPACE
domain_request_urls = [
path("", views.DomainRequestWizard.as_view(), name=""),
@@ -280,7 +282,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_domains_json, name="get_portfolio_members_json"),
+ path("get-portfolio-members-json/", get_portfolio_members_json, name="get_portfolio_members_json"),
]
# Djangooidc strips out context data from that context, so we define a custom error
diff --git a/src/registrar/management/commands/create_federal_portfolio.py b/src/registrar/management/commands/create_federal_portfolio.py
index d05a2911b..96bbc0670 100644
--- a/src/registrar/management/commands/create_federal_portfolio.py
+++ b/src/registrar/management/commands/create_federal_portfolio.py
@@ -68,6 +68,9 @@ class Command(BaseCommand):
if parse_domains or both:
self.handle_portfolio_domains(portfolio, federal_agency)
+ if parse_domains or both:
+ self.handle_portfolio_members(portfolio, federal_agency)
+
def create_or_modify_portfolio(self, federal_agency):
"""Creates or modifies a portfolio record based on a federal agency."""
portfolio_args = {
@@ -253,3 +256,12 @@ class Command(BaseCommand):
DomainInformation.objects.bulk_update(domain_infos, ["portfolio", "sub_organization"])
message = f"Added portfolio '{portfolio}' to {len(domain_infos)} domains"
TerminalHelper.colorful_logger(logger.info, TerminalColors.OKGREEN, message)
+
+
+ def handle_portfolio_members(self, portfolio: Portfolio, federal_agency: FederalAgency):
+ """
+ Associate portfolio with members for a federal agency.
+ Updates all relevant member records.
+ """
+ # TODO: future ticket?
+
diff --git a/src/registrar/management/commands/utility/terminal_helper.py b/src/registrar/management/commands/utility/terminal_helper.py
index fa7cde683..d5ee478f7 100644
--- a/src/registrar/management/commands/utility/terminal_helper.py
+++ b/src/registrar/management/commands/utility/terminal_helper.py
@@ -7,7 +7,6 @@ from django.db.models.manager import BaseManager
from typing import List
from registrar.utility.enums import LogCode
-
logger = logging.getLogger(__name__)
diff --git a/src/registrar/templates/includes/members_table.html b/src/registrar/templates/includes/members_table.html
index 95e13aebf..f43d22301 100644
--- a/src/registrar/templates/includes/members_table.html
+++ b/src/registrar/templates/includes/members_table.html
@@ -17,7 +17,7 @@
TODO: future ticket?
=====================
-->
-
+
{% if portfolio_members_count and portfolio_members_count > 0 %}