mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-07-21 10:16:13 +02:00
linted
This commit is contained in:
parent
8673bc83f7
commit
1ad805ba30
6 changed files with 40 additions and 36 deletions
|
@ -76,7 +76,6 @@ urlpatterns = [
|
||||||
views.PortfolioNoDomainsView.as_view(),
|
views.PortfolioNoDomainsView.as_view(),
|
||||||
name="no-portfolio-domains",
|
name="no-portfolio-domains",
|
||||||
),
|
),
|
||||||
|
|
||||||
path(
|
path(
|
||||||
"members/",
|
"members/",
|
||||||
views.PortfolioMembersView.as_view(),
|
views.PortfolioMembersView.as_view(),
|
||||||
|
|
|
@ -257,11 +257,9 @@ class Command(BaseCommand):
|
||||||
message = f"Added portfolio '{portfolio}' to {len(domain_infos)} domains"
|
message = f"Added portfolio '{portfolio}' to {len(domain_infos)} domains"
|
||||||
TerminalHelper.colorful_logger(logger.info, TerminalColors.OKGREEN, message)
|
TerminalHelper.colorful_logger(logger.info, TerminalColors.OKGREEN, message)
|
||||||
|
|
||||||
|
|
||||||
def handle_portfolio_members(self, portfolio: Portfolio, federal_agency: FederalAgency):
|
def handle_portfolio_members(self, portfolio: Portfolio, federal_agency: FederalAgency):
|
||||||
"""
|
"""
|
||||||
Associate portfolio with members for a federal agency.
|
Associate portfolio with members for a federal agency.
|
||||||
Updates all relevant member records.
|
Updates all relevant member records.
|
||||||
"""
|
"""
|
||||||
# TODO: future ticket?
|
# TODO: future ticket?
|
||||||
|
|
||||||
|
|
|
@ -6,10 +6,11 @@ from django.contrib.auth.decorators import login_required
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
|
|
||||||
#---Logger
|
# ---Logger
|
||||||
import logging
|
import logging
|
||||||
from venv import logger
|
from venv import logger
|
||||||
from registrar.management.commands.utility.terminal_helper import TerminalColors, TerminalHelper
|
from registrar.management.commands.utility.terminal_helper import TerminalColors, TerminalHelper
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,7 +55,7 @@ def get_domain_ids_from_request(request):
|
||||||
"""
|
"""
|
||||||
portfolio = request.GET.get("portfolio")
|
portfolio = request.GET.get("portfolio")
|
||||||
# TODO: delete me
|
# TODO: delete me
|
||||||
TerminalHelper.colorful_logger(logger.info, TerminalColors.OKGREEN, f'domain portfolio = {portfolio}')
|
TerminalHelper.colorful_logger(logger.info, TerminalColors.OKGREEN, f"domain portfolio = {portfolio}")
|
||||||
if portfolio:
|
if portfolio:
|
||||||
current_user: User = request.user
|
current_user: User = request.user
|
||||||
if current_user.is_org_user(request) and current_user.has_view_all_domains_portfolio_permission(portfolio):
|
if current_user.is_org_user(request) and current_user.has_view_all_domains_portfolio_permission(portfolio):
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
from django.http import JsonResponse
|
from django.http import JsonResponse
|
||||||
from django.core.paginator import Paginator
|
from django.core.paginator import Paginator
|
||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
|
@ -10,11 +9,12 @@ from registrar.models.portfolio_invitation import PortfolioInvitation
|
||||||
from registrar.models.user import User
|
from registrar.models.user import User
|
||||||
from registrar.models.user_portfolio_permission import UserPortfolioPermission
|
from registrar.models.user_portfolio_permission import UserPortfolioPermission
|
||||||
|
|
||||||
#---Logger
|
# ---Logger
|
||||||
import logging
|
import logging
|
||||||
from venv import logger
|
from venv import logger
|
||||||
from registrar.management.commands.utility.terminal_helper import TerminalColors, TerminalHelper
|
from registrar.management.commands.utility.terminal_helper import TerminalColors, TerminalHelper
|
||||||
from registrar.models.utility.portfolio_helper import UserPortfolioRoleChoices
|
from registrar.models.utility.portfolio_helper import UserPortfolioRoleChoices
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,18 +24,19 @@ def get_portfolio_members_json(request):
|
||||||
get all members that are associated with the given portfolio"""
|
get all members that are associated with the given portfolio"""
|
||||||
|
|
||||||
objects = get_member_objects_from_request(request)
|
objects = get_member_objects_from_request(request)
|
||||||
if(objects is not None):
|
if objects is not None:
|
||||||
member_ids = objects.values_list("id", flat=True)
|
member_ids = objects.values_list("id", flat=True)
|
||||||
|
|
||||||
portfolio = request.session.get("portfolio")
|
portfolio = request.session.get("portfolio")
|
||||||
admin_ids = UserPortfolioPermission.objects.filter(
|
admin_ids = UserPortfolioPermission.objects.filter(
|
||||||
portfolio=portfolio,
|
portfolio=portfolio,
|
||||||
roles__overlap=[
|
roles__overlap=[
|
||||||
UserPortfolioRoleChoices.ORGANIZATION_ADMIN,
|
UserPortfolioRoleChoices.ORGANIZATION_ADMIN,
|
||||||
],
|
],
|
||||||
).values_list("user__id", flat=True)
|
).values_list("user__id", flat=True)
|
||||||
portfolio_invitation_emails = PortfolioInvitation.objects.filter(portfolio=portfolio).values_list("email", flat=True)
|
portfolio_invitation_emails = PortfolioInvitation.objects.filter(portfolio=portfolio).values_list(
|
||||||
|
"email", flat=True
|
||||||
|
)
|
||||||
|
|
||||||
unfiltered_total = member_ids.count()
|
unfiltered_total = member_ids.count()
|
||||||
|
|
||||||
|
@ -47,7 +48,8 @@ def get_portfolio_members_json(request):
|
||||||
page_number = request.GET.get("page", 1)
|
page_number = request.GET.get("page", 1)
|
||||||
page_obj = paginator.get_page(page_number)
|
page_obj = paginator.get_page(page_number)
|
||||||
members = [
|
members = [
|
||||||
serialize_members(request, member, request.user, admin_ids, portfolio_invitation_emails) for member in page_obj.object_list
|
serialize_members(request, member, request.user, admin_ids, portfolio_invitation_emails)
|
||||||
|
for member in page_obj.object_list
|
||||||
]
|
]
|
||||||
|
|
||||||
# DEVELOPER'S NOTE (9-24-24):
|
# DEVELOPER'S NOTE (9-24-24):
|
||||||
|
@ -107,14 +109,16 @@ def get_member_objects_from_request(request):
|
||||||
# else:
|
# else:
|
||||||
# filter_condition = Q(portfolio=portfolio, creator=request.user)
|
# filter_condition = Q(portfolio=portfolio, creator=request.user)
|
||||||
|
|
||||||
permissions = UserPortfolioPermission.objects.filter(
|
permissions = UserPortfolioPermission.objects.filter(portfolio=portfolio)
|
||||||
portfolio=portfolio
|
|
||||||
)
|
|
||||||
|
|
||||||
portfolio_invitation_emails = PortfolioInvitation.objects.filter(portfolio=portfolio).values_list("email", flat=True)
|
portfolio_invitation_emails = PortfolioInvitation.objects.filter(portfolio=portfolio).values_list(
|
||||||
|
"email", flat=True
|
||||||
|
)
|
||||||
|
|
||||||
members = User.objects.filter(Q(portfolio_permissions__in=permissions) | Q(email__in=portfolio_invitation_emails))
|
members = User.objects.filter(
|
||||||
TerminalHelper.colorful_logger(logger.info, TerminalColors.OKCYAN, f'members {members}') # TODO: delete me
|
Q(portfolio_permissions__in=permissions) | Q(email__in=portfolio_invitation_emails)
|
||||||
|
)
|
||||||
|
TerminalHelper.colorful_logger(logger.info, TerminalColors.OKCYAN, f"members {members}") # TODO: delete me
|
||||||
return members
|
return members
|
||||||
|
|
||||||
|
|
||||||
|
@ -176,7 +180,7 @@ def serialize_members(request, member, user, admin_ids, portfolio_invitation_ema
|
||||||
"email": member.email,
|
"email": member.email,
|
||||||
"is_admin": is_admin,
|
"is_admin": is_admin,
|
||||||
"last_active": last_active,
|
"last_active": last_active,
|
||||||
"action_url": '#', #reverse("members", kwargs={"pk": member.id}), # TODO: Future ticket?
|
"action_url": "#", # reverse("members", kwargs={"pk": member.id}), # TODO: Future ticket?
|
||||||
"action_label": ("View" if view_only else "Manage"),
|
"action_label": ("View" if view_only else "Manage"),
|
||||||
"svg_icon": ("visibility" if view_only else "settings"),
|
"svg_icon": ("visibility" if view_only else "settings"),
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,12 +21,14 @@ from django.views.generic.edit import FormMixin
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
#---Logger
|
# ---Logger
|
||||||
import logging
|
import logging
|
||||||
from venv import logger
|
from venv import logger
|
||||||
from registrar.management.commands.utility.terminal_helper import TerminalColors, TerminalHelper
|
from registrar.management.commands.utility.terminal_helper import TerminalColors, TerminalHelper
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class PortfolioDomainsView(PortfolioDomainsPermissionView, View):
|
class PortfolioDomainsView(PortfolioDomainsPermissionView, View):
|
||||||
|
|
||||||
template_name = "portfolio_domains.html"
|
template_name = "portfolio_domains.html"
|
||||||
|
@ -61,7 +63,9 @@ class PortfolioMembersView(PortfolioMembersPermissionView, View):
|
||||||
# We can override the base class. This view only needs this item.
|
# We can override the base class. This view only needs this item.
|
||||||
context = {}
|
context = {}
|
||||||
portfolio = self.request.session.get("portfolio")
|
portfolio = self.request.session.get("portfolio")
|
||||||
TerminalHelper.colorful_logger(logger.info, TerminalColors.OKGREEN, f'PortfolioMembersView portfolio = {portfolio}')
|
TerminalHelper.colorful_logger(
|
||||||
|
logger.info, TerminalColors.OKGREEN, f"PortfolioMembersView portfolio = {portfolio}"
|
||||||
|
)
|
||||||
if portfolio:
|
if portfolio:
|
||||||
|
|
||||||
# # ------ Gets admin members
|
# # ------ Gets admin members
|
||||||
|
@ -72,7 +76,6 @@ class PortfolioMembersView(PortfolioMembersPermissionView, View):
|
||||||
# ],
|
# ],
|
||||||
# ).values_list("user__id", flat=True)
|
# ).values_list("user__id", flat=True)
|
||||||
|
|
||||||
|
|
||||||
# # ------ Gets non-admin members
|
# # ------ Gets non-admin members
|
||||||
# # Filter UserPortfolioPermission objects related to the portfolio that do NOT have the "Admin" role
|
# # Filter UserPortfolioPermission objects related to the portfolio that do NOT have the "Admin" role
|
||||||
# non_admin_permissions = UserPortfolioPermission.objects.filter(portfolio=obj).exclude(
|
# non_admin_permissions = UserPortfolioPermission.objects.filter(portfolio=obj).exclude(
|
||||||
|
@ -81,17 +84,15 @@ class PortfolioMembersView(PortfolioMembersPermissionView, View):
|
||||||
# # Get the user objects associated with these permissions
|
# # Get the user objects associated with these permissions
|
||||||
# non_admin_users = User.objects.filter(portfolio_permissions__in=non_admin_permissions)
|
# non_admin_users = User.objects.filter(portfolio_permissions__in=non_admin_permissions)
|
||||||
|
|
||||||
|
|
||||||
# ------- Gets all members
|
# ------- Gets all members
|
||||||
member_ids = UserPortfolioPermission.objects.filter(
|
member_ids = UserPortfolioPermission.objects.filter(portfolio=portfolio).values_list("user__id", flat=True)
|
||||||
portfolio=portfolio
|
|
||||||
).values_list("user__id", flat=True)
|
|
||||||
|
|
||||||
all_members = User.objects.filter(id__in=member_ids)
|
all_members = User.objects.filter(id__in=member_ids)
|
||||||
context["portfolio_members"] = all_members
|
context["portfolio_members"] = all_members
|
||||||
context["portfolio_members_count"] = all_members.count()
|
context["portfolio_members_count"] = all_members.count()
|
||||||
return render(request, "portfolio_members.html", context)
|
return render(request, "portfolio_members.html", context)
|
||||||
|
|
||||||
|
|
||||||
class PortfolioNoDomainsView(NoPortfolioDomainsPermissionView, View):
|
class PortfolioNoDomainsView(NoPortfolioDomainsPermissionView, View):
|
||||||
"""Some users have access to the underlying portfolio, but not any domains.
|
"""Some users have access to the underlying portfolio, but not any domains.
|
||||||
This is a custom view which explains that to the user - and denotes who to contact.
|
This is a custom view which explains that to the user - and denotes who to contact.
|
||||||
|
|
|
@ -19,6 +19,7 @@ logger = logging.getLogger(__name__)
|
||||||
import logging
|
import logging
|
||||||
from venv import logger
|
from venv import logger
|
||||||
from registrar.management.commands.utility.terminal_helper import TerminalColors, TerminalHelper
|
from registrar.management.commands.utility.terminal_helper import TerminalColors, TerminalHelper
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue