DigitalTransG2 commited on
Commit
efc5ba7
·
verified ·
1 Parent(s): 3f95228

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +49 -37
app.py CHANGED
@@ -74,40 +74,52 @@ if role == "Quiz Creator":
74
  if role == "Student Evaluation":
75
  st.subheader("Bảng đánh giá học sinh")
76
 
77
- # Lấy tất cả học sinh
78
- res = requests.get(f"{FIREBASE_URL}/student_quizzes.json?auth={FIREBASE_AUTH}")
79
- students = res.json() if res.status_code == 200 else {}
80
-
81
- if not students:
82
- st.info("Chưa có học sinh nào.")
83
- else:
84
- # Tạo danh sách các dòng cho DataFrame
85
- rows = []
86
- for student_id, data in students.items():
87
- name = data.get("Name", "")
88
- class_ = data.get("Class", "")
89
- for key, quiz_data in data.items():
90
- if key.startswith("Quiz"): # Chỉ lấy các quiz
91
- score = quiz_data.get("Score", "")
92
- time = quiz_data.get("Time", "")
93
- rows.append({
94
- "ID": student_id,
95
- "Name": name,
96
- "Class": class_,
97
- "Quiz": key,
98
- "Score": score,
99
- "Time": time
100
- })
101
- df = pd.DataFrame(rows)
102
- st.dataframe(df)
103
-
104
- st.subheader("Nhập Feedback cho từng quiz")
105
- for student_id, data in students.items():
106
- for key, quiz_data in data.items():
107
- if key.startswith("Quiz"):
108
- st.markdown(f"**ID: {student_id} - {data.get('Name','')} - {key}**")
109
- feedback = st.text_area("Feedback", key=f"fb_{student_id}_{key}")
110
- if st.button(f"Gửi Feedback cho {student_id} - {key}", key=f"submit_fb_{student_id}_{key}"):
111
- url_fb = f"{FIREBASE_URL}/student_quizzes/{student_id}/{key}/feedback.json?auth={FIREBASE_AUTH}"
112
- requests.put(url_fb, json=feedback)
113
- st.success(f"Đã gửi feedback cho {student_id} - {key}")
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  if role == "Student Evaluation":
75
  st.subheader("Bảng đánh giá học sinh")
76
 
77
+ # Lấy tất cả học sinh từ Firebase
78
+ res = requests.get(f"{FIREBASE_URL}/student_quizzes.json?auth={FIREBASE_AUTH}")
79
+ students = res.json() if res.status_code == 200 else {}
80
+
81
+ if not students:
82
+ st.info("Chưa có học sinh nào.")
83
+ else:
84
+ # Tạo danh sách các dòng cho DataFrame
85
+ rows = []
86
+ for student_id, data in students.items():
87
+ name = data.get("Name", "")
88
+ class_ = data.get("Class", "")
89
+ for key, quiz_data in data.items():
90
+ if key.startswith("Quiz"):
91
+ # Kiểm tra kiểu dữ liệu quiz_data
92
+ if isinstance(quiz_data, str):
93
+ # Dữ liệu cũ, chỉ có Score
94
+ quiz_data = {"Score": quiz_data, "Time": ""}
95
+ score = quiz_data.get("Score", "")
96
+ time = quiz_data.get("Time", "")
97
+ rows.append({
98
+ "ID": student_id,
99
+ "Name": name,
100
+ "Class": class_,
101
+ "Quiz": key,
102
+ "Score": score,
103
+ "Time": time
104
+ })
105
+
106
+ df = pd.DataFrame(rows)
107
+ st.subheader("Danh sách học sinh và quiz")
108
+ st.dataframe(df)
109
+
110
+ # Nhập Feedback
111
+ st.subheader("Nhập Feedback cho từng quiz")
112
+ for student_id, data in students.items():
113
+ for key, quiz_data in data.items():
114
+ if key.startswith("Quiz"):
115
+ # Chuyển str -> dict nếu dữ liệu cũ
116
+ if isinstance(quiz_data, str):
117
+ quiz_data = {"Score": quiz_data, "Time": ""}
118
+ st.markdown(f"**ID: {student_id} - {data.get('Name','')} - {key}**")
119
+ # Lấy feedback hiện có nếu có
120
+ existing_fb = quiz_data.get("feedback", "")
121
+ feedback = st.text_area("Feedback", value=existing_fb, key=f"fb_{student_id}_{key}")
122
+ if st.button(f"Gửi Feedback cho {student_id} - {key}", key=f"submit_fb_{student_id}_{key}"):
123
+ url_fb = f"{FIREBASE_URL}/student_quizzes/{student_id}/{key}/feedback.json?auth={FIREBASE_AUTH}"
124
+ requests.put(url_fb, json=feedback)
125
+ st.success(f"Đã gửi feedback cho {student_id} - {key}")