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