Appearance
Nhật ký lớp (Batch Logs)
Nhật ký lớp là công cụ để giảng viên ghi nhận tình hình từng lớp một cách có cấu trúc: biên bản buổi học, ghi chú về học viên đặc biệt, quan sát tiến độ, kế hoạch điều chỉnh... Nhật ký là công cụ nội bộ của đội ngũ giảng dạy: học viên không đọc được nội dung nhật ký. Học viên được @nhắc tên chỉ biết là mình được nhắc, xem Học viên được nhắc tên thấy gì.
Khi nào dùng?
- Sau mỗi buổi học — ghi tóm tắt nội dung đã dạy, ai vắng, ai đặc biệt nổi bật / cần chú ý.
- Khi gặp tình huống đặc biệt — học viên báo lý do nghỉ dài, xin hoãn deadline, có vấn đề học tập.
- Bàn giao ca — trainer khác sẽ thay bạn dạy buổi sau, cần đọc nhật ký để nắm tình hình.
- Phối hợp đồng giảng viên — nhiều trainer cùng phụ trách 1 lớp; nhật ký là "kênh chung" có dấu vết.
Lý do dùng nhật ký thay vì email/Slack
- Có context lớp: nhật ký gắn với batch, không lẫn với các lớp khác.
- Có @mention: nhắc trực tiếp học viên / đồng nghiệp trong nội dung.
- Có lịch sử: tìm kiếm theo nội dung, lọc theo người ghi, theo ngày — không bị trôi như chat.
- Bảo mật: học viên không đọc được nội dung nhật ký, kể cả khi được @nhắc tên, nên bạn có thể ghi thẳng nhận xét chuyên môn.
Vào nhật ký
- Mở trang chi tiết lớp.
- Click tab Nhật ký (icon bút).
URL state: ?tab=logs — bookmark được. Trong tab, bạn có thể sâu hơn với:
?log={id}— chọn nhật ký cụ thể.?q={text}— bộ lọc tìm kiếm.?author={user_id}— lọc theo người ghi.
Chia sẻ link với đồng nghiệp sẽ giữ đúng ngữ cảnh đang xem.
Bố cục Master-Detail
Tab Nhật ký dùng layout 2 cột:
Cột trái: Danh sách
- Mỗi mục hiện: ngày + giờ, tên người ghi, đoạn snippet đầu nội dung, số lượt @mention, badge "Còn sửa được" (nếu trong 24h đầu).
- Bộ lọc trên cùng: ô tìm kiếm + dropdown người ghi + chọn ngày bắt đầu / kết thúc + nút Xoá bộ lọc.
- Bấm một mục để hiển thị nội dung đầy đủ ở cột phải.
- Auto-select: khi mở tab, log gần nhất được tự chọn.
Cột phải: Chi tiết
- Header: tên người ghi + thời gian + (nếu là tác giả & trong 24h) nút Sửa / Xoá.
- Nội dung: văn bản định dạng đầy đủ (đậm, nghiêng, danh sách, liên kết, trích dẫn...).
- Mention trong nội dung hiển thị dạng
@Tên ngườivới màu khác biệt. Đây chỉ là nhãn, không bấm được. - Chân nhật ký: dòng Lượt nhắc tên liệt kê mọi người được nhắc trong nhật ký đó.
Muốn xem thông tin một học viên được nhắc tên, mở tab Học viên của lớp rồi bấm tên học viên: hộp xem nhanh có phần Nhật ký lớp có nhắc đến học viên. Xem Quản lý học viên trong lớp.
Nếu không có mục nào được chọn (vd: bộ lọc không có kết quả), cột phải hiện "Chọn một nhật ký — Click vào một mục bên trái để xem nội dung đầy đủ ở đây."
Tạo nhật ký mới
- Click nút Thêm nhật ký ở header tab.
- Modal mở ra với rich text editor (Tiptap):
- Toolbar: B / I / U / S, H1-H3, danh sách, blockquote, link.
- @mention: gõ
@rồi nhập tên — popup gợi ý 10 thành viên lớp đầu tiên khớp (cả học viên + trainer). Chọn để chèn.
- Viết nội dung.
- Click Lưu.
@mention hiệu quả
- Mention học viên khi muốn gắn ghi chú với họ ("@Nguyễn Văn A đến muộn vì kẹt xe"): 5 nhật ký gần nhất nhắc tên học viên hiện trong hộp xem nhanh của học viên đó ở tab Học viên. Học viên đó thấy mình được nhắc nhưng không thấy nội dung, xem bên dưới.
- Mention đồng nghiệp khi cần họ chú ý ("@Trần Thị B xem giúp bạn này có nên áp catch-up không").
- Mỗi mention được lưu riêng, nên hệ thống biết nhật ký nào liên quan đến học viên nào (đó là nguồn của phần nhật ký trong hộp xem nhanh).
Mention không hợp lệ
Hệ thống chỉ chấp nhận mention các thành viên của lớp (học viên đã được attach + trainer đã được phân). Nếu bạn @ một user không thuộc lớp:
- Mention bị tự động bóc khỏi HTML khi lưu (giữ lại text content).
- Không có bản ghi mention trong DB.
- Tránh lỗi "leak" thông tin lớp ra ngoài thành viên.
Sửa & xóa nhật ký
Cửa sổ 24 giờ
Bạn chỉ sửa/xóa được nhật ký do chính mình ghi, và trong vòng 24 giờ kể từ khi tạo:
- Trong 24h đầu: mục có badge "Còn sửa được" + nút Sửa / Xoá ở header detail.
- Sau 24h: nhật ký trở thành read-only với mọi người không phải
super_admin.
Lý do thiết kế
- Audit trail — nhật ký là tài liệu giảng dạy, không nên rewrite quá khứ.
- Tránh lạm dụng — không thể "phi tang" nhận xét cũ khi có tranh chấp.
- Cho phép sửa lỗi đánh máy — 24h đủ để chỉnh sửa lỗi nhỏ ngay sau khi viết.
Sửa
- Click Sửa → modal mở với editor đã pre-fill nội dung cũ.
- Chỉnh, click Lưu.
- Mention được parse lại — thêm/bớt mention khớp với HTML mới.
Xóa
- Click Xoá → modal xác nhận: "Bạn chắc chắn muốn xoá nhật ký này? Thao tác này không thể hoàn tác."
- Confirm → nhật ký bị soft-delete (vẫn còn trong DB nhưng ẩn khỏi UI).
Không có nút Restore
UI hiện tại không có chỗ restore log đã xoá. Soft-delete chỉ là cơ chế audit; nếu thật sự cần khôi phục, super_admin / Tenant Admin can thiệp DB.
Ai xem được nhật ký?
| Vai trò | Đọc | Tạo | Sửa | Xoá |
|---|---|---|---|---|
| Trainer của lớp | Có, tất cả nhật ký của lớp | Có | Có, chỉ log của mình, trong 24h | Có, chỉ log của mình, trong 24h |
| Trainer khác (không phụ trách lớp) | Không | Không | Không | Không |
| Tenant Admin | Có | Không | Không | Không |
| Super Admin | Có | Có | Có (bỏ qua giới hạn 24h) | Có (bỏ qua giới hạn 24h) |
| Học viên | Không đọc được nội dung (chỉ biết mình được nhắc tên) | Không | Không | Không |
Học viên được nhắc tên thấy gì
Học viên không có trang nào để mở nhật ký lớp. Khi bạn @nhắc tên một học viên, trong 14 ngày sau đó trang lớp của học viên ấy trong Learnspace (/learnspace/batches/{id}) hiện ở khung Cập nhật mới một dòng Tên người ghi đã nhắc bạn trong nhật ký lớp. Dòng này không kèm nội dung nhật ký.
Giảng viên khác của lớp được @nhắc tên thì thấy thêm khoảng 90 ký tự đầu của nhật ký.
Khung chỉ hiện một dòng nhắc tên, là nhật ký gần nhất có nhắc tên học viên đó.
Lời lẽ vẫn cần chuyên nghiệp
Học viên không đọc được nhật ký, nhưng quản trị viên có thể xem khi có tranh chấp. Giữ lời lẽ đứng vững trong mọi tình huống.
Tìm kiếm & lọc
Ô tìm kiếm
- Tìm theo nội dung text của nhật ký (bỏ qua HTML markup — search trên
content_textplain text). - Bộ lọc thực hiện ngay khi gõ (debounce nhẹ).
- URL được cập nhật
?q=...để share-able.
Lọc theo người ghi
Dropdown người ghi liệt kê các trainer đã từng ghi nhật ký cho lớp. Click một người → chỉ hiển thị nhật ký của họ.
Lọc theo thời gian
2 ô Từ ngày + Đến ngày — lọc theo logged_at. Bỏ trống = không giới hạn ngày.
Xoá bộ lọc
Click Xoá bộ lọc để reset tất cả bộ lọc về mặc định.
Tích hợp với mention
Bảng batch_log_mentions lưu mỗi cặp (log_id, user_id):
- Hộp xem nhanh học viên ở tab Học viên dùng dữ liệu này để hiện phần Nhật ký lớp có nhắc đến học viên (5 nhật ký gần nhất). Xem Quản lý học viên trong lớp.
- Khung Cập nhật mới trên trang lớp trong Learnspace đặt dòng nhắc tên lên đầu, nên người được nhắc (học viên hoặc giảng viên) thấy ngay, xem Học viên được nhắc tên thấy gì.
- Nhắc tên không gửi thông báo vào chuông hay email.
Câu hỏi thường gặp
Tôi đã ghi nhật ký quan trọng nhưng đã quá 24h — sửa được không? Không, trừ khi bạn có quyền super_admin. Cách thay thế: ghi nhật ký mới nói rõ "Cập nhật cho log ngày X: ...". Lịch sử nhật ký thường không ngại có nhiều entry liên quan.
Tôi xóa nhầm một nhật ký — phục hồi được không? UI không có nút Restore. Liên hệ super_admin / Tenant Admin can thiệp DB (vẫn còn trong bảng do soft-delete).
Học viên báo họ thấy nhật ký? Học viên không đọc được nội dung nhật ký; nếu nhật ký @nhắc tên họ thì họ chỉ thấy dòng báo được nhắc ở khung Cập nhật mới trên trang lớp (xem Học viên được nhắc tên thấy gì). Nếu họ thấy được nội dung, có thể họ đăng nhập nhầm tài khoản giảng viên/quản trị: báo quản trị viên để rà soát bảo mật.
Tôi có thể đính kèm file vào nhật ký? Hiện tại chưa hỗ trợ upload file. Workaround: upload file lên Drive / S3 → paste link trong editor (link sẽ render thành hyperlink).
Mention nhiều người cùng lúc được không? Có. Cứ gõ @ mỗi lần để chèn mỗi mention. Số mention không bị giới hạn.
Mention một học viên đã rời khỏi lớp? Khi bạn type @ và search, popup chỉ hiện thành viên hiện tại của lớp. Học viên đã detach không xuất hiện. Nếu bạn paste sẵn HTML chứa mention user đã rời, mention bị bóc khi lưu.
Tôi muốn có notification khi đồng nghiệp mention tôi? Lộ trình sắp tới — bảng batch_log_mentions đã sẵn sàng làm nguồn dữ liệu, chỉ cần module Notifications kích hoạt. Hiện tại bạn cần chủ động vào tab Nhật ký xem.
Tổ chức của tôi không thấy tab Nhật ký trên Trainer Panel? Tài khoản bạn chưa được Tenant Admin gán quyền truy cập nhật ký lớp. Yêu cầu Tenant Admin cấu hình lại tài khoản bạn ở mức Trainer (mặc định có sẵn nhật ký).