Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -75,7 +75,7 @@ def export_logs_to_csv_file() -> str:
|
|
| 75 |
|
| 76 |
tmp_dir = tempfile.mkdtemp()
|
| 77 |
|
| 78 |
-
# ✅
|
| 79 |
ts = (datetime.utcnow() + timedelta(hours=9)).strftime("%Y%m%d_%H%M")
|
| 80 |
path = os.path.join(tmp_dir, f"exercise_logs_{ts}.csv")
|
| 81 |
|
|
@@ -745,6 +745,16 @@ def finish_or_retire(pages_json, current_page, pid, orig_lev, action, session_st
|
|
| 745 |
)
|
| 746 |
|
| 747 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 748 |
# ======================================================
|
| 749 |
# UI(タイトル表示を追加。それ以外は変更しない)
|
| 750 |
# ★追加:パスワード付きログCSVダウンロード
|
|
@@ -908,7 +918,15 @@ with gr.Blocks(css=custom_css) as demo:
|
|
| 908 |
value=3
|
| 909 |
)
|
| 910 |
|
| 911 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 912 |
|
| 913 |
title_display = gr.Markdown("**Title:** ", elem_classes=["title-card"])
|
| 914 |
|
|
|
|
| 75 |
|
| 76 |
tmp_dir = tempfile.mkdtemp()
|
| 77 |
|
| 78 |
+
# ✅ DL用ファイル名を exercise_logs_日時 にする(JST)
|
| 79 |
ts = (datetime.utcnow() + timedelta(hours=9)).strftime("%Y%m%d_%H%M")
|
| 80 |
path = os.path.join(tmp_dir, f"exercise_logs_{ts}.csv")
|
| 81 |
|
|
|
|
| 745 |
)
|
| 746 |
|
| 747 |
|
| 748 |
+
# ======================================================
|
| 749 |
+
# ★追加:入力状況で Start ボタンの有効/無効を切り替え
|
| 750 |
+
# - 学籍番号が空なら Start は押せない
|
| 751 |
+
# - group / level はデフォルトがあるので必須チェック不要(必要なら追加可)
|
| 752 |
+
# ======================================================
|
| 753 |
+
def toggle_start_button(student_id):
|
| 754 |
+
ok = bool((student_id or "").strip())
|
| 755 |
+
return gr.update(interactive=ok)
|
| 756 |
+
|
| 757 |
+
|
| 758 |
# ======================================================
|
| 759 |
# UI(タイトル表示を追加。それ以外は変更しない)
|
| 760 |
# ★追加:パスワード付きログCSVダウンロード
|
|
|
|
| 918 |
value=3
|
| 919 |
)
|
| 920 |
|
| 921 |
+
# ✅ 初期状態では押せない(学籍番号が空だから)
|
| 922 |
+
start_btn = gr.Button("スタート", interactive=False)
|
| 923 |
+
|
| 924 |
+
# ✅ 学籍番号の入力に応じて Start の有効/無効を切り替え
|
| 925 |
+
student_id_input.change(
|
| 926 |
+
fn=toggle_start_button,
|
| 927 |
+
inputs=[student_id_input],
|
| 928 |
+
outputs=[start_btn]
|
| 929 |
+
)
|
| 930 |
|
| 931 |
title_display = gr.Markdown("**Title:** ", elem_classes=["title-card"])
|
| 932 |
|