239 lines
7.1 KiB
Python
239 lines
7.1 KiB
Python
from odoo import models, fields
|
|
from .models_constants import QuanLyLopHoc
|
|
|
|
|
|
class CenhomesLopHoc(models.Model):
|
|
_name = "cenhomes.lop_hoc"
|
|
_description = "Lớp Học"
|
|
|
|
name = fields.Char(string="Tên", required=True)
|
|
giao_vien_chu_nhiem_id = fields.Many2one(
|
|
ondelete="cascade",
|
|
comodel_name="cenhomes.giao_vien_chu_nhiem",
|
|
string="Giáo viên chủ nhiệm",
|
|
)
|
|
|
|
hoc_vien_ids = fields.Many2many(
|
|
comodel_name="cenhomes.hoc_vien",
|
|
relation="cenhomes_hoc_vien_lop_hoc_rel",
|
|
column1="lop_hoc_id",
|
|
column2="hoc_vien_id",
|
|
string="Học viên",
|
|
)
|
|
trinh_do = fields.Selection(
|
|
string="Trình độ", selection=QuanLyLopHoc._trinh_do_list
|
|
)
|
|
loai_lop = fields.Selection(
|
|
string="Loại lớp", selection=QuanLyLopHoc._loai_lop_list
|
|
)
|
|
thoi_khoa_bieu_ids = fields.One2many(
|
|
comodel_name="cenhomes.thoi_khoa_bieu",
|
|
inverse_name="lop_hoc_id",
|
|
string="Thời khóa biểu",
|
|
)
|
|
kap_hien_tai = fields.Integer(string="KAP học hiện tại")
|
|
midterm_a1_id = fields.Many2one(
|
|
ondelete="cascade",
|
|
comodel_name="cenhomes.bai_thi",
|
|
string="ID thi (giữa kỳ) A1",
|
|
)
|
|
final_a1_id = fields.Many2one(
|
|
ondelete="cascade",
|
|
comodel_name="cenhomes.bai_thi",
|
|
string="ID thi (cuối kỳ) A1",
|
|
)
|
|
midterm_a2_id = fields.Many2one(
|
|
ondelete="cascade",
|
|
comodel_name="cenhomes.bai_thi",
|
|
string="ID thi (giữa kỳ) A2",
|
|
)
|
|
final_a2_id = fields.Many2one(
|
|
ondelete="cascade",
|
|
comodel_name="cenhomes.bai_thi",
|
|
string="ID thi (cuối kỳ) A2",
|
|
)
|
|
midterm_b1_id = fields.Many2one(
|
|
ondelete="cascade",
|
|
comodel_name="cenhomes.bai_thi",
|
|
string="ID thi (giữa kỳ) B1",
|
|
)
|
|
final_b1_id = fields.Many2one(
|
|
ondelete="cascade",
|
|
comodel_name="cenhomes.bai_thi",
|
|
string="ID thi (cuối kỳ) B1",
|
|
)
|
|
trang_thai_lop = fields.Selection(
|
|
string="Trạng thái lớp",
|
|
selection=QuanLyLopHoc._trang_thai_lop_list,
|
|
default="mo",
|
|
)
|
|
|
|
def name_get(self):
|
|
return [(record.id, record.name) for record in self]
|
|
|
|
def write(self, vals):
|
|
return super().write(vals)
|
|
|
|
|
|
class CenhomesLopOn(models.Model):
|
|
_name = "cenhomes.lop_on"
|
|
_description = "Lớp Ôn"
|
|
|
|
name = fields.Char(string="Tên", required=True)
|
|
hoc_vien_ids = fields.Many2many("cenhomes.hoc_vien", string="Học viên(s)")
|
|
giao_vien_chu_nhiem_id = fields.Many2one(
|
|
ondelete="cascade",
|
|
comodel_name="cenhomes.giao_vien_chu_nhiem",
|
|
string="Giáo viên chủ nhiệm",
|
|
)
|
|
loai_chung_chi_thi = fields.Selection(
|
|
string="Loại chứng chỉ thi",
|
|
selection=QuanLyLopHoc._loai_chung_chi_list,
|
|
required=True,
|
|
)
|
|
thoi_khoa_bieu_ids = fields.One2many(
|
|
comodel_name="cenhomes.thoi_khoa_bieu",
|
|
inverse_name="lop_on_id",
|
|
string="Thời khóa biểu",
|
|
)
|
|
loai_lop_on = fields.Selection(
|
|
string="Loại lớp ôn",
|
|
selection=QuanLyLopHoc._loai_lop_on_list,
|
|
required=True,
|
|
)
|
|
bai_thi_tieu_chuan_1_id = fields.Many2one(
|
|
ondelete="cascade",
|
|
comodel_name="cenhomes.bai_thi",
|
|
string="Bài thi tiêu chuẩn 1",
|
|
)
|
|
bai_thi_tieu_chuan_2_id = fields.Many2one(
|
|
ondelete="cascade",
|
|
comodel_name="cenhomes.bai_thi",
|
|
string="Bài thi tiêu chuẩn 2",
|
|
)
|
|
bai_thi_tieu_chuan_3_id = fields.Many2one(
|
|
ondelete="cascade",
|
|
comodel_name="cenhomes.bai_thi",
|
|
string="Bài thi tiêu chuẩn 3",
|
|
)
|
|
bai_thi_tieu_chuan_4_id = fields.Many2one(
|
|
ondelete="cascade",
|
|
comodel_name="cenhomes.bai_thi",
|
|
string="Bài thi tiêu chuẩn 4",
|
|
)
|
|
bai_thi_tieu_du_phong_id = fields.Many2one(
|
|
ondelete="cascade", comodel_name="cenhomes.bai_thi", string="Bài thi dự phòng"
|
|
)
|
|
|
|
def name_get(self):
|
|
return [(record.id, record.name) for record in self]
|
|
|
|
def write(self, vals):
|
|
return super().write(vals)
|
|
|
|
|
|
class CenhomesChuyenLop(models.Model):
|
|
_name = "cenhomes.chuyen_lop"
|
|
_description = "Chuyển Lớp"
|
|
|
|
hoc_vien_id = fields.Many2one(
|
|
"cenhomes.hoc_vien",
|
|
string="Học viên",
|
|
required=True,
|
|
)
|
|
mshv = fields.Char(
|
|
string="Mã Số Học Viên",
|
|
related="hoc_vien_id.mshv",
|
|
store=True,
|
|
readonly=True,
|
|
)
|
|
lop_hien_tai_id = fields.Many2one(
|
|
"cenhomes.lop_hoc",
|
|
string="ID Lớp Hiện Tại",
|
|
required=True,
|
|
)
|
|
lop_xin_chuyen_id = fields.Many2one(
|
|
"cenhomes.lop_hoc",
|
|
string="ID Lớp Xin Chuyển (Cùng Trình Độ)",
|
|
)
|
|
ngay_nhan_don = fields.Date(string="Ngày Nhận Đơn Chuyển Lớp")
|
|
trang_thai = fields.Selection(
|
|
selection=[
|
|
("cho_duyet", "Chờ Duyệt"),
|
|
("da_duyet", "Đã Duyệt"),
|
|
("huy_bo", "Hủy Bỏ"),
|
|
],
|
|
string="Trạng Thái Chuyển Lớp",
|
|
default="cho_duyet",
|
|
)
|
|
ngay_chuyen_lop = fields.Date(string="Ngày Chuyển Lớp")
|
|
ghi_chu = fields.Text(string="Ghi Chú")
|
|
so_lan_chuyen = fields.Integer(string="Số Lần Chuyển", default=0)
|
|
|
|
|
|
class CenhomesThoiKhoaBieu(models.Model):
|
|
_name = "cenhomes.thoi_khoa_bieu"
|
|
_description = "Thời Khóa Biểu"
|
|
|
|
giao_vien_day_tieng_id = fields.Many2one(
|
|
ondelete="cascade",
|
|
comodel_name="cenhomes.giao_vien_day_tieng",
|
|
string="Giáo viên dạy tiếng",
|
|
)
|
|
lop_hoc_id = fields.Many2one(
|
|
comodel_name="cenhomes.lop_hoc",
|
|
string="Lớp học",
|
|
ondelete="cascade",
|
|
)
|
|
lop_on_id = fields.Many2one(
|
|
comodel_name="cenhomes.lop_on",
|
|
string="Lớp học ôn",
|
|
ondelete="cascade",
|
|
)
|
|
phong_hoc = fields.Char(string="Phòng học")
|
|
kap = fields.Char(string="KAP")
|
|
ngay = fields.Date(string="Ngày")
|
|
buoi = fields.Selection(string="Buổi", selection=QuanLyLopHoc._time_of_day)
|
|
|
|
# def write(self, vals):
|
|
# return super().write(vals)
|
|
|
|
# def name_get(self):
|
|
# return [(record.id) for record in self]
|
|
|
|
|
|
class CenhomesDiemDanh(models.Model):
|
|
_name = "cenhomes.diem_danh"
|
|
_description = "Điểm danh"
|
|
|
|
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,
|
|
)
|
|
nguoi_diem_danh_id = fields.Char(
|
|
string="Người điểm danh",
|
|
)
|
|
thoi_khoa_bieu_id = fields.Many2one(
|
|
comodel_name="cenhomes.thoi_khoa_bieu",
|
|
string="Thời khóa biểu",
|
|
required=True,
|
|
ondelete="cascade",
|
|
)
|
|
trang_thai = fields.Selection(
|
|
selection=QuanLyLopHoc._trang_thai_diem_danh,
|
|
string="Trạng thái điểm danh",
|
|
required=True,
|
|
default="co_mat",
|
|
)
|
|
|
|
def write(self, vals):
|
|
return super().write(vals)
|