208 lines
8.0 KiB
Python
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")
|