wip member edit ui

This commit is contained in:
Rachid Mrad 2024-10-04 16:21:59 -04:00
parent 54e0612564
commit 9a28c8c404
No known key found for this signature in database
5 changed files with 119 additions and 72 deletions

View file

@ -0,0 +1,44 @@
<h4 class="margin-bottom-0 text-primary">Member access</h4>
{% if permissions.roles and 'organization_admin' in permissions.roles %}
<p class="margin-top-0">Admin access</p>
{% elif permissions.portfolio_roles and 'organization_admin' in permissions.portfolio_roles %}
<p class="margin-top-0">Admin access</p>
{% elif permissions.roles and 'organization_member' in permissions.roles %}
<p class="margin-top-0">Basic access</p>
{% elif permissions.portfolio_roles and 'organization_member' in permissions.portfolio_roles %}
<p class="margin-top-0">Basic access</p>
{% else %}
<p class="margin-top-0"></p>
{% endif %}
<h4 class="margin-bottom-0 text-primary">Organization domain requests</h4>
{% if permissions.roles and 'organization_admin' in permissions.roles or 'edit_requests' in permissions.additional_permissions %}
<p class="margin-top-0">View all requests plus create requests</p>
{% elif permissions.portfolio_roles and 'organization_admin' in permissions.portfolio_roles or 'edit_requests' in permissions.portfolio_additional_permissions %}
<p class="margin-top-0">View all requests plus create requests</p>
{% elif permissions.additional_permissions and 'view_all_requests' in permissions.additional_permissions %}
<p class="margin-top-0">View all requests</p>
{% elif permissions.portfolio_additional_permissions and 'view_all_requests' in permissions.portfolio_additional_permissions %}
<p class="margin-top-0">View all requests</p>
{% else %}
<p class="margin-top-0">No access</p>
{% endif %}
<h4 class="margin-bottom-0 text-primary">Organization members</h4>
{% if permissions.additional_permissions and 'edit_members' in permissions.additional_permissions %}
<p class="margin-top-0">View all members plus manage members</p>
{% elif permissions.portfolio_additional_permissions and 'edit_members' in permissions.portfolio_additional_permissions %}
<p class="margin-top-0">View all members plus manage members</p>
{% elif permissions.additional_permissions and 'view_members' in permissions.additional_permissions %}
<p class="margin-top-0">View all members</p>
{% elif permissions.portfolio_additional_permissions and 'view_members' in permissions.portfolio_additional_permissions %}
<p class="margin-top-0">View all members</p>
{% else %}
<p class="margin-top-0">No access</p>
{% endif %}

View file

@ -24,7 +24,9 @@
{% if sub_header_text %}
<h4 class="register-form-review-header">{{ sub_header_text }}</h4>
{% endif %}
{% if address %}
{% if permissions %}
{% include "includes/member_permissions.html" with permissions=value %}
{% elif address %}
{% include "includes/organization_address.html" with organization=value %}
{% elif contact %}
{% if list %}
@ -122,9 +124,9 @@
class="usa-link usa-link--icon font-sans-sm line-height-sans-5"
>
<svg class="usa-icon" aria-hidden="true" focusable="false" role="img" width="24">
<use xlink:href="{% static 'img/sprite.svg' %}#edit"></use>
<use xlink:href="{% static 'img/sprite.svg' %}#{% if manage_button %}settings{% elif view_button %}visibility{% else %}edit{% endif %}"></use>
</svg>
Edit<span class="sr-only"> {{ title }}</span>
{% if manage_button %}Manage{% elif view_button %}View{% else %}Edit{% endif %}<span class="sr-only"> {{ title }}</span>
</a>
</div>
{% endif %}

View file

@ -6,74 +6,75 @@
{% load static %}
{% block portfolio_content %}
<div class="grid-row grid-gap">
<div class="tablet:grid-col-9" id="main-content">
<div id="main-content">
{% block messages %}
{% include "includes/form_messages.html" %}
{% endblock %}
{% url 'members' as url %}
<nav class="usa-breadcrumb padding-top-0 margin-bottom-3" aria-label="Portfolio member breadcrumb">
<ol class="usa-breadcrumb__list">
<li class="usa-breadcrumb__list-item">
<a href="{{ url }}" class="usa-breadcrumb__link"><span>Members</span></a>
</li>
<li class="usa-breadcrumb__list-item usa-current" aria-current="page">
<span>Manage member</span>
</li>
</ol>
</nav>
<h1>Manage member</h1>
<h1>Manage member</h1>
<h2 class="margin-y-3">
{% if member %}
{{ member.email }}
{% elif portfolio_invitation %}
{{ portfolio_invitation.email }}
{% endif %}
</h2>
<address>
<strong class="text-primary-dark">Last active:</strong>
{% if member and member.last_login %}
{{ member.last_login }}
{% elif portfolio_invitation %}
Invited
{% else %}
--
{% endif %}
<br />
<strong class="text-primary-dark">Full name:</strong>
{% if member %}
{% if member.first_name or member.last_name %}
{{ member.get_formatted_name }}
{% else %}
--
{% endif %}
{% else %}
--
{% endif %}
<br />
<strong class="text-primary-dark">Title or organization role:</strong>
{% if member and member.title %}
{{ member.title }}
{% else %}
--
{% endif %}
</address>
{% if portfolio_permission %}
{% include "includes/summary_item.html" with title='Member access and permissions' permissions='true' value=portfolio_permission edit_link=edit_url editable=has_edit_members_portfolio_permission %}
{% elif portfolio_invitation %}
{% include "includes/summary_item.html" with title='Member access and permissions' permissions='true' value=portfolio_invitation edit_link=edit_url editable=has_edit_members_portfolio_permission %}
{% endif %}
{% if has_any_domains_portfolio_permission %}
{% if has_edit_members_portfolio_permission %}
{% include "includes/summary_item.html" with title='Domain management' value="Asdasd" edit_link='#' editable='true' manage_button='true' %}
{% else %}
{% include "includes/summary_item.html" with title='Domain management' value="Asdasd" edit_link='#' editable='true' view_button='true' %}
{% endif %}
{% endif %}
<p>
{% if member %}
{{ member.email }}
{% elif portfolio_invitation %}
{{ portfolio_invitation.email }}
{% endif %}
</p>
<p>Last active:
{% if member and member.last_login %}
{{ member.last_login }}
{% elif portfolio_invitation %}
Invited
{% else %}
--
{% endif %}
</p>
<p>Full name:
{% if member %}
{% if member.first_name or member.last_name %}
{{ member.get_formatted_name }}
{% else %}
--
{% endif %}
{% else %}
--
{% endif %}
</p>
<p>Title or organization role:
{% if member and member.title %}
{{ member.title }}
{% else %}
--
{% endif %}
</p>
<hr>
<form class="usa-form usa-form--large" method="post" novalidate>
{% csrf_token %}
{% if form.roles %}
{% input_with_errors form.roles %}
{% input_with_errors form.additional_permissions %}
{% elif form.portfolio_roles %}
{% input_with_errors form.portfolio_roles %}
{% input_with_errors form.portfolio_additional_permissions %}
{% endif %}
<button
type="submit"
class="usa-button"
>Submit</button>
</form>
</div>
</div>
{% endblock %}

View file

@ -17,8 +17,6 @@ def get_portfolio_members_json(request):
"""Given the current request,
get all members that are associated with the given portfolio"""
portfolio = request.GET.get("portfolio")
# member_ids = get_member_ids_from_request(request, portfolio)
# members = User.objects.filter(id__in=member_ids)
permissions = UserPortfolioPermission.objects.filter(portfolio=portfolio).select_related("user").values_list("pk", "user__first_name", "user__last_name", "user__email", "user__last_login", "roles")
invitations = PortfolioInvitation.objects.filter(portfolio=portfolio).values_list(

View file

@ -65,6 +65,7 @@ class PortfolioMemberView(PortfolioMemberPermissionView, View):
user = portfolio_permission.user
return render(request, self.template_name, {
'edit_url': reverse('member-permissions', args=[pk]),
'portfolio_permission': portfolio_permission,
'member': user,
})
@ -94,7 +95,7 @@ class PortfolioMemberEditView(PortfolioMemberEditPermissionView, View):
if form.is_valid():
form.save()
return redirect('member',pk=pk)
return redirect('member', pk=pk)
return render(request, self.template_name, {
'form': form,
@ -112,6 +113,7 @@ class PortfolioInvitedMemberView(PortfolioInvitedMemberPermissionView, View):
# form = self.form_class(instance=portfolio_invitation)
return render(request, self.template_name, {
'edit_url': reverse('invitedmember-permissions', args=[pk]),
'portfolio_invitation': portfolio_invitation,
})