mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-07-19 17:25:56 +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(),
|
||||
name="no-portfolio-domains",
|
||||
),
|
||||
|
||||
path(
|
||||
"members/",
|
||||
views.PortfolioMembersView.as_view(),
|
||||
|
|
|
@ -256,7 +256,6 @@ 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):
|
||||
"""
|
||||
|
@ -264,4 +263,3 @@ class Command(BaseCommand):
|
|||
Updates all relevant member records.
|
||||
"""
|
||||
# TODO: future ticket?
|
||||
|
||||
|
|
|
@ -6,10 +6,11 @@ from django.contrib.auth.decorators import login_required
|
|||
from django.urls import reverse
|
||||
from django.db.models import Q
|
||||
|
||||
#---Logger
|
||||
# ---Logger
|
||||
import logging
|
||||
from venv import logger
|
||||
from registrar.management.commands.utility.terminal_helper import TerminalColors, TerminalHelper
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
@ -54,7 +55,7 @@ def get_domain_ids_from_request(request):
|
|||
"""
|
||||
portfolio = request.GET.get("portfolio")
|
||||
# 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:
|
||||
current_user: User = request.user
|
||||
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.core.paginator import Paginator
|
||||
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_portfolio_permission import UserPortfolioPermission
|
||||
|
||||
#---Logger
|
||||
# ---Logger
|
||||
import logging
|
||||
from venv import logger
|
||||
from registrar.management.commands.utility.terminal_helper import TerminalColors, TerminalHelper
|
||||
from registrar.models.utility.portfolio_helper import UserPortfolioRoleChoices
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
@ -24,19 +24,20 @@ def get_portfolio_members_json(request):
|
|||
get all members that are associated with the given portfolio"""
|
||||
|
||||
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)
|
||||
|
||||
portfolio = request.session.get("portfolio")
|
||||
admin_ids = UserPortfolioPermission.objects.filter(
|
||||
portfolio=portfolio,
|
||||
roles__overlap=[
|
||||
UserPortfolioRoleChoices.ORGANIZATION_ADMIN,
|
||||
],
|
||||
).values_list("user__id", flat=True)
|
||||
portfolio_invitation_emails = PortfolioInvitation.objects.filter(portfolio=portfolio).values_list("email", flat=True)
|
||||
|
||||
|
||||
portfolio=portfolio,
|
||||
roles__overlap=[
|
||||
UserPortfolioRoleChoices.ORGANIZATION_ADMIN,
|
||||
],
|
||||
).values_list("user__id", flat=True)
|
||||
portfolio_invitation_emails = PortfolioInvitation.objects.filter(portfolio=portfolio).values_list(
|
||||
"email", flat=True
|
||||
)
|
||||
|
||||
unfiltered_total = member_ids.count()
|
||||
|
||||
objects = apply_search(objects, request)
|
||||
|
@ -47,7 +48,8 @@ def get_portfolio_members_json(request):
|
|||
page_number = request.GET.get("page", 1)
|
||||
page_obj = paginator.get_page(page_number)
|
||||
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):
|
||||
|
@ -60,7 +62,7 @@ def get_portfolio_members_json(request):
|
|||
# path in url.py. In short, make sure that both members_table.html and url.py have references to
|
||||
# this json function in order for all of this to work.
|
||||
#
|
||||
# HELPFUL TIP: You can easily test this json file's output by visiting
|
||||
# HELPFUL TIP: You can easily test this json file's output by visiting
|
||||
# http://localhost:8080/get-portfolio-members-json/
|
||||
return JsonResponse(
|
||||
{
|
||||
|
@ -73,7 +75,7 @@ def get_portfolio_members_json(request):
|
|||
"unfiltered_total": unfiltered_total,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
else:
|
||||
# This was added to handle NoneType error
|
||||
# In other examples of we assume there will never be zero entries returned...which is *fine*...until
|
||||
|
@ -107,14 +109,16 @@ def get_member_objects_from_request(request):
|
|||
# else:
|
||||
# filter_condition = Q(portfolio=portfolio, creator=request.user)
|
||||
|
||||
permissions = UserPortfolioPermission.objects.filter(
|
||||
portfolio=portfolio
|
||||
)
|
||||
|
||||
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))
|
||||
TerminalHelper.colorful_logger(logger.info, TerminalColors.OKCYAN, f'members {members}') # TODO: delete me
|
||||
permissions = UserPortfolioPermission.objects.filter(portfolio=portfolio)
|
||||
|
||||
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)
|
||||
)
|
||||
TerminalHelper.colorful_logger(logger.info, TerminalColors.OKCYAN, f"members {members}") # TODO: delete me
|
||||
return members
|
||||
|
||||
|
||||
|
@ -158,7 +162,7 @@ def apply_sorting(queryset, request):
|
|||
def serialize_members(request, member, user, admin_ids, portfolio_invitation_emails):
|
||||
|
||||
# ------- VIEW ONLY
|
||||
# If not view_only (the user has permissions to edit/manage users), show the gear icon with "Manage" link.
|
||||
# If not view_only (the user has permissions to edit/manage users), show the gear icon with "Manage" link.
|
||||
# If view_only (the user only has view user permissions), show the "View" link (no gear icon).
|
||||
view_only = not user.has_edit_members_portfolio_permission
|
||||
|
||||
|
@ -176,7 +180,7 @@ def serialize_members(request, member, user, admin_ids, portfolio_invitation_ema
|
|||
"email": member.email,
|
||||
"is_admin": is_admin,
|
||||
"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"),
|
||||
"svg_icon": ("visibility" if view_only else "settings"),
|
||||
}
|
||||
|
|
|
@ -21,12 +21,14 @@ from django.views.generic.edit import FormMixin
|
|||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
#---Logger
|
||||
# ---Logger
|
||||
import logging
|
||||
from venv import logger
|
||||
from registrar.management.commands.utility.terminal_helper import TerminalColors, TerminalHelper
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class PortfolioDomainsView(PortfolioDomainsPermissionView, View):
|
||||
|
||||
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.
|
||||
context = {}
|
||||
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:
|
||||
|
||||
# # ------ Gets admin members
|
||||
|
@ -72,7 +76,6 @@ class PortfolioMembersView(PortfolioMembersPermissionView, View):
|
|||
# ],
|
||||
# ).values_list("user__id", flat=True)
|
||||
|
||||
|
||||
# # ------ Gets non-admin members
|
||||
# # Filter UserPortfolioPermission objects related to the portfolio that do NOT have the "Admin" role
|
||||
# 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
|
||||
# non_admin_users = User.objects.filter(portfolio_permissions__in=non_admin_permissions)
|
||||
|
||||
|
||||
# ------- Gets all members
|
||||
member_ids = UserPortfolioPermission.objects.filter(
|
||||
portfolio=portfolio
|
||||
).values_list("user__id", flat=True)
|
||||
member_ids = UserPortfolioPermission.objects.filter(portfolio=portfolio).values_list("user__id", flat=True)
|
||||
|
||||
all_members = User.objects.filter(id__in=member_ids)
|
||||
context["portfolio_members"] = all_members
|
||||
context["portfolio_members_count"] = all_members.count()
|
||||
return render(request, "portfolio_members.html", context)
|
||||
|
||||
|
||||
class PortfolioNoDomainsView(NoPortfolioDomainsPermissionView, View):
|
||||
"""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.
|
||||
|
|
|
@ -19,6 +19,7 @@ logger = logging.getLogger(__name__)
|
|||
import logging
|
||||
from venv import logger
|
||||
from registrar.management.commands.utility.terminal_helper import TerminalColors, TerminalHelper
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue