Skip to content

thefirst632student/intern_demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Intern Demo (Odoo 19)

Đây là module mẫu quản lý thực tập sinh trên Odoo 19. Tài liệu này trình bày quy trình tạo module từ template my_module.zip, cách cài đặt vào Odoo trên Windows, cách kiểm tra chức năng, và cách chạy unit test.

1. Cấu trúc thư mục của module

Trong thư mục intern_demo/, các thành phần chính gồm:

  • __manifest__.py: Khai báo thông tin module và danh sách file dữ liệu (security, data, views, demo).
  • __init__.py: Điểm khởi tạo module (import modelscontrollers).
  • models/: Định nghĩa model (Python).
  • views/: Định nghĩa giao diện và menu (XML).
  • security/: Phân quyền truy cập (ACL).
  • data/: Dữ liệu cấu hình (ví dụ: sequence).
  • demo/: Dữ liệu mẫu (chỉ nạp khi database bật “Demo data”).
  • tests/: Unit test theo cơ chế test của Odoo.
  • controllers/: Mẫu controller (HTTP route). Nếu không sử dụng tính năng web route, phần này không ảnh hưởng đến chức năng quản lý nội bộ.

2. Tạo module từ template my_module.zip

Bước 1: Tải và giải nén template

  1. Tải template my_module.zip theo tài liệu chính thức của Odoo: https://www.odoo.com/documentation/19.0/administration/odoo_sh/first_module.html#scaffolding-the-module
  2. Giải nén. Kết quả sẽ có thư mục my_module/.

Bước 2: Đổi tên module

  1. Đổi tên thư mục my_module/ thành intern_demo/.
  2. Kiểm tra trong intern_demo/ có các thành phần cơ bản: __manifest__.py, __init__.py, models/, views/, security/.

Bước 3: Cập nhật __manifest__.py

Mở intern_demo/__manifest__.py và kiểm tra tối thiểu:

  1. name, summary, version, category.
  2. depends để ['base'] cho module demo đơn giản.
  3. data phải có:
    • security/ir.model.access.csv
    • data/intern_demo_sequence.xml
    • views/intern_views.xml
  4. demo (tùy chọn): demo/demo.xml.

Bước 4: Tạo model trong models/

Module này dùng 3 model kỹ thuật:

  1. intern.demo: Thực tập sinh.
  2. intern.department: Phòng ban.
  3. intern.skill: Kỹ năng.

Các file tương ứng:

  1. intern_demo/models/intern.py: model intern.demo (tự sinh mã bằng sequence, tính số ngày thực tập, ràng buộc ngày kết thúc không được trước ngày bắt đầu).
  2. intern_demo/models/department.py: model intern.department (liên kết danh sách thực tập sinh theo phòng ban).
  3. intern_demo/models/skill.py: model intern.skill.
  4. intern_demo/models/__init__.py: import đủ các file model.

Bước 5: Phân quyền trong security/

Mở intern_demo/security/ir.model.access.csv và đảm bảo có quyền truy cập cho:

  • intern.demo
  • intern.department
  • intern.skill

Bước 6: Tạo sequence sinh mã

Mở intern_demo/data/intern_demo_sequence.xml và kiểm tra khai báo sequence cho code intern.demo (ví dụ prefix INT-, padding 4).

Bước 7: Tạo views, actions và menu trong views/

Mở intern_demo/views/intern_views.xml và kiểm tra có:

  1. Views cho Intern: list, form, search.
  2. Views cho Department: list, form.
  3. Views cho Skill: list, form.
  4. Actions và menu để truy cập nhanh.

Lưu ý: Odoo 19 dùng thẻ <list> cho view danh sách, và action thường dùng view_modelist,form.

Bước 8: Dữ liệu demo (tùy chọn)

File intern_demo/demo/demo.xml chứa dữ liệu mẫu để cài module kèm demo data.

3. Cài đặt module vào Odoo (Windows)

Bước 1: Chép module vào custom_addons

Chép cả thư mục intern_demo vào:

C:\Program Files\Odoo 19.0.20260101\server\custom_addons\intern_demo

Bước 2: Cấu hình addons_path

  1. Mở file cấu hình: C:\Program Files\Odoo 19.0.20260101\server\odoo.conf
  2. Tìm dòng addons_path.
  3. Đảm bảo có cả addons chuẩn và thư mục custom addons. Ví dụ: addons_path = ...\server\odoo\addons, ...\server\custom_addons

Bước 3: Khởi động lại dịch vụ Odoo

Thực hiện 1 trong 2 cách sau.

Cách A:

  1. Mở Services: services.msc.
  2. Tìm service odoo-server-19.0.
  3. Chọn Restart.

Cách B (Command Prompt, Run as Administrator):

net stop odoo
net start odoo

Bước 4: Cài module trong giao diện Odoo

  1. Mở Odoo: http://localhost:8069.
  2. Đăng nhập bằng tài khoản có quyền cài Apps.
  3. Vào Apps.
  4. Bấm “Update Apps List”.
  5. Tìm “Intern Demo”.
  6. Bấm “Install”.

4. Kiểm tra chức năng sau khi cài

  1. Vào menu “Intern Demo”.
  2. Mở “Departments” và tạo một phòng ban.
  3. Mở “Skills” và tạo một kỹ năng.
  4. Mở “Interns” và tạo một thực tập sinh.
  5. Kiểm tra mã tự sinh và số ngày thực tập được tính tự động.

5. Chạy unit test (Odoo)

Ví dụ lệnh (tùy theo đường dẫn odoo-bin của môi trường cài đặt):

./odoo-bin -d <db_name> -i intern_demo --test-enable --stop-after-init

6. Gỡ module khỏi database (tùy chọn, khi cần làm sạch)

Phần này chỉ dùng khi cần xóa sạch dấu vết module trong database để cài lại từ đầu (ví dụ: đổi tên kỹ thuật, đổi model, hoặc đã thử cài nhiều lần).

Điều kiện bắt buộc trước khi gỡ

  1. Trong Odoo, module phải ở trạng thái “Uninstalled”.
  2. Nên dừng Odoo trước khi thao tác database:
net stop odoo

Bước 1: Mở pgAdmin 4 và kết nối database

  1. Mở pgAdmin 4.
  2. Kết nối tới PostgreSQL.
  3. Chọn đúng database của Odoo.
  4. Mở “Query Tool”.

Bước 2: Kiểm tra module còn trong database không

SELECT id, name, state, latest_version
FROM ir_module_module
WHERE name = 'intern_demo';

Nếu state = 'uninstalled' thì có thể tiếp tục bước xóa.

Bước 3: Xóa record module

DELETE FROM ir_module_module
WHERE name = 'intern_demo';

Bước 4: Dọn metadata theo module

DELETE FROM ir_model_data
WHERE module = 'intern_demo';

(Tùy chọn) Bước 5: Dọn view

Chỉ dùng khi module đã “Uninstalled”. Bước này giúp dọn các view không còn được tham chiếu bởi ir_model_data.

DELETE FROM ir_ui_view
WHERE id NOT IN (
    SELECT res_id
    FROM ir_model_data
    WHERE model = 'ir.ui.view'
);

Bước 6: Khởi động lại Odoo và cập nhật danh sách Apps

  1. Khởi động lại Odoo:
net start odoo
  1. Vào Apps → “Update Apps List” → tìm lại module để cài đặt.

Lỗi thường gặp: Module vẫn xuất hiện sau khi đã xóa trong database

Nguyên nhân phổ biến là Odoo vẫn đọc source code module từ một đường dẫn khác trong addons_path.

  1. Mở C:\Program Files\Odoo 19.0.20260101\server\odoo.conf.
  2. Kiểm tra addons_path để xác định chính xác các thư mục Odoo đang quét.

About

Module Odoo mẫu

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages