From 1ad805ba30ba36aa1fccd44c1275e65f1635dc62 Mon Sep 17 00:00:00 2001 From: CocoByte Date: Tue, 24 Sep 2024 19:13:43 -0600 Subject: [PATCH] linted --- src/registrar/config/urls.py | 1 - .../commands/create_federal_portfolio.py | 2 - src/registrar/views/domains_json.py | 5 +- src/registrar/views/portfolio_members_json.py | 52 ++++++++++--------- src/registrar/views/portfolios.py | 15 +++--- src/registrar/views/utility/mixins.py | 1 + 6 files changed, 40 insertions(+), 36 deletions(-) diff --git a/src/registrar/config/urls.py b/src/registrar/config/urls.py index 5ffc9f164..f7793d282 100644 --- a/src/registrar/config/urls.py +++ b/src/registrar/config/urls.py @@ -76,7 +76,6 @@ urlpatterns = [ views.PortfolioNoDomainsView.as_view(), name="no-portfolio-domains", ), - path( "members/", views.PortfolioMembersView.as_view(), diff --git a/src/registrar/management/commands/create_federal_portfolio.py b/src/registrar/management/commands/create_federal_portfolio.py index 96bbc0670..4f715d1b7 100644 --- a/src/registrar/management/commands/create_federal_portfolio.py +++ b/src/registrar/management/commands/create_federal_portfolio.py @@ -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? - diff --git a/src/registrar/views/domains_json.py b/src/registrar/views/domains_json.py index 509940b98..cef9631e5 100644 --- a/src/registrar/views/domains_json.py +++ b/src/registrar/views/domains_json.py @@ -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): diff --git a/src/registrar/views/portfolio_members_json.py b/src/registrar/views/portfolio_members_json.py index e0276fa3b..6f619c226 100644 --- a/src/registrar/views/portfolio_members_json.py +++ b/src/registrar/views/portfolio_members_json.py @@ -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"), } diff --git a/src/registrar/views/portfolios.py b/src/registrar/views/portfolios.py index d159fc264..4088a12cc 100644 --- a/src/registrar/views/portfolios.py +++ b/src/registrar/views/portfolios.py @@ -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. diff --git a/src/registrar/views/utility/mixins.py b/src/registrar/views/utility/mixins.py index 7556412bf..32c5999b6 100644 --- a/src/registrar/views/utility/mixins.py +++ b/src/registrar/views/utility/mixins.py @@ -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__)