From 9fe87fbba1574aa36270e1c0d41513f468f6a75b Mon Sep 17 00:00:00 2001 From: zandercymatics <141044360+zandercymatics@users.noreply.github.com> Date: Wed, 11 Dec 2024 13:51:18 -0700 Subject: [PATCH] wrap up js --- .../src/js/getgov/portfolio-member-page.js | 77 ++++++++++--------- .../models/utility/portfolio_helper.py | 8 +- 2 files changed, 47 insertions(+), 38 deletions(-) diff --git a/src/registrar/assets/src/js/getgov/portfolio-member-page.js b/src/registrar/assets/src/js/getgov/portfolio-member-page.js index 429c0e70e..a12f68ec1 100644 --- a/src/registrar/assets/src/js/getgov/portfolio-member-page.js +++ b/src/registrar/assets/src/js/getgov/portfolio-member-page.js @@ -3,6 +3,7 @@ import { getCsrfToken } from './helpers.js'; import { generateKebabHTML } from './table-base.js'; import { MembersTable } from './table-members.js'; import { hookupRadioTogglerListener } from './radios.js'; +import { hideElement, showElement } from './helpers.js'; // This is specifically for the Member Profile (Manage Member) Page member/invitation removal export function initPortfolioNewMemberPageToggle() { @@ -182,48 +183,50 @@ export function initAddNewMemberPageListeners() { } // Export for the rest of the portfolio pages (not add) +// Not using the export function initPortfolioMemberPage() { document.addEventListener("DOMContentLoaded", () => { - console.log("test") - hookupRadioTogglerListener( - 'role', - { - 'organization_admin': 'new-member-admin-permissions', - 'organization_member': 'new-member-basic-permissions' + let memberForm = document.getElementById("member_form"); + if (!memberForm) { + return; + } + + // console.log("test") + // hookupRadioTogglerListener( + // 'role', + // { + // 'organization_admin': 'new-member-admin-permissions', + // 'organization_member': 'new-member-basic-permissions' + // } + // ) + + let memberAdminContainer = document.getElementById("member-admin-permissions"); + let memberBasicContainer = document.getElementById("member-basic-permissions"); + let roleRadios = document.querySelectorAll('input[name="role"]'); + + function toggleContainers() { + let selectedRole = document.querySelector('input[name="role"]:checked'); + if (!selectedRole) { + hideElement(memberAdminContainer); + hideElement(memberBasicContainer); + return; } - ); - // let memberForm = document.getElementById("member_form"); - // if (!memberForm) { - // return; - // } - // let memberAdminContainer = document.getElementById("member-admin-permissions"); - // let memberBasicContainer = document.getElementById("member-basic-permissions"); - // let roleRadios = document.querySelectorAll('input[name="role"]'); + if (selectedRole.value === "organization_admin") { + showElement(memberAdminContainer); + hideElement(memberBasicContainer); + } else if (selectedRole.value === "organization_member") { + hideElement(memberAdminContainer); + showElement(memberBasicContainer); + } + } - // function toggleContainers() { - // let selectedRole = document.querySelector('input[name="role"]:checked'); - // if (!selectedRole) { - // hideElement(memberAdminContainer); - // hideElement(memberBasicContainer); - // return; - // } + // Initial state + toggleContainers(); - // if (selectedRole.value === "organization_admin") { - // showElement(memberAdminContainer); - // hideElement(memberBasicContainer); - // } else if (selectedRole.value === "organization_member") { - // hideElement(memberAdminContainer); - // showElement(memberBasicContainer); - // } - // } - - // // Initial state - // toggleContainers(); - - // // Add change listener to all radio buttons - // roleRadios.forEach(radio => { - // radio.addEventListener("change", toggleContainers); - // }); + // Add change listener to all radio buttons + roleRadios.forEach(radio => { + radio.addEventListener("change", toggleContainers); + }); }); } \ No newline at end of file diff --git a/src/registrar/models/utility/portfolio_helper.py b/src/registrar/models/utility/portfolio_helper.py index 60fa2170a..25073639b 100644 --- a/src/registrar/models/utility/portfolio_helper.py +++ b/src/registrar/models/utility/portfolio_helper.py @@ -4,7 +4,9 @@ from django.apps import apps from django.forms import ValidationError from registrar.utility.waffle import flag_is_active_for_user from django.contrib.auth import get_user_model +import logging +logger = logging.getLogger(__name__) class UserPortfolioRoleChoices(models.TextChoices): """ @@ -16,7 +18,11 @@ class UserPortfolioRoleChoices(models.TextChoices): @classmethod def get_user_portfolio_role_label(cls, user_portfolio_role): - return cls(user_portfolio_role).label if user_portfolio_role else None + try: + return cls(user_portfolio_role).label if user_portfolio_role else None + except ValueError: + logger.warning(f"Invalid portfolio role: {user_portfolio_role}") + return f"Unknown ({user_portfolio_role})" @classmethod def get_role_description(cls, user_portfolio_role):