From 9980f8d80a7c41b27a63a4f9c9d62de526af9907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IT=E7=8B=97?= Date: Tue, 21 Jul 2026 12:38:48 +0800 Subject: [PATCH] Fix: strip existing leave suffix before appending new leave to prevent duplication --- backend/main.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/backend/main.py b/backend/main.py index 72123df..a154cec 100644 --- a/backend/main.py +++ b/backend/main.py @@ -181,13 +181,22 @@ def enrich_attendance_with_leave(records, db): r.status_code = "mixed_leave" r.status_text = leave_text elif original_code in ("al", "sl", "cl"): - # Pure leave status: check if multiple leave types → upgrade to mixed + # Pure leave status: replace with aggregated leave text if len(leave_by_type) > 1: r.status_code = "mixed_leave" r.status_text = leave_text else: r.status_text = leave_text + elif original_code not in ("missing", "", "holiday", "al", "sl", "cl"): + # Non-leave attendance status: strip any previously-enriched leave suffix and rebuild + base_text = (r.status_text or "正常").split(" + ")[0] # keep only attendance part + base_text = base_text.split(" (")[0] # strip holiday annotation + if leave_text: + r.status_text = f"{base_text} + {leave_text}" + else: + r.status_text = base_text else: + # original_code is empty or holiday or already handled above base = r.status_text or "正常" r.status_text = f"{base} + {leave_text}"