功能:出席率統計改以 attendance 表(TG 報名名單)為資料來源
摘要:
- 出席統計改讀 attendance 表(每天每人一列),依 poll_date 分組後餵給原本的統計函式
- 新增 DB_ATTENDANCE_TABLE 環境變數,預設 attendance;沒有此表時退回 badminton 分組名單
- 前端說明文字與 README 更新來源說明
根本原因:
- 原本用 badminton 表的每日分組名單,只有名單存進 DB 的日子才有資料,
當天報名還沒存名單就統計不到,名字寫法也要靠別名表修補
影響:
- 統計天數 121 → 126 天,含當天報名尚未分組的場次
- 名字寫法在 attendance 表已統一,別名合併(卡森→景涵 等)仍生效
修法:
- server.mjs 新增 loadAttendanceDays(),buildAttendanceStats() 改吃 [{ time, names }]
- .env.example / docker-compose.yml / README 補上 DB_ATTENDANCE_TABLE
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -323,11 +323,11 @@ function AttendanceModal({ onClose }: AttendanceModalProps) {
|
||||
<h3>出席率統計</h3>
|
||||
|
||||
{loading ? (
|
||||
<p className="history-replay-empty">正在讀取每天的分組名單...</p>
|
||||
<p className="history-replay-empty">正在讀取每天的報名名單...</p>
|
||||
) : error ? (
|
||||
<p className="history-replay-empty">{error}</p>
|
||||
) : !stats || stats.totalDays === 0 ? (
|
||||
<p className="history-replay-empty">資料庫還沒有可統計的分組名單。</p>
|
||||
<p className="history-replay-empty">資料庫還沒有可統計的報名名單。</p>
|
||||
) : (
|
||||
<>
|
||||
<div className="history-modal-summary">
|
||||
@@ -506,7 +506,7 @@ function AttendanceModal({ onClose }: AttendanceModalProps) {
|
||||
) : null}
|
||||
|
||||
<p className="attendance-note">
|
||||
出席資料取自每天的分組名單(`badminton` 表),不是比賽紀錄,所以有到場但沒被記分的場次也算出席。
|
||||
出席資料取自 TG 報名名單(`attendance` 表),不是比賽紀錄,所以有報名到場但沒被記分的場次也算出席。
|
||||
{mergedPlayers.length > 0
|
||||
? ` 同一個人不同寫法會自動合併,例如 ${mergedPlayers[0].mergedForms.join('、')}。`
|
||||
: ''}
|
||||
|
||||
Reference in New Issue
Block a user