diff --git a/elastic/templates/elastic/manage.html b/elastic/templates/elastic/manage.html
index 6d7b160..33b5d16 100644
--- a/elastic/templates/elastic/manage.html
+++ b/elastic/templates/elastic/manage.html
@@ -333,7 +333,7 @@ function renderTable(data) {
${escapeHtml(displayData)}
|
- ${item.writer_id || ''} |
+ ${item.writer_name || item.writer_id || ''} |
diff --git a/elastic/views.py b/elastic/views.py
index 3454adb..3728316 100644
--- a/elastic/views.py
+++ b/elastic/views.py
@@ -81,6 +81,21 @@ def _attach_image_urls(request, items):
return out
+def _attach_writer_names(items):
+ users = get_all_users()
+ name_by_id = {str(u.get("user_id")): u.get("username") for u in (users or [])}
+ out = []
+ for it in list(items or []):
+ try:
+ d = dict(it or {})
+ except Exception:
+ continue
+ wid = d.get("writer_id")
+ d["writer_name"] = name_by_id.get(str(wid), str(wid) if wid is not None else "")
+ out.append(d)
+ return out
+
+
@require_http_methods(["GET", "POST"])
@csrf_exempt
def init_index(request):
@@ -117,7 +132,8 @@ def search(request):
return JsonResponse({"status": "error", "message": "搜索关键词不能为空"}, status=400)
results = search_data(query)
- return JsonResponse({"status": "success", "data": _attach_image_urls(request, results)})
+ data = _attach_writer_names(_attach_image_urls(request, results))
+ return JsonResponse({"status": "success", "data": data})
except Exception as e:
return JsonResponse({"status": "error", "message": str(e)}, status=500)
@@ -131,7 +147,8 @@ def fuzzy_search(request):
return JsonResponse({"status": "error", "message": "搜索关键词不能为空"}, status=400)
results = search_by_any_field(keyword)
- return JsonResponse({"status": "success", "data": _attach_image_urls(request, results)})
+ data = _attach_writer_names(_attach_image_urls(request, results))
+ return JsonResponse({"status": "success", "data": data})
except Exception as e:
return JsonResponse({"status": "error", "message": str(e)}, status=500)
@@ -140,7 +157,8 @@ def get_all_data(request):
"""获取所有数据"""
try:
results = search_all()
- return JsonResponse({"status": "success", "data": _attach_image_urls(request, results)})
+ data = _attach_writer_names(_attach_image_urls(request, results))
+ return JsonResponse({"status": "success", "data": data})
except Exception as e:
return JsonResponse({"status": "error", "message": str(e)}, status=500)
@@ -493,7 +511,11 @@ def upload_page(request):
from django.shortcuts import redirect
return redirect("/accounts/login/")
user_id_qs = request.GET.get("user_id")
- context = {"user_id": user_id_qs or session_user_id}
+ me = get_user_by_id(session_user_id) or {}
+ context = {
+ "user_id": user_id_qs or session_user_id,
+ "username": me.get("username"),
+ }
return render(request, "elastic/upload.html", context)
@@ -666,6 +688,7 @@ def manage_page(request):
from django.shortcuts import redirect
return redirect("/accounts/login/")
+ me = get_user_by_id(session_user_id) or {}
is_admin = int(request.session.get("permission", 1)) == 0
if is_admin:
raw_results = search_all()
@@ -690,6 +713,7 @@ def manage_page(request):
"results": results,
"is_admin": is_admin,
"user_id": session_user_id,
+ "username": me.get("username"),
},
)
# 规范化键,避免模板点号访问下划线前缀字段
@@ -779,6 +803,7 @@ def user_manage(request):
user_id_qs = request.GET.get("user_id")
context = {
"user_id": user_id_qs or session_user_id,
+ "username": me.get("username"),
"is_admin": is_admin,
"is_tutor": (not is_admin) and has_manage,
"is_student": (not is_admin) and (not has_manage),
@@ -796,7 +821,11 @@ def registration_code_manage_page(request):
from django.shortcuts import redirect
return redirect("/main/home/")
user_id_qs = request.GET.get("user_id")
- context = {"user_id": user_id_qs or session_user_id}
+ me = get_user_by_id(session_user_id) or {}
+ context = {
+ "user_id": user_id_qs or session_user_id,
+ "username": me.get("username"),
+ }
return render(request, "elastic/registration_codes.html", context)
@require_http_methods(["GET"])
diff --git a/main/views.py b/main/views.py
index db02461..4461318 100644
--- a/main/views.py
+++ b/main/views.py
@@ -14,8 +14,8 @@ def home(request):
user_id_qs = request.GET.get("user_id")
uid = user_id_qs or session_user_id
perm = request.session.get("permission")
+ u = get_user_by_id(uid) if uid is not None else None
if perm is None and uid is not None:
- u = get_user_by_id(uid)
try:
perm = int((u or {}).get("permission", 1))
except Exception:
@@ -28,6 +28,7 @@ def home(request):
perm = 1
context = {
"user_id": uid,
+ "username": (u or {}).get("username"),
"is_admin": (int(perm) == 0),
}
- return render(request, "main/home.html", context)
\ No newline at end of file
+ return render(request, "main/home.html", context)
|