Implement user search functionality and enhance supervisor management UI

This commit is contained in:
Ross
2026-06-15 10:28:32 +01:00
parent fc9f2ed6af
commit 35ab7443d2
8 changed files with 268 additions and 44 deletions
+31
View File
@@ -140,9 +140,40 @@ def server(request):
@user_is_cid_user_manager
def people(request):
"""Render the people management overview or search users via HTMX.
Scope: managers and superusers.
Functionality: provides details on user roles/groups, and a single search
input that filters users dynamically via HTMX GET requests.
"""
if request.htmx:
q = request.GET.get("q", "").strip()
if not q:
return HttpResponse("")
users = (
User.objects.filter(
Q(first_name__icontains=q)
| Q(last_name__icontains=q)
| Q(email__icontains=q)
| Q(username__icontains=q)
)
.prefetch_related(
"userprofile", "userprofile__grade", "userprofile__supervisor", "user_groups"
)
.order_by("first_name", "last_name", "username")[:20]
)
return render(
request,
"rad/partials/_people_search_results.html",
{"users": users, "q": q},
)
return render(request, "people.html", {})
@login_required
def profile(request):
"""Render the current user's profile page with group management context.