Add grade filter to user search widget and enhance logging for bulk add operations
This commit is contained in:
+28
-1
@@ -408,6 +408,23 @@ def exam_collection_bulk_add_groups(request, collection_id):
|
||||
else:
|
||||
exam_types = None
|
||||
|
||||
# Debug: log what was submitted so we can trace why groups may not be applied
|
||||
try:
|
||||
cid_pks = [g.pk for g in cid_groups] if cid_groups is not None else []
|
||||
except Exception:
|
||||
cid_pks = []
|
||||
try:
|
||||
user_pks = [g.pk for g in user_groups] if user_groups is not None else []
|
||||
except Exception:
|
||||
user_pks = []
|
||||
logger.debug(
|
||||
"ExamCollection bulk-add POST: collection=%s cid_groups=%s user_groups=%s exam_types=%s",
|
||||
collection.pk,
|
||||
cid_pks,
|
||||
user_pks,
|
||||
exam_types,
|
||||
)
|
||||
|
||||
total_user = 0
|
||||
total_cid = 0
|
||||
try:
|
||||
@@ -5930,7 +5947,17 @@ def user_search_widget(request):
|
||||
| Q(last_name__icontains=q)
|
||||
| Q(email__icontains=q)
|
||||
| Q(username__icontains=q)
|
||||
).order_by("last_name", "first_name")[:10]
|
||||
)
|
||||
|
||||
# optional grade filter (UserProfile.grade FK)
|
||||
grade = request.GET.get('grade')
|
||||
if grade:
|
||||
try:
|
||||
users_qs = users_qs.filter(userprofile__grade_id=int(grade))
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
users_qs = users_qs.order_by("last_name", "first_name")[:10]
|
||||
|
||||
results = [{"id": u.pk, "text": f"{u.get_full_name() or u.username} - {u.email or ''}"} for u in users_qs]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user