วิชา / หัวข้อประเมิน
"วิชา" ในที่นี้คือ หัวข้อประเมินย่อย ภายในวิชาประจำของห้อง — เช่นห้อง "สังคมศึกษา 5" อาจมีหัวข้อ "ใบงานบทที่ 1" (20 คะแนน), "สอบกลางภาค" (30 คะแนน), "งานกลุ่ม" (20 คะแนน) ฯลฯ บทนี้พาเข้าใจวิธีตั้งหัวข้อ จัดลำดับ และจัดหมวดเพื่อใช้ Export เป็น ปพ.5 ตอนสิ้นเทอม
หน้ารายการหัวข้อ
รวมหัวข้อทั้งหมดในห้อง + รวมคะแนนเต็ม
หน้าตา Empty State
ห้องที่เพิ่งสร้างจะยังไม่มีหัวข้อ — ระบบขึ้น empty state "🗂️ ยังไม่มีหัวข้อประเมิน" พร้อมปุ่ม เพิ่มรายการ
หน้าตาเมื่อมีหัวข้อแล้ว
Panel ของแต่ละแถวประกอบด้วย:
- Drag Handle — ใช้ลากเรียงลำดับใหม่
- ชื่อหัวข้อ — เช่น "ใบงานบทที่ 1"
- คะแนนเต็ม — ตัวเลข (รองรับทศนิยม)
- Category Badge — ป้ายหมวด ปพ.5 (ถ้าตั้งไว้)
- ปุ่ม แก้ + ลบ
ส่วนหัวของ panel แสดง "รวมคะแนนเต็ม [xxx] คะแนน" — sum ของ maxScore ทุกหัวข้อ ใช้ตรวจว่าครบ 100 แล้วหรือยัง
เพิ่มหัวข้อประเมินใหม่
ฟอร์มง่ายๆ 3 ช่อง: ชื่อ, คะแนนเต็ม, หมวด
คลิก 'เพิ่มรายการ' → เปิด SubjectFormDialog
ปุ่ม เพิ่มรายการ สีมินต์อยู่มุมขวาบน panel เปิด dialog "เพิ่มรายการประเมิน" (ribbon mint)
กรอก 3 ช่อง
- ชื่อหัวข้อ — เช่น "ใบงานบทที่ 2 — ระบบนิเวศ" (จำเป็น)
- คะแนนเต็ม — ตัวเลข เช่น 20 หรือ 12.5 (รองรับทศนิยม จำเป็น)
- หมวด ปพ.5 — เลือก 1 ใน 5 ตัวเลือก (ไม่จำเป็น):
- ทั่วไป (เก็บ) — default ถ้าไม่เลือก
- เก็บก่อนกลางภาค (
pre_mid) - กลางภาค (
midterm) - เก็บหลังกลางภาค (
post_mid) - ปลายภาค (
final)
กดบันทึก → แถวใหม่ขึ้นท้ายรายการ
หลังบันทึก Toast เขียว "เพิ่มรายการสำเร็จ" และหัวข้อใหม่ขึ้นที่ ท้ายสุด ของรายการ (ใช้ drag-drop ย้ายตำแหน่งทีหลังได้)
แก้ไข / ลบหัวข้อ
ลบแล้วคะแนนเดิมจะกลายเป็น orphaned — ยังอยู่ใน DB เพื่อ audit trail
แก้ไขชื่อ / คะแนนเต็ม / หมวด
คลิกไอคอน ที่แถว — เปิด dialog โหมดแก้ไข (ribbon ลาเวนเดอร์) แก้ทั้ง 3 ช่องได้
Toast เขียว "บันทึกการแก้ไขแล้ว" และค่าใหม่ขึ้นในรายการ
ลบหัวข้อ
คลิกไอคอน → confirm "ลบ [name] ออก?" พร้อมข้อความว่าคะแนนของหัวข้อนี้ทั้งหมดจะกลายเป็น orphaned (ยังเก็บใน DB ไว้เพื่อตรวจสอบย้อนหลัง แต่ไม่ปรากฏในตารางคะแนน/สรุป)
Toast "ลบรายการแล้ว"
จัดลำดับ — Drag & Drop / Reorder Dialog
ลำดับนี้คือลำดับคอลัมน์ในตารางบันทึกคะแนน + ลำดับใน Export
Desktop — ลากด้วย Drag Handle
จับ ที่ซ้ายของแถว ลากขึ้น/ลงเพื่อย้าย — ระบบ update optimistically (UI เปลี่ยนทันที) แล้วส่ง JSON array ลำดับใหม่ทั้งชุด ไป backend
ถ้า save ล้มเหลว Toast แดง "จัดเรียงไม่สำเร็จ" และ UI revert กลับเป็นลำดับเดิม
Mobile — เปิด ReorderDialog
บนหน้าจอ ≤768px การลากยากเพราะนิ้วต้องค้างไว้ — กดที่ปุ่ม drag จะเปิด ReorderDialog ที่ให้พิมพ์ตำแหน่งใหม่เป็นตัวเลข (เช่น "3" = ย้ายไปอันดับ 3)
กด ย้าย ระบบรับค่าและ submit แบบเดียวกับ drag desktop
ผลของหมวด ปพ.5 ในหน้า Export
หมวดที่ตั้งไว้ที่นี่จะปรากฏใน CategoryMappingPanel ของหน้า Export
เมื่อไปที่หน้า "ส่งออก Excel" (เปิดได้โดยคลิกการ์ดสีพีช ส่งออก Excel ใน Classroom Hub ของห้อง — เฟส 4) จะเห็น CategoryMappingPanel สรุปจำนวนหัวข้อในแต่ละหมวด:
ระบบใช้ค่าหมวดเพื่อจัดกลุ่มคอลัมน์ใน Excel ตาม layout ปพ.5 มาตรฐาน — ครูสามารถ override การจัดกลุ่มต่อ export ได้ แต่ default จะอ่านจากที่ตั้งไว้ในหน้า subjects
สรุป — Pattern ที่แนะนำสำหรับห้องใหม่
- สร้างห้องเรียน (ดู คู่มือห้องเรียน)
- เพิ่มนักเรียน (ดู คู่มือนักเรียน)
- มาที่หน้า subjects นี้ — วางแผนล่วงหน้าว่าจะมีกี่หัวข้อรวม + แบ่งคะแนนยังไง
- เพิ่มทีละหัวข้อ → ตั้งหมวดให้ถูกตั้งแต่ตอนเพิ่ม
- เช็คยอด "รวมคะแนนเต็ม" ตรงหัว panel — ควรเป็น 100
- ค่อยไปกรอกคะแนนที่ บันทึกคะแนน