Add supervisor search functionality with HTMX support for manual selection in bulk updates

This commit is contained in:
Ross
2025-10-27 14:43:41 +00:00
parent be94ed8d0f
commit fba8d5ab05
4 changed files with 71 additions and 9 deletions
+20
View File
@@ -4423,6 +4423,26 @@ def user_search(request):
return JsonResponse({"results": results})
@user_is_cid_user_manager
def supervisor_search(request):
"""Simple JSON/HTMX endpoint to search supervisors by name/email for manual matching."""
q = request.GET.get("q", "").strip()
results = []
if q:
qs = Supervisor.objects.filter(
Q(name__icontains=q) | Q(email__icontains=q)
).order_by("name")[:50]
for s in qs:
results.append({"id": s.pk, "text": f"{s.name} ({s.email})"})
row = request.GET.get("row")
if request.headers.get("HX-Request") == "true" or row is not None:
return render(request, "generic/partials/supervisor_search_results.html", {"results": results, "row": int(row) if row is not None else None})
return JsonResponse({"results": results})
def create_trainee(request, context=None):
return create_user(request, context, trainee=True)