4.5 KiB
4.5 KiB
Training Record Draft Submit Workflow Report
Summary
เริ่มลงมือปรับ workflow ฝั่ง training-records โดยรอบนี้เน้นให้ปุ่มหลักในฟอร์มสะท้อนสถานะจริงของรายการมากขึ้น และทำให้ action menu ในตารางใช้ข้อความภาษาไทยที่สอดคล้องกับระบบ
Files Changed
src/features/training-records/components/training-record-form.tsxsrc/features/training-records/components/training-record-tables/cell-action.tsx
Requirement Mapping
- Requirement เรื่องปุ่มในหน้า Edit Draft:
ปุ่ม submit หลักแสดง label ตามสถานะจริง เช่น
บันทึกประวัติการอบรมสำหรับ draft และส่งตรวจสอบอีกครั้งสำหรับรายการที่ถูกตีกลับ - Requirement เรื่อง workflow ของรายการตีกลับ: ปุ่ม submit หลักรองรับ label สำหรับการ re-submit โดยไม่เปลี่ยน flow ฝั่ง route handler เดิม
- Requirement เรื่องหน้ารายการ: action menu เปลี่ยนข้อความเป็นไทยเพื่อให้สอดคล้องกับสถานะและการใช้งานในระบบ
Implementation Details
- เพิ่ม helper ในฟอร์มเพื่อคำนวณข้อความปุ่มหลักจาก
approval_status - เพิ่ม helper สำหรับข้อความขณะกำลัง submit เพื่อแยก draft กับ submit ให้ชัดขึ้น
- ซ่อนปุ่ม submit เดิมในฟอร์มไว้ แล้วเรนเดอร์ปุ่ม submit ใหม่ด้วย label ตาม workflow ปัจจุบัน
- ปรับ action menu ในตารางจากข้อความอังกฤษเป็นข้อความไทย
Button Behavior
- Create:
ปุ่มหลักใช้ข้อความ
ส่งตรวจสอบ - Edit Draft:
ปุ่มหลักใช้ข้อความ
บันทึกประวัติการอบรม - Edit Needs Revision:
ปุ่มหลักใช้ข้อความ
ส่งตรวจสอบอีกครั้ง - ทุกสถานะที่ยังแก้ไขได้:
ปุ่ม
บันทึกฉบับร่างยังแสดงตามเดิม
Validation Rules
- รอบนี้ยังคงใช้ validation และ route-handler workflow เดิมของฟีเจอร์
- ยังไม่ได้แยก success/error messaging และ invalid-state messaging ตาม intent แบบเต็มรูปแบบในรอบนี้
Status Workflow
- ฟอร์มและ action ปัจจุบันยังยึด workflow เดิมของระบบ:
draft -> pending -> approved / needs_revision - รายการ
needs_revisionยังถูกมองเป็นสถานะที่ employee กลับมาแก้ไขและส่งใหม่ได้
Testing Result
- ยังไม่ได้รัน
lintหรือbuildในรอบนี้ - ตรวจสอบ diff เชิงโค้ดแล้วว่าปุ่ม submit ใหม่อิง
approval_statusจริง
Impact Analysis
- ไม่มีการเปลี่ยน database schema
- ไม่มีการเปลี่ยน route handler contract
- ไม่มีการเปลี่ยนสิทธิ์การเข้าถึงฝั่ง server
Notes / Limitations
- ไฟล์ฟอร์มมีข้อความไทยที่มีปัญหา encoding ในบางช่วง ทำให้ patch เฉพาะจุดทำได้ยากกว่าปกติ
- รอบถัดไปควรเก็บงานต่อในส่วน validation/error/success messaging ให้แยกตาม
draftกับsubmitแบบครบ flow