Add supervisor search functionality with HTMX support for manual selection in bulk updates
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user