Refactor auth group dropdown in profile and fragment templates for improved functionality and user experience

This commit is contained in:
Ross
2025-11-03 12:37:32 +00:00
parent 3461e45f93
commit 3a5ceabff0
3 changed files with 48 additions and 19 deletions
@@ -21,12 +21,12 @@
{% endif %}
{% if request.user.is_superuser or is_cid_user_manager %}
{% if available_auth_groups.count %}
<div class="dropdown">
<button class="btn btn-sm btn-outline-primary dropdown-toggle" type="button" id="addAuthGroupDropdown" data-bs-toggle="dropdown" aria-expanded="false">
Add
</button>
<ul class="dropdown-menu" aria-labelledby="addAuthGroupDropdown">
<div class="dropdown">
<button class="btn btn-sm btn-outline-primary dropdown-toggle" type="button" id="addAuthGroupDropdown" data-bs-toggle="dropdown" aria-expanded="false">
Add
</button>
<ul class="dropdown-menu" aria-labelledby="addAuthGroupDropdown">
{% if available_auth_groups.count %}
{% for ag in available_auth_groups %}
<li>
<button
@@ -39,8 +39,16 @@
</button>
</li>
{% endfor %}
</ul>
</div>
{% endif %}
{% else %}
{% if request.user.is_superuser %}
<li>
<a class="dropdown-item" href="{% url 'admin:auth_group_add' %}" target="_blank" rel="noopener">Create permission group</a>
</li>
{% else %}
<li><span class="dropdown-item disabled">No groups available to add</span></li>
{% endif %}
{% endif %}
</ul>
</div>
{% endif %}
</div>
+14 -1
View File
@@ -162,7 +162,20 @@ def account_profile(request, slug):
available_groups = UserUserGroup.objects.filter(archive=False).exclude(
pk__in=user.user_groups.values_list("pk", flat=True)
)
return render(request, "profile.html", {"user": user, "available_groups": available_groups})
available_auth_groups = Group.objects.exclude(
pk__in=user.groups.values_list("pk", flat=True)
)
is_cid_user_manager = request.user.groups.filter(name="cid_user_manager").exists()
return render(
request,
"profile.html",
{
"user": user,
"available_groups": available_groups,
"available_auth_groups": available_auth_groups,
"is_cid_user_manager": is_cid_user_manager,
},
)
def cid_selector(request):
+17 -9
View File
@@ -37,12 +37,12 @@
{% endif %}
{% if request.user.is_superuser or is_cid_user_manager %}
{% if available_auth_groups.count %}
<div class="dropdown">
<button class="btn btn-sm btn-outline-primary dropdown-toggle" type="button" id="addAuthGroupDropdown" data-bs-toggle="dropdown" aria-expanded="false">
Add
</button>
<ul class="dropdown-menu" aria-labelledby="addAuthGroupDropdown">
<div class="dropdown">
<button class="btn btn-sm btn-outline-primary dropdown-toggle" type="button" id="addAuthGroupDropdown" data-bs-toggle="dropdown" aria-expanded="false">
Add
</button>
<ul class="dropdown-menu" aria-labelledby="addAuthGroupDropdown">
{% if available_auth_groups.count %}
{% for ag in available_auth_groups %}
<li>
<button
@@ -55,9 +55,17 @@
</button>
</li>
{% endfor %}
</ul>
</div>
{% endif %}
{% else %}
{% if request.user.is_superuser %}
<li>
<a class="dropdown-item" href="{% url 'admin:auth_group_add' %}" target="_blank" rel="noopener">Create permission group</a>
</li>
{% else %}
<li><span class="dropdown-item disabled">No groups available to add</span></li>
{% endif %}
{% endif %}
</ul>
</div>
{% endif %}
</div>
</div>