mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-08-06 01:35:22 +02:00
refactor ids part 1
This commit is contained in:
parent
8b76cde13d
commit
949424854e
2 changed files with 59 additions and 59 deletions
|
@ -89,52 +89,52 @@ urlpatterns = [
|
|||
name="members",
|
||||
),
|
||||
path(
|
||||
"member/<int:pk>",
|
||||
"member/<int:member_pk>",
|
||||
views.PortfolioMemberView.as_view(),
|
||||
name="member",
|
||||
),
|
||||
path(
|
||||
"member/<int:pk>/delete",
|
||||
"member/<int:member_pk>/delete",
|
||||
views.PortfolioMemberDeleteView.as_view(),
|
||||
name="member-delete",
|
||||
),
|
||||
path(
|
||||
"member/<int:pk>/permissions",
|
||||
"member/<int:member_pk>/permissions",
|
||||
views.PortfolioMemberEditView.as_view(),
|
||||
name="member-permissions",
|
||||
),
|
||||
path(
|
||||
"member/<int:pk>/domains",
|
||||
"member/<int:member_pk>/domains",
|
||||
views.PortfolioMemberDomainsView.as_view(),
|
||||
name="member-domains",
|
||||
),
|
||||
path(
|
||||
"member/<int:pk>/domains/edit",
|
||||
"member/<int:member_pk>/domains/edit",
|
||||
views.PortfolioMemberDomainsEditView.as_view(),
|
||||
name="member-domains-edit",
|
||||
),
|
||||
path(
|
||||
"invitedmember/<int:pk>",
|
||||
"invitedmember/<int:invitedmember_pk>",
|
||||
views.PortfolioInvitedMemberView.as_view(),
|
||||
name="invitedmember",
|
||||
),
|
||||
path(
|
||||
"invitedmember/<int:pk>/delete",
|
||||
"invitedmember/<int:invitedmember_pk>/delete",
|
||||
views.PortfolioInvitedMemberDeleteView.as_view(),
|
||||
name="invitedmember-delete",
|
||||
),
|
||||
path(
|
||||
"invitedmember/<int:pk>/permissions",
|
||||
"invitedmember/<int:invitedmember_pk>/permissions",
|
||||
views.PortfolioInvitedMemberEditView.as_view(),
|
||||
name="invitedmember-permissions",
|
||||
),
|
||||
path(
|
||||
"invitedmember/<int:pk>/domains",
|
||||
"invitedmember/<int:invitedmember_pk>/domains",
|
||||
views.PortfolioInvitedMemberDomainsView.as_view(),
|
||||
name="invitedmember-domains",
|
||||
),
|
||||
path(
|
||||
"invitedmember/<int:pk>/domains/edit",
|
||||
"invitedmember/<int:invitedmember_pk>/domains/edit",
|
||||
views.PortfolioInvitedMemberDomainsEditView.as_view(),
|
||||
name="invitedmember-domains-edit",
|
||||
),
|
||||
|
|
|
@ -78,8 +78,8 @@ class PortfolioMemberView(DetailView, View):
|
|||
context_object_name = "portfolio"
|
||||
template_name = "portfolio_member.html"
|
||||
|
||||
def get(self, request, pk):
|
||||
portfolio_permission = get_object_or_404(UserPortfolioPermission, pk=pk)
|
||||
def get(self, request, member_pk):
|
||||
portfolio_permission = get_object_or_404(UserPortfolioPermission, pk=member_pk)
|
||||
member = portfolio_permission.user
|
||||
|
||||
# We have to explicitely name these with member_ otherwise we'll have conflicts with context preprocessors
|
||||
|
@ -103,8 +103,8 @@ class PortfolioMemberView(DetailView, View):
|
|||
request,
|
||||
self.template_name,
|
||||
{
|
||||
"edit_url": reverse("member-permissions", args=[pk]),
|
||||
"domains_url": reverse("member-domains", args=[pk]),
|
||||
"edit_url": reverse("member-permissions", args=[member_pk]),
|
||||
"domains_url": reverse("member-domains", args=[member_pk]),
|
||||
"portfolio_permission": portfolio_permission,
|
||||
"member": member,
|
||||
"member_has_view_all_requests_portfolio_permission": member_has_view_all_requests_portfolio_permission,
|
||||
|
@ -119,19 +119,19 @@ class PortfolioMemberView(DetailView, View):
|
|||
@grant_access(HAS_PORTFOLIO_MEMBERS_VIEW, HAS_PORTFOLIO_MEMBERS_EDIT)
|
||||
class PortfolioMemberDeleteView(View):
|
||||
|
||||
def post(self, request, pk):
|
||||
def post(self, request, member_pk):
|
||||
"""
|
||||
Find and delete the portfolio member using the provided primary key (pk).
|
||||
Redirect to a success page after deletion (or any other appropriate page).
|
||||
"""
|
||||
portfolio_member_permission = get_object_or_404(UserPortfolioPermission, pk=pk)
|
||||
portfolio_member_permission = get_object_or_404(UserPortfolioPermission, pk=member_pk)
|
||||
member = portfolio_member_permission.user
|
||||
portfolio = portfolio_member_permission.portfolio
|
||||
|
||||
# Validate if the member can be removed
|
||||
error_message = self._validate_member_removal(request, member, portfolio)
|
||||
if error_message:
|
||||
return self._handle_error_response(request, error_message, pk)
|
||||
return self._handle_error_response(request, error_message, member_pk)
|
||||
|
||||
# Attempt to send notification emails
|
||||
self._send_removal_notifications(request, portfolio_member_permission)
|
||||
|
@ -162,14 +162,14 @@ class PortfolioMemberDeleteView(View):
|
|||
)
|
||||
return None
|
||||
|
||||
def _handle_error_response(self, request, error_message, pk):
|
||||
def _handle_error_response(self, request, error_message, member_pk):
|
||||
"""
|
||||
Return an error response (JSON or redirect with messages).
|
||||
"""
|
||||
if request.headers.get("X-Requested-With") == "XMLHttpRequest":
|
||||
return JsonResponse({"error": error_message}, status=400)
|
||||
messages.error(request, error_message)
|
||||
return redirect(reverse("member", kwargs={"pk": pk}))
|
||||
return redirect(reverse("member", kwargs={"pk": member_pk}))
|
||||
|
||||
def _send_removal_notifications(self, request, portfolio_member_permission):
|
||||
"""
|
||||
|
@ -225,8 +225,8 @@ class PortfolioMemberEditView(DetailView, View):
|
|||
template_name = "portfolio_member_permissions.html"
|
||||
form_class = portfolioForms.PortfolioMemberForm
|
||||
|
||||
def get(self, request, pk):
|
||||
portfolio_permission = get_object_or_404(UserPortfolioPermission, pk=pk)
|
||||
def get(self, request, member_pk):
|
||||
portfolio_permission = get_object_or_404(UserPortfolioPermission, pk=member_pk)
|
||||
user = portfolio_permission.user
|
||||
|
||||
form = self.form_class(instance=portfolio_permission)
|
||||
|
@ -241,8 +241,8 @@ class PortfolioMemberEditView(DetailView, View):
|
|||
},
|
||||
)
|
||||
|
||||
def post(self, request, pk):
|
||||
portfolio_permission = get_object_or_404(UserPortfolioPermission, pk=pk)
|
||||
def post(self, request, member_pk):
|
||||
portfolio_permission = get_object_or_404(UserPortfolioPermission, pk=member_pk)
|
||||
user = portfolio_permission.user
|
||||
form = self.form_class(request.POST, instance=portfolio_permission)
|
||||
removing_admin_role_on_self = False
|
||||
|
@ -277,7 +277,7 @@ class PortfolioMemberEditView(DetailView, View):
|
|||
self._handle_exceptions(e)
|
||||
form.save()
|
||||
messages.success(self.request, "The member access and permission changes have been saved.")
|
||||
return redirect("member", pk=pk) if not removing_admin_role_on_self else redirect("home")
|
||||
return redirect("member", pk=member_pk) if not removing_admin_role_on_self else redirect("home")
|
||||
|
||||
return render(
|
||||
request,
|
||||
|
@ -306,8 +306,8 @@ class PortfolioMemberDomainsView(View):
|
|||
|
||||
template_name = "portfolio_member_domains.html"
|
||||
|
||||
def get(self, request, pk):
|
||||
portfolio_permission = get_object_or_404(UserPortfolioPermission, pk=pk)
|
||||
def get(self, request, member_pk):
|
||||
portfolio_permission = get_object_or_404(UserPortfolioPermission, pk=member_pk)
|
||||
member = portfolio_permission.user
|
||||
|
||||
return render(
|
||||
|
@ -326,8 +326,8 @@ class PortfolioMemberDomainsEditView(DetailView, View):
|
|||
context_object_name = "portfolio"
|
||||
template_name = "portfolio_member_domains_edit.html"
|
||||
|
||||
def get(self, request, pk):
|
||||
portfolio_permission = get_object_or_404(UserPortfolioPermission, pk=pk)
|
||||
def get(self, request, member_pk):
|
||||
portfolio_permission = get_object_or_404(UserPortfolioPermission, pk=member_pk)
|
||||
member = portfolio_permission.user
|
||||
|
||||
return render(
|
||||
|
@ -339,33 +339,33 @@ class PortfolioMemberDomainsEditView(DetailView, View):
|
|||
},
|
||||
)
|
||||
|
||||
def post(self, request, pk):
|
||||
def post(self, request, member_pk):
|
||||
"""
|
||||
Handles adding and removing domains for a portfolio member.
|
||||
"""
|
||||
added_domains = request.POST.get("added_domains")
|
||||
removed_domains = request.POST.get("removed_domains")
|
||||
portfolio_permission = get_object_or_404(UserPortfolioPermission, pk=pk)
|
||||
portfolio_permission = get_object_or_404(UserPortfolioPermission, pk=member_pk)
|
||||
member = portfolio_permission.user
|
||||
portfolio = portfolio_permission.portfolio
|
||||
|
||||
added_domain_ids = self._parse_domain_ids(added_domains, "added domains")
|
||||
if added_domain_ids is None:
|
||||
return redirect(reverse("member-domains", kwargs={"pk": pk}))
|
||||
return redirect(reverse("member-domains", kwargs={"pk": member_pk}))
|
||||
|
||||
removed_domain_ids = self._parse_domain_ids(removed_domains, "removed domains")
|
||||
if removed_domain_ids is None:
|
||||
return redirect(reverse("member-domains", kwargs={"pk": pk}))
|
||||
return redirect(reverse("member-domains", kwargs={"pk": member_pk}))
|
||||
|
||||
if not (added_domain_ids or removed_domain_ids):
|
||||
messages.success(request, "The domain assignment changes have been saved.")
|
||||
return redirect(reverse("member-domains", kwargs={"pk": pk}))
|
||||
return redirect(reverse("member-domains", kwargs={"pk": member_pk}))
|
||||
|
||||
try:
|
||||
self._process_added_domains(added_domain_ids, member, request.user, portfolio)
|
||||
self._process_removed_domains(removed_domain_ids, member)
|
||||
messages.success(request, "The domain assignment changes have been saved.")
|
||||
return redirect(reverse("member-domains", kwargs={"pk": pk}))
|
||||
return redirect(reverse("member-domains", kwargs={"pk": member_pk}))
|
||||
except IntegrityError:
|
||||
messages.error(
|
||||
request,
|
||||
|
@ -373,7 +373,7 @@ class PortfolioMemberDomainsEditView(DetailView, View):
|
|||
f"please contact {DefaultUserValues.HELP_EMAIL}.",
|
||||
)
|
||||
logger.error("A database error occurred while saving changes.", exc_info=True)
|
||||
return redirect(reverse("member-domains-edit", kwargs={"pk": pk}))
|
||||
return redirect(reverse("member-domains-edit", kwargs={"pk": member_pk}))
|
||||
except Exception as e:
|
||||
messages.error(
|
||||
request,
|
||||
|
@ -381,7 +381,7 @@ class PortfolioMemberDomainsEditView(DetailView, View):
|
|||
f"please contact {DefaultUserValues.HELP_EMAIL}.",
|
||||
)
|
||||
logger.error(f"An unexpected error occurred: {str(e)}", exc_info=True)
|
||||
return redirect(reverse("member-domains-edit", kwargs={"pk": pk}))
|
||||
return redirect(reverse("member-domains-edit", kwargs={"pk": member_pk}))
|
||||
|
||||
def _parse_domain_ids(self, domain_data, domain_type):
|
||||
"""
|
||||
|
@ -439,8 +439,8 @@ class PortfolioInvitedMemberView(DetailView, View):
|
|||
template_name = "portfolio_member.html"
|
||||
# form_class = PortfolioInvitedMemberForm
|
||||
|
||||
def get(self, request, pk):
|
||||
portfolio_invitation = get_object_or_404(PortfolioInvitation, pk=pk)
|
||||
def get(self, request, invitedmember_pk):
|
||||
portfolio_invitation = get_object_or_404(PortfolioInvitation, pk=invitedmember_pk)
|
||||
# form = self.form_class(instance=portfolio_invitation)
|
||||
|
||||
# We have to explicitely name these with member_ otherwise we'll have conflicts with context preprocessors
|
||||
|
@ -464,8 +464,8 @@ class PortfolioInvitedMemberView(DetailView, View):
|
|||
request,
|
||||
self.template_name,
|
||||
{
|
||||
"edit_url": reverse("invitedmember-permissions", args=[pk]),
|
||||
"domains_url": reverse("invitedmember-domains", args=[pk]),
|
||||
"edit_url": reverse("invitedmember-permissions", args=[invitedmember_pk]),
|
||||
"domains_url": reverse("invitedmember-domains", args=[invitedmember_pk]),
|
||||
"portfolio_invitation": portfolio_invitation,
|
||||
"member_has_view_all_requests_portfolio_permission": member_has_view_all_requests_portfolio_permission,
|
||||
"member_has_edit_request_portfolio_permission": member_has_edit_request_portfolio_permission,
|
||||
|
@ -479,12 +479,12 @@ class PortfolioInvitedMemberView(DetailView, View):
|
|||
@grant_access(HAS_PORTFOLIO_MEMBERS_VIEW, HAS_PORTFOLIO_MEMBERS_EDIT)
|
||||
class PortfolioInvitedMemberDeleteView(View):
|
||||
|
||||
def post(self, request, pk):
|
||||
def post(self, request, invitedmember_pk):
|
||||
"""
|
||||
Find and delete the portfolio invited member using the provided primary key (pk).
|
||||
Redirect to a success page after deletion (or any other appropriate page).
|
||||
"""
|
||||
portfolio_invitation = get_object_or_404(PortfolioInvitation, pk=pk)
|
||||
portfolio_invitation = get_object_or_404(PortfolioInvitation, pk=invitedmember_pk)
|
||||
|
||||
try:
|
||||
# if invitation being removed is an admin
|
||||
|
@ -529,8 +529,8 @@ class PortfolioInvitedMemberEditView(DetailView, View):
|
|||
template_name = "portfolio_member_permissions.html"
|
||||
form_class = portfolioForms.PortfolioInvitedMemberForm
|
||||
|
||||
def get(self, request, pk):
|
||||
portfolio_invitation = get_object_or_404(PortfolioInvitation, pk=pk)
|
||||
def get(self, request, invitedmember_pk):
|
||||
portfolio_invitation = get_object_or_404(PortfolioInvitation, pk=invitedmember_pk)
|
||||
form = self.form_class(instance=portfolio_invitation)
|
||||
|
||||
return render(
|
||||
|
@ -542,8 +542,8 @@ class PortfolioInvitedMemberEditView(DetailView, View):
|
|||
},
|
||||
)
|
||||
|
||||
def post(self, request, pk):
|
||||
portfolio_invitation = get_object_or_404(PortfolioInvitation, pk=pk)
|
||||
def post(self, request, invitedmember_pk):
|
||||
portfolio_invitation = get_object_or_404(PortfolioInvitation, pk=invitedmember_pk)
|
||||
form = self.form_class(request.POST, instance=portfolio_invitation)
|
||||
if form.is_valid():
|
||||
try:
|
||||
|
@ -569,7 +569,7 @@ class PortfolioInvitedMemberEditView(DetailView, View):
|
|||
self._handle_exceptions(e)
|
||||
form.save()
|
||||
messages.success(self.request, "The member access and permission changes have been saved.")
|
||||
return redirect("invitedmember", pk=pk)
|
||||
return redirect("invitedmember", pk=invitedmember_pk)
|
||||
|
||||
return render(
|
||||
request,
|
||||
|
@ -598,8 +598,8 @@ class PortfolioInvitedMemberDomainsView(View):
|
|||
|
||||
template_name = "portfolio_member_domains.html"
|
||||
|
||||
def get(self, request, pk):
|
||||
portfolio_invitation = get_object_or_404(PortfolioInvitation, pk=pk)
|
||||
def get(self, request, invitedmember_pk):
|
||||
portfolio_invitation = get_object_or_404(PortfolioInvitation, pk=invitedmember_pk)
|
||||
|
||||
return render(
|
||||
request,
|
||||
|
@ -617,8 +617,8 @@ class PortfolioInvitedMemberDomainsEditView(DetailView, View):
|
|||
context_object_name = "portfolio"
|
||||
template_name = "portfolio_member_domains_edit.html"
|
||||
|
||||
def get(self, request, pk):
|
||||
portfolio_invitation = get_object_or_404(PortfolioInvitation, pk=pk)
|
||||
def get(self, request, invitedmember_pk):
|
||||
portfolio_invitation = get_object_or_404(PortfolioInvitation, pk=invitedmember_pk)
|
||||
|
||||
return render(
|
||||
request,
|
||||
|
@ -628,33 +628,33 @@ class PortfolioInvitedMemberDomainsEditView(DetailView, View):
|
|||
},
|
||||
)
|
||||
|
||||
def post(self, request, pk):
|
||||
def post(self, request, invitedmember_pk):
|
||||
"""
|
||||
Handles adding and removing domains for a portfolio invitee.
|
||||
"""
|
||||
added_domains = request.POST.get("added_domains")
|
||||
removed_domains = request.POST.get("removed_domains")
|
||||
portfolio_invitation = get_object_or_404(PortfolioInvitation, pk=pk)
|
||||
portfolio_invitation = get_object_or_404(PortfolioInvitation, pk=invitedmember_pk)
|
||||
email = portfolio_invitation.email
|
||||
portfolio = portfolio_invitation.portfolio
|
||||
|
||||
added_domain_ids = self._parse_domain_ids(added_domains, "added domains")
|
||||
if added_domain_ids is None:
|
||||
return redirect(reverse("invitedmember-domains", kwargs={"pk": pk}))
|
||||
return redirect(reverse("invitedmember-domains", kwargs={"pk": invitedmember_pk}))
|
||||
|
||||
removed_domain_ids = self._parse_domain_ids(removed_domains, "removed domains")
|
||||
if removed_domain_ids is None:
|
||||
return redirect(reverse("invitedmember-domains", kwargs={"pk": pk}))
|
||||
return redirect(reverse("invitedmember-domains", kwargs={"pk": invitedmember_pk}))
|
||||
|
||||
if not (added_domain_ids or removed_domain_ids):
|
||||
messages.success(request, "The domain assignment changes have been saved.")
|
||||
return redirect(reverse("invitedmember-domains", kwargs={"pk": pk}))
|
||||
return redirect(reverse("invitedmember-domains", kwargs={"pk": invitedmember_pk}))
|
||||
|
||||
try:
|
||||
self._process_added_domains(added_domain_ids, email, request.user, portfolio)
|
||||
self._process_removed_domains(removed_domain_ids, email)
|
||||
messages.success(request, "The domain assignment changes have been saved.")
|
||||
return redirect(reverse("invitedmember-domains", kwargs={"pk": pk}))
|
||||
return redirect(reverse("invitedmember-domains", kwargs={"pk": invitedmember_pk}))
|
||||
except IntegrityError:
|
||||
messages.error(
|
||||
request,
|
||||
|
@ -662,7 +662,7 @@ class PortfolioInvitedMemberDomainsEditView(DetailView, View):
|
|||
f"please contact {DefaultUserValues.HELP_EMAIL}.",
|
||||
)
|
||||
logger.error("A database error occurred while saving changes.", exc_info=True)
|
||||
return redirect(reverse("invitedmember-domains-edit", kwargs={"pk": pk}))
|
||||
return redirect(reverse("invitedmember-domains-edit", kwargs={"pk": invitedmember_pk}))
|
||||
except Exception as e:
|
||||
messages.error(
|
||||
request,
|
||||
|
@ -670,7 +670,7 @@ class PortfolioInvitedMemberDomainsEditView(DetailView, View):
|
|||
f"please contact {DefaultUserValues.HELP_EMAIL}.",
|
||||
)
|
||||
logger.error(f"An unexpected error occurred: {str(e)}.", exc_info=True)
|
||||
return redirect(reverse("invitedmember-domains-edit", kwargs={"pk": pk}))
|
||||
return redirect(reverse("invitedmember-domains-edit", kwargs={"pk": invitedmember_pk}))
|
||||
|
||||
def _parse_domain_ids(self, domain_data, domain_type):
|
||||
"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue