Bạn cài một module mới, mở app lên — và thấy một cái bảng trắng trơn, không một dòng dữ liệu, không biết bấm gì. Trải nghiệm lần đầu tệ đó rất dễ chữa, và Odoo có sẵn cơ chế: no-content help — một đoạn HTML hiện giữa màn hình khi danh sách rỗng, kèm cái mặt cười quen thuộc, hướng người dùng tạo bản ghi đầu tiên. Bài này thêm nó cho app thẻ thành viên.
Khai bằng field help trên action
no-content help là field help (kiểu HTML) trên bản ghi action. Nó chấp nhận HTML thật, nên bạn viết được tiêu đề, đoạn văn, in đậm:

Hình 1: <field name="help" type="html"> với ba đoạn. Đoạn đầu mang class o_view_nocontent_smiling_face — chính class này vẽ hình minh hoạ mặt cười phía trên. Các đoạn sau là hướng dẫn tự do. Nội dung là HTML nên <b>, danh sách... đều dùng được.
Nó chỉ hiện khi màn hình trống
Điểm mấu chốt: help chỉ hiện khi danh sách rỗng — không có bản ghi nào khớp bộ lọc hiện tại. Có dữ liệu là nó biến mất, nhường chỗ cho bảng. Để chụp nó mà không xoá thẻ thật, tôi chỉ cần lọc theo một cái tên không tồn tại:

Hình 2: Lọc bằng từ khoá vô nghĩa "ZZZ-khong-ton-tai" → danh sách rỗng → no-content help hiện lên: mặt cười, tiêu đề "Chưa có thẻ thành viên nào", và hai dòng hướng dẫn. Bốn thẻ thật vẫn còn nguyên — chỉ là bộ lọc đang không khớp cái nào. Bỏ lọc là bảng trở lại.
Đây là chỗ vàng để "đón" người dùng: thay vì bảng trắng khó hiểu, họ đọc được ngay bấm gì và để làm gì.
Viết help cho ra giá trị
Một help tốt trả lời ba câu người dùng đang thắc mắc trước màn hình trống:
- Đây là gì? — một câu ngắn định danh (tiêu đề với mặt cười).
- Tôi làm gì tiếp? — hành động cụ thể, nhắc đúng tên nút ("Bấm Mới").
- Nó theo dõi/dùng để làm gì? — một dòng cho biết giá trị, để người dùng hiểu vì sao nên tạo.
Tránh help kiểu "Không có dữ liệu" — đó là điều người dùng đã thấy, không giúp gì. Các app chuẩn của Odoo còn nhét cả liên kết tài liệu, ví dụ mẫu vào help.
Vài lưu ý
o_view_nocontent_smiling_facelà class cho mặt cười; còn vài biến thể khác (ví dụ minh hoạ trung tính) tuỳ phong cách — nhưng mặt cười là phổ biến nhất cho "hãy tạo cái đầu tiên".- help hiện trên list, kanban và các view duyệt khác; nó là chuyện của tập rỗng nên không có nghĩa trên form.
- Khai được ở nhiều nơi (action, hoặc trong
<search>), nhưng đặt trên action là gọn và phổ biến nhất — một chỗ, mọi view của action đó dùng chung. - help là HTML tin cậy do bạn viết, không phải dữ liệu người dùng — nên thoải mái dùng thẻ định dạng; chỉ nhớ giữ ngắn gọn.
Ba ý mang về
- no-content help là field
help(HTML) trên action, hiện giữa màn hình khi danh sách rỗng để hướng người dùng tạo bản ghi đầu tiên — chữa cái "bảng trắng khó hiểu". - Class
o_view_nocontent_smiling_facetrên đoạn đầu vẽ mặt cười; phần còn lại là HTML tự do (tiêu đề, hướng dẫn, in đậm tên nút). - Chỉ hiện khi không có bản ghi khớp bộ lọc — có dữ liệu là ẩn; viết help trả lời "đây là gì / làm gì tiếp / để làm gì", đừng chỉ ghi "không có dữ liệu".
Đến đây ta đã đi hết một vòng lớn về view. Bài sau bước sang địa hạt mới — can thiệp vào chính diện mạo của giao diện quản trị: Phần sau về CSS/SCSS tuỳ biến giao diện backend — thêm asset để đổi màu, khoảng cách, kiểu chữ cho khu vực quản trị.