Odoo-Tutorial/cenhomes_student/models/models_hoc_tap.py
2025-03-04 16:53:07 +07:00

208 lines
8.0 KiB
Python

# from xml import etree
from lxml import etree
from .models_constants import QuanLyHocTap, QuanLyThiB1
from odoo import models, fields, api
class CenhomesQuanLyHocTap(models.Model):
_name = "cenhomes.quan_ly_hoc_tap"
_description = "Quản Lý Học Tập"
hoc_vien_id = fields.Many2one(
comodel_name="cenhomes.hoc_vien",
string="Học viên",
ondelete="cascade",
)
mshv = fields.Char(
string="Mã Số Học Viên",
related="hoc_vien_id.mshv",
store=True,
readonly=True,
)
ngay_ban_giao = fields.Date(string="Ngày Bàn Giao Học Viên")
ngay_nhap_hoc = fields.Date(string="Ngày Nhập Học")
khoa = fields.Char(string="Khóa")
ngay_kiem_tra_dau_vao = fields.Date(string="Ngày Kiểm Tra Đầu Vào")
ket_qua_dau_vao = fields.Char(string="Kết Quả Kiểm Tra Đầu Vào")
lop_a1 = fields.Char(string="Lớp A1")
start_date_a1 = fields.Date(string="Start Date A1")
lop_a2 = fields.Char(string="Lớp A2")
start_date_a2 = fields.Date(string="Start Date A2")
lop_b1 = fields.Char(string="Lớp B1")
start_date_b1 = fields.Date(string="Start Date B1")
lop_on_b1 = fields.Char(string="Lớp Ôn B1")
start_date_on_b1 = fields.Date(string="Start Date Ôn B1")
lop_on_duy_tri_b1 = fields.Char(string="Lớp Ôn Duy Trì B1")
start_date_on_duy_tri_b1 = fields.Date(string="Start Date Ôn Duy Trì B1")
lop_phu_dao = fields.Char(string="Lớp Phụ Đạo (Nếu Có)")
start_date_phu_dao = fields.Date(string="Start Date Phụ Đạo (Nếu Có)")
trang_thai_hoc_tap = fields.Selection(
selection=QuanLyHocTap._trang_thai_hoc_tap_list,
string="Trạng Thái Học Tập",
)
trang_thai_doi_ngoai = fields.Selection(
selection=QuanLyHocTap._trang_thai_doi_ngoai_list,
string="Trạng Thái Đối Ngoại",
)
trang_thai_thu_tuc = fields.Char(string="Trạng Thái Thủ Tục")
trang_thai_chuyen_tt = fields.Selection(
selection=QuanLyHocTap._trang_thai_chuyen_trung_tam_list,
string="Chuyển Trung Tâm",
)
nguyen_vong_1 = fields.Char(string="Nguyện Vọng 1")
nguyen_vong_2 = fields.Char(string="Nguyện Vọng 2")
class KiemTraBaiCu(models.Model):
_name = "cenhomes.kiem_tra_bai_cu"
_description = "Kiểm Tra Bài Cũ"
hoc_vien_id = fields.Many2one(
comodel_name="cenhomes.hoc_vien",
string="Học viên",
ondelete="cascade",
)
mshv = fields.Char(
string="Mã Số Học Viên",
related="hoc_vien_id.mshv",
store=True,
readonly=True,
)
thoi_khoa_bieu_id = fields.Many2one(
comodel_name="cenhomes.thoi_khoa_bieu",
string="Thời Khóa Biểu",
ondelete="cascade",
)
diem_bai_tap_ve_nha = fields.Float(string="Điểm Bài Tập Về Nhà")
diem_kiem_tra_mieng = fields.Float(string="Điểm Kiểm Tra Miệng", default=None)
is_khong_cham = fields.Boolean(string="Không Chấm", default=False)
@api.onchange("is_khong_cham")
def _onchange_is_khong_cham(self):
"""Nếu chọn không chấm, thì đặt điểm kiểm tra miệng là None"""
if self.is_khong_cham:
self.diem_kiem_tra_mieng = False
class CenhomesBaiThi(models.Model):
_name = "cenhomes.bai_thi"
_description = "Bài thi"
name = fields.Char(string="Tên", required=True)
giao_vien_coi_thi_id = fields.Char(string="Giáo viên coi thi")
giao_vien_cham_thi_id = fields.Char(string="Giáo viên chấm thi")
ngay_thi = fields.Date(string="Ngày thi")
loai_thi = fields.Selection(
string="Loại thi",
selection=QuanLyHocTap._loai_bai_thi_list,
required=True,
)
loai_giao_trinh = fields.Char(string="Loại giáo trình")
noi_dung_bai_kiem_tra = fields.Text(string="Nội dung bài kiểm tra")
thoi_luong_lam_bai = fields.Integer(string="Thời lượng làm bài (phút)")
ma_de_thi = fields.Char(string="Mã đề thi")
def write(self, vals):
return super().write(vals)
class CenhomesKetQuaThi(models.Model):
_name = "cenhomes.ket_qua_thi"
_description = "Kết quả thi"
hoc_vien_id = fields.Many2one(
comodel_name="cenhomes.hoc_vien",
string="Học viên",
ondelete="cascade",
)
mshv = fields.Char(
string="Mã Số Học Viên",
related="hoc_vien_id.mshv",
store=True,
readonly=True,
)
bai_thi_id = fields.Many2one(
comodel_name="cenhomes.bai_thi",
string="Bài thi",
ondelete="cascade",
)
thi_nghe = fields.Char(string="Thi nghe")
thi_noi = fields.Char(string="Thi nói")
thi_doc = fields.Char(string="Thi đọc")
thi_viet = fields.Char(string="Thi viết")
def write(self, vals):
return super().write(vals)
class CenhomesQuanLyThiB1(models.Model):
_name = "cenhomes.quan_ly_thi_b1"
_description = "Quản Lý Thi B1"
hoc_vien_id = fields.Many2one(
comodel_name="cenhomes.hoc_vien",
string="Học viên",
ondelete="cascade",
required=True,
)
mshv = fields.Char(
string="Mã Số Học Viên",
related="hoc_vien_id.mshv",
store=True,
readonly=True,
)
giao_vu_id = fields.Char(
string="Giáo vụ",
)
don_vi_to_chuc = fields.Char(string="Đơn Vị Tổ Chức")
loai_chung_chi = fields.Char(string="Loại Chứng Chỉ")
dia_chi_to_chuc_thi = fields.Char(string="Địa Chỉ Tổ Chức Thi")
ngay_dang_ky = fields.Date(string="Ngày Đăng Ký")
ngay_thi_du_kien = fields.Date(string="Ngày Thi Dự Kiến")
ket_qua_goethe_osd_nghe = fields.Float(string="Kết Quả Thi Goethe/OSD Nghe")
ket_qua_goethe_osd_viet = fields.Float(string="Kết Quả Thi Goethe/OSD Viết")
ket_qua_goethe_osd_doc = fields.Float(string="Kết Quả Thi Goethe/OSD Đọc")
ket_qua_goethe_osd_noi = fields.Float(string="Kết Quả Thi Goethe/OSD Nói")
ket_qua_telc_nghe_doc_viet_ngu_phap = fields.Float(
string="Kết Quả Thi TELC Nghe - Đọc - Viết - Ngữ Pháp"
)
ket_qua_telc_noi = fields.Float(string="Kết Quả Thi TELC Nói")
diem_tong_telc = fields.Float(string="Điểm Tổng TELC")
ket_qua_ecl_nghe = fields.Float(string="Kết Quả Thi ECL Nghe")
ket_qua_ecl_viet = fields.Float(string="Kết Quả Thi ECL Viết")
ket_qua_ecl_doc = fields.Float(string="Kết Quả Thi ECL Đọc")
ket_qua_ecl_noi = fields.Float(string="Kết Quả Thi ECL Nói")
diem_tong_ecl = fields.Float(string="Điểm Tổng ECL")
ket_qua_goethe_osd = fields.Selection(
selection=QuanLyThiB1._ket_qua_goethe_osd_list,
string="Kết Quả Thi Goethe/OSD",
)
ket_qua_telc = fields.Selection(
selection=QuanLyThiB1._ket_qua_telc_list,
string="Kết Quả Thi TELC",
)
ket_qua_ecl = fields.Selection(
selection=QuanLyThiB1._ket_qua_ecl_list,
string="Kết Quả Thi ECL",
)
ngay_lay_bang_du_kien = fields.Date(string="Ngày Lấy Bằng Dự Kiến")
class QuyChuanDaoTao(models.Model):
_name = "cenhomes.quy_chuan_dao_tao"
_description = "Quy Chuẩn Đào Tạo"
trinh_do = fields.Selection(
selection=QuanLyHocTap._trinh_do_dao_tao_list, string="Trình Độ", required=True
)
yeu_cau_dau_vao = fields.Text(string="Yêu Cầu Đầu Vào")
thoi_gian_dao_tao = fields.Integer(string="Thời Gian Đào Tạo (giờ)")
so_tiet_hoc = fields.Integer(string="Số Tiết Học")
so_tiet_giao_vien_duc = fields.Integer(string="Số Tiết Với Giáo Viên Đức")
so_tiet_luyen_nghe_noi = fields.Integer(string="Số Tiết Luyện Nghe Nói")
so_tiet_luyen_cv_thu = fields.Integer(string="Số Tiết Luyện CV & Thư Động Lực")
so_tiet_luyen_phong_van = fields.Integer(string="Số Tiết Luyện Phỏng Vấn")
so_tiet_tu_hoc = fields.Integer(string="Số Tiết Tự Học")
chuan_dau_ra = fields.Text(string="Chuẩn Đầu Ra")