Đề tài: Xây dựng module quản lý sinh viên
Lab 01 - Đối tượng
Hệ thống gồm có 3 đối tượng: sinh viên, ngành, khoa
Phần 1: Tạo module rỗng
Bước 1: Truy cập vào đường dẫn trang web hệ thống Odoo tại máy tính localhost:8069
Bước 2: Tạo mới một database: Vào manage Databases và tạo mới (Create) 1 database với tên là
qlsinhvien và đặc mật khẩu cho tài khoản admin
Sau khi tạo xong, hệ thống sẽ nạp các module cơ bản cần thiết cho quá trình phát triển hiện thống và sẽ
được tự động đăng nhập vào là user admin
Sau đó User ở thanh menu bên trái. Chọn tài khoản Administrator Chọn thẻ Access Rights Check
vào checkbox Technical Features Save lại để mở toàn bộ chức năng quản lý của tài khoản Admin
Refresh lại trang, ta sẽ thấy giao diện mới như sau:
Bước 3: Tạo 1 thư mục qlsinhvien bên trong thư mục chứa addons của Odoo (thông thường là [Đường
dẫn tới Odoo]\server\openerp\addons) 2 file __init__.py và __openerp__.py để tạo module.
-
Nội dung file __init__.py rỗng vì module hiện tại chưa có đối tượng nào
Nội dung file __openerp__.py thực hiện như trong slide
Bước 3.1: Restart service Odoo trong Windows
Bước 4: Quay lại trang quản lý cập nhật lại danh sách các module
Bước 5: Tìm và cài đặt module (Odoo 8: Chọn Local Modules)
Kết quả
Phần 2: Xây dựng đối tượng
Bước 1: Trong thư mục qlsinhvien tạo 1 thư mục model (nơi sẽ chứa tất cả các đối tượng trong
module)
-
Cập nhật lại file __init__.py
Import model
Bước 2: Tạo file nganh.py trong thư mục model
Đối tượng ngành gồm có các thuộc tính sau:
Tên thuộc tính
ma_nganh
tennganh
khoa_id
soluongmonhoc
Nhãn
Mã ngành
Tên ngành
Khoa trực thuộc
Số lượng môn học
Kiểu dữ liệu
char(50)
char(250)
many2one(Khoa)
integer
Ràng buộc
Bắt buộc
Bắt buộc
Bắt buộc
Giá trị mặc định: soluongmonhoc = 10
Code tham khảo:
*Lưu ý: mỗi đối tượng nên luôn có 1 thuộc tính ‘name’. Vì khi có 1 đối tượng khác tham chiếu tới sẽ
dùng thuộc tính này để hiển thị. Nếu không có ‘name’ sẽ phát sinh các lỗi không mong muốn
Bước 3:
-
Trong thư mục model tạo 1 file __init__.py để khai báo file nganh.py
Import nganh
Rút kết luận về file __init__.py
-
File nganh.py trong thư mục model được khai báo trong / qlsinhvien /model/__init__.py
Thư mục model được khai báo trong /qlsinhvien/__init__.py (Vì bên trong model có các file .py)
Tất cả các dữ liệu vật lý (các file, thư mục) liên quan các tập tin .py đều phải được khai báo trong file
__init__.py
Bước 4: Restart service
Bước 5: Tìm kiếm module qlsinhvien (bước 5 của phần 1) và Upgrade module
Bước 6: Kiểm tra lại kết quả
Cách 1: Database Struture => Models tìm đối tượng x_nganh. Nếu có tồn tại 1 dòng dữ liệu về đối
tượng x_ngành thì đã thành công
Cách 2: Truy cập vào CSDL postgres
Database qlsinhvien Schemas public table tìm đến đối tượng x_nganh
Nếu tồn tại 1 table tên x_nganh thì đã thành công
Bài tập: Tiếp tục xây dựng 2 đối tượng còn lại x_khoa, x_sinhvien với
các thuộc tính sau:
x_khoa
Tên thuộc tính
makhoa
tenkhoa
ngaythanhlap
dsnganh
Nhãn
Mã khoa
Tên khoa
Ngày thành lập
Danh sách ngành
Kiểu dữ liệu
Char(10)
Char(250)
Date
One2Many(Nganh)
Ràng buộc
Bắt buộc
Bắt buộc
Nhãn
Mã sinh viên
Tên sinh viên
Ngày sinh
Mô tả
Địa chỉ
Kiểu dữ liệu
Char(50)
Char(250)
date
boolean
char(250)
Ràng buộc
Bắt buộc
Bắt buộc
x_sinhvien
Tên thuộc tính
mssv
tensv
ngaysinh
gioitinh
diachi
makhoa
trangthai
Mã khoa
Trạng thái
many2one(Khoa)
selection