AI-CLO PTITHCM — V12.6 Cố định và rút ngẫu nhiên

Ngày: 06/09/2026

Mục tiêu

Đơn giản hóa cách thiết kế bài kiểm tra trực tuyến:

Bốn chế độ rút câu

  1. common_fixed — Đề chung cố định: dùng đúng bộ câu đã chốt và hiển thị đầy đủ trong Builder.
  2. student_fixed — Đề riêng theo sinh viên: mỗi sinh viên được rút một bộ riêng ở lần đầu; các lần sau của sinh viên đó dùng lại bộ này. Builder không hiển thị câu cụ thể.
  3. attempt_random — Rút lại mỗi lần làm: mỗi lượt làm rút lại câu theo ma trận. Builder không hiển thị câu cụ thể.
  4. mixed_fixed_random — Cố định và rút ngẫu nhiên: các câu cố định luôn xuất hiện; phần quota còn lại của từng ô ma trận được rút ngẫu nhiên cho mỗi lượt làm.

Dữ liệu

Không tạo bảng hay cột mới.

Các câu cố định được lưu tối giản tại:

exams.question_blueprint.fixed_question_ids

Mỗi câu cố định phải thuộc phạm vi Chương/Mục/CLO đang chọn và tiêu thụ đúng một chỉ tiêu của ô ma trận tương ứng.

Builder

Backend

Migration:

supabase/migrations/assessment-v12.6-mixed-fixed-random.sql

Migration mở rộng exams.question_mode và cập nhật populate_attempt_questions để:

Triển khai an toàn

V12.6 đang phát triển trên branch:

work-assessment-v12-6-mixed-random-20260906

Không merge frontend V12.6 vào main trước khi migration Supabase đã được chạy và kiểm thử đủ bốn chế độ.

main tiếp tục giữ V12.5.1 ổn định trong thời gian kiểm thử.