def sua_thong_tin_hoc_sinh(hoc_sinh): form = Form_Update_Hs() id_hoc_sinh = hoc_sinh Hoc_Sinh = Profile_hoc_sinh(id_hoc_sinh) value = db_session.query(HocSinh).filter(HocSinh.IDHocSinh == id_hoc_sinh).first() if form.validate_on_submit(): HocVaTen = request.form['Th_Ho_ten'] GioiTinh = request.form['Th_Gioi_tinh'] NgaySinh = request.form['Th_Ngay_sinh'] DiaChi = request.form['Th_Dia_chi'] Email = request.form['Th_Email'] SoDienThoai = request.form['Th_Sdt'] SoDienThoaiPhuHuynh = request.form['Th_Sdt_PH'] value = db_session.query(HocSinh).filter(HocSinh.IDHocSinh == id_hoc_sinh).first() value.HoVaTen = HocVaTen value.GioiTinh = GioiTinh value.NgaySinh = datetime.strptime(NgaySinh,'%Y-%m-%d' ).date() value.Email = Email value.DiaChi = DiaChi value.SoDienThoai = SoDienThoai value.SoDienThoaiPhuHuynh = SoDienThoaiPhuHuynh db_session.flush() db_session.commit() return redirect('/thong-tin-hoc-sinh/'+id_hoc_sinh) form.Th_Gioi_tinh.default = Hoc_Sinh['GioiTinh'] form.process() return render_template('hoc_sinh/hs_sua_thong_tin.html',HocSinh=Hoc_Sinh,form=form )
def Sua_lich_thi(id_nien_khoa, id_khoi, id_mon): lich_thi = db_session.query(LichThi).filter( LichThi.ID_Nien_khoa == id_nien_khoa, LichThi.ID_Khoi == id_khoi, LichThi.ID_Mon == id_mon).first() lich = {} lich['Mon'] = ten_mon(id_mon) lich['NienKhoa'] = ten_nien_khoa(id_nien_khoa) lich['Khoi'] = ten_nien_khoa(id_khoi) lich['NgayThi'] = lich_thi.ThoiGianThi lich['ThoiGian'] = lich_thi.ThoiGianLamBai form = Form_Sua_Lich_Thi() if form.validate_on_submit(): NgayThi = request.form['Th_NgayThi'] ThoiGian = request.form['Th_ThoiGian'] lich_thi.ID_Nien_khoa = id_nien_khoa lich_thi.ID_Khoi = id_khoi lich_thi.ID_Mon = id_mon lich_thi.ThoiGianThi = NgayThi lich_thi.ThoiGianLamBai = ThoiGian db_session.flush() db_session.commit() return redirect(url_for('xem_lich_thi', message='Cập nhật thành công')) return render_template('lich_thi/sua_lich_thi.html', lich=lich, form=form)
def doc_bang_diem_theo_id_bang_diem(id_bang_diem): bd = {} try: bang_diem = db_session.query(BangDiem).filter( BangDiem.IDBangDiem == id_bang_diem).one() mon = db_session.query(Mon).filter(Mon.IDMon == bang_diem.IDMon).one() bd['mon'] = mon.TenMon list_bang_diem = [ bang_diem._15Phut_1_, bang_diem._15Phut_2_, bang_diem._15Phut_3_, bang_diem._45Phut_1_, bang_diem._45Phut_1_, bang_diem._45Phut_2_, bang_diem._45Phut_2_, bang_diem._45Phut_3_, bang_diem._45Phut_3_, bang_diem.HocKy, bang_diem.HocKy, bang_diem.HocKy ] bang_diem.TrungBinhMon = tinh_trung_binh(list_bang_diem) bd['15_phut'] = { 1: bang_diem._15Phut_1_, 2: bang_diem._15Phut_2_, 3: bang_diem._15Phut_3_ } bd['45_phut'] = { 1: bang_diem._45Phut_1_, 2: bang_diem._45Phut_2_, 3: bang_diem._45Phut_3_ } bd['thi'] = bang_diem.HocKy bd['trung_binh'] = bang_diem.TrungBinhMon db_session.flush() db_session.commit() except: db_session.rollback() return None return bd
def them_lop_hoc(): if session.get("giaovien") == None: return redirect(url_for('index')) giaovien = session['giaovien'] giao_vien = Profile_Giao_Vien(giaovien) form = Form_Create_Class() ds_nien_khoa = doc_danh_sach_nien_khoa_select() ds_khoi = doc_danh_sach_khoi_select() ds_gv = doc_danh_sach_gv_select() form.Th_Nien_khoa.choices = ds_nien_khoa form.Th_Khoi.choices = ds_khoi form.Th_GV_Chu_nhiem.choices = ds_gv error = '' if form.validate_on_submit(): TenLop = request.form['Th_Lop'] DiaDiem = request.form['Th_Dia_diem'] TongSoHS = 0 NamNienKhoa = int(request.form['Th_Nien_khoa']) GV_CN = int(request.form['Th_GV_Chu_nhiem']) IDKhoi = int(request.form['Th_Khoi']) lop_hoc = Lop(TenLop=TenLop, DiaDiem=DiaDiem, TongSoHS=TongSoHS, NamNienKhoa=NamNienKhoa, GV_CN=GV_CN, IDKhoi=IDKhoi) try: db_session.add(lop_hoc) db_session.commit() return redirect(url_for('danh_sach_lop', message='Thêm lớp thành công')) except: db_session.rollback() error = 'Lớp học đã tồn tại' pass return render_template('lop_hoc/l_them_lop.html', form=form, error=error)
def cap_nhat_hoc_sinh(): if session.get("hocsinh") == None: return redirect(url_for('index')) error = '' message = '' hocsinh = session['hocsinh'] form = Form_Update_Hs() id_hoc_sinh = hocsinh Hoc_Sinh = Profile_hoc_sinh(id_hoc_sinh) value = db_session.query(HocSinh).filter(HocSinh.IDHocSinh == id_hoc_sinh).first() if form.validate_on_submit(): HocVaTen = request.form['Th_Ho_ten'] GioiTinh = request.form['Th_Gioi_tinh'] NgaySinh = request.form['Th_Ngay_sinh'] DiaChi = request.form['Th_Dia_chi'] Email = request.form['Th_Email'] SoDienThoai = request.form['Th_Sdt'] SoDienThoaiPhuHuynh = request.form['Th_Sdt_PH'] value = db_session.query(HocSinh).filter(HocSinh.IDHocSinh == id_hoc_sinh).first() value.HoVaTen = HocVaTen value.GioiTinh = GioiTinh value.NgaySinh = datetime.strptime(NgaySinh,'%Y-%m-%d' ).date() value.Email = Email value.DiaChi = DiaChi value.SoDienThoai = SoDienThoai value.SoDienThoaiPhuHuynh = SoDienThoaiPhuHuynh db_session.flush() db_session.commit() return redirect(url_for('hoc_sinh', message='Cập nhật thành công')) form.Th_Gioi_tinh.default = Hoc_Sinh['GioiTinh'] form.process() return render_template('hoc_sinh/cap_nhat_thong_tin.html',HocSinh=Hoc_Sinh , form = form)
def them_thoi_khoa_bieu(thoi_khoa_bieu): try: db_session.add(thoi_khoa_bieu) db_session.commit() except: db_session.rollback() return False return True
def sua_hoat_dong(ID_hoat_dong): if session.get("giaovien") == None: return redirect(url_for('index')) giaovien = session['giaovien'] form = Form_Them_Hoat_Dong() ds_nienkhoa = doc_danh_sach_nien_khoa_select() form = Form_Sua_Hoat_Dong() form.Th_Nien_khoa.choices = ds_nienkhoa hd = db_session.query(Hoat_Dong).filter( Hoat_Dong.IDHoatDong == ID_hoat_dong).first() hd.ThoiHanDangKy = datetime.strptime(hd.ThoiHanDangKy, '%d-%m-%Y').date() form.Th_Nien_khoa.default = ds_nienkhoa[0][0] if hd.GiaoVienTao != giaovien: message = "Bạn không phải giáo viên tạo hoạt động ^_^" return redirect(url_for('hoat_dong_gv', message_hoatdong=message)) else: if form.validate_on_submit(): ds_doi_tuong = request.form.getlist('Th_Khoi') khoi10 = 0 khoi11 = 0 khoi12 = 0 if '1' in ds_doi_tuong: khoi10 = 1 if '2' in ds_doi_tuong: khoi11 = 1 if '3' in ds_doi_tuong: khoi12 = 1 nien_khoa = request.form['Th_Nien_khoa'] tieu_de = request.form['Th_TieuDe'] noi_dung = request.form['Th_NoiDung'] thoi_han = request.form['Th_HanDangKy'] thoi_han = datetime.strptime(thoi_han, '%Y-%m-%d') thoi_han = thoi_han.strftime("%d-%m-%Y") value = db_session.query(Hoat_Dong).filter( Hoat_Dong.IDHoatDong == ID_hoat_dong).first() value.TieuDe = tieu_de value.NoiDung = noi_dung value.ThoiHanDangKy = thoi_han value.Khoi_10 = khoi10 value.Khoi_11 = khoi11 value.Khoi_12 = khoi12 value.NienKhoa = nien_khoa db_session.flush() db_session.commit() message = "Đã Sửa hoạt động " + hd.TieuDe return redirect(url_for('hoat_dong_gv', message_hoatdong=message)) return render_template('hoat_dong/gv_sua_hoat_dong.html', form=form, hoat_dong=hd)
def cap_nhat_si_so(lop, sl_them_giam=1): try: lop = db_session.query(Lop).filter(Lop.IDLop == lop).one() lop.TongSoHS += sl_them_giam db_session.flush() db_session.commit() except: db_session.rollback() return False return True
def Them_Lich_Thi(lich_thi): _lich_ = db_session.query(LichThi).filter( LichThi.ID_Khoi == lich_thi.ID_Khoi, LichThi.ID_Nien_khoa == lich_thi.ID_Nien_khoa, LichThi.ID_Mon == lich_thi.ID_Mon).first() if _lich_ != None: return "Đã Tồn Môn Này Lịch Thi " else: db_session.add(lich_thi) db_session.commit() return "Đã Thêm Thành Công"
def gv_doi_mat_khau(TaiKhoan, matkhau_cu, matkhau_moi): ThongBao = "" gv1 = db_session.query(GiaoVien).filter( GiaoVien.TenDangNhap == TaiKhoan).first() if matkhau_cu != gv1.MatKhau: ThongBao = "Mật khẩu không khớp" else: gv1.MatKhau = matkhau_moi db_session.flush() db_session.commit() ThongBao = "Đổi Mật Khẩu Thành Công" return ThongBao
def hs_doi_mat_khau(TaiKhoan, MatkhauCu, MatkhauMoi): ThongBao = "" hs = db_session.query(HocSinh).filter( HocSinh.IDHocSinh == TaiKhoan).first() if MatkhauCu != hs.MatKhau: ThongBao = "Mật khẩu không khớp" else: hs.MatKhau = MatkhauMoi db_session.flush() db_session.commit() ThongBao = "Đổi Mật Khẩu Thành Công" return ThongBao
def them_hoat_dong(): if session.get("giaovien") == None: return redirect(url_for('index')) giaovien = session['giaovien'] ds_nienkhoa = doc_danh_sach_nien_khoa_select() form = Form_Them_Hoat_Dong() form.Th_Nien_khoa.choices = ds_nienkhoa if form.validate_on_submit(): ds_doi_tuong = request.form.getlist('Th_Khoi') khoi10 = 0 khoi11 = 0 khoi12 = 0 if '1' in ds_doi_tuong: khoi10 = 1 if '2' in ds_doi_tuong: khoi11 = 1 if '3' in ds_doi_tuong: khoi12 = 1 nien_khoa = request.form['Th_Nien_khoa'] tieu_de = request.form['Th_TieuDe'] noi_dung = request.form['Th_NoiDung'] thoi_han = request.form['Th_HanDangKy'] thoi_han = datetime.strptime(thoi_han, '%Y-%m-%d') thoi_han = thoi_han.strftime("%d-%m-%Y") IDHoat_Dong = db_session.query(func.max(Hoat_Dong.IDHoatDong)).first() ID = IDHoat_Dong[0] + 1 hd = Hoat_Dong(IDHoatDong=ID, GiaoVienTao=giaovien, TieuDe=tieu_de, NoiDung=noi_dung, ThoiHanDangKy=thoi_han, Khoi_10=khoi10, Khoi_11=khoi11, Khoi_12=khoi12, NienKhoa=nien_khoa, SoNguoiDaThamGia=0) db_session.add(hd) db_session.commit() message = "Đã thêm hoạt động " + hd.TieuDe return redirect(url_for('hoat_dong_gv', message_hoatdong=message)) return render_template('hoat_dong/gv_them_hoat_dong.html', form=form)
def edit_giao_vien(): if session.get("giaovien") == None: return redirect(url_for('index')) error = '' giaovien = session['giaovien'] giao_vien = Profile_Giao_Vien(giaovien) form = Form_Update_Gv() if form.validate_on_submit(): HoVaTen = request.form['Th_Ho_ten'] GioiTinh = request.form['Th_Gioi_tinh'] NgaySinh = request.form['Th_Ngay_sinh'] DiaChi = request.form['Th_Dia_chi'] Email = request.form['Th_Email'] SoDienThoai = request.form['Th_Sdt'] TrinhDo = request.form['Th_Trinh_do'] ChuyenMon = request.form['Th_Chuyen_mon'] gv = { "HoVaTen": HoVaTen, "GioiTinh": GioiTinh, "NgaySinh": NgaySinh, "Email": Email, "DiaChi": DiaChi, "SoDienThoai": SoDienThoai, "TrinhDo": TrinhDo, "ChuyenMon": ChuyenMon } value = db_session.query(GiaoVien).filter( GiaoVien.TenDangNhap == giaovien).first() value.HoVaTen = gv['HoVaTen'] value.GioiTinh = gv['GioiTinh'] value.NgaySinh = datetime.strptime(gv['NgaySinh'], '%Y-%m-%d').date() value.Email = gv['Email'] value.DiaChi = gv['DiaChi'] value.SoDienThoai = gv['SoDienThoai'] value.TrinhDo = gv['TrinhDo'] value.ChuyenMon = gv['ChuyenMon'] db_session.flush() db_session.commit() return redirect(url_for('giao_vien', message='Cập nhật thành công')) form.Th_Gioi_tinh.default = giao_vien['GioiTinh'] form.process() return render_template('giao_vien/gv_edit_profile.html', giao_vien=giao_vien, form=form, error=error)
def huy_tham_gia_hoat_dong_hs(id_hoat_dong): if session.get("hocsinh") == None: return redirect(url_for('index')) hocsinh = session['hocsinh'] hd = db_session.query(Hoat_Dong).filter( Hoat_Dong.IDHoatDong == id_hoat_dong).first() hd.SoNguoiDaThamGia -= 1 db_session.delete( db_session.query(Tham_Gia_Hoat_Dong).filter( Tham_Gia_Hoat_Dong.IDHoatDong == id_hoat_dong, Tham_Gia_Hoat_Dong.IDHocSinh == hocsinh).one()) db_session.flush() db_session.commit() message = 'Đã Hủy Đăng Ký ' + hd.TieuDe return redirect(url_for('hoat_dong_hs', message_hoatdong=message))
def xoa_hoat_dong(id_hoat_dong): if session.get("giaovien") == None: return redirect(url_for('index')) giaovien = session['giaovien'] if db_session.query(Tham_Gia_Hoat_Dong).filter( Tham_Gia_Hoat_Dong.IDHoatDong == id_hoat_dong).count() > 0: db_session.query(Tham_Gia_Hoat_Dong).filter( Tham_Gia_Hoat_Dong.IDHoatDong == id_hoat_dong).delete() db_session.commit() hd = db_session.query(Hoat_Dong).filter( Hoat_Dong.IDHoatDong == id_hoat_dong).one() db_session.delete( db_session.query(Hoat_Dong).filter( Hoat_Dong.IDHoatDong == id_hoat_dong).one()) db_session.commit() message = "Đã xóa hoạt động " + hd.TieuDe return redirect(url_for('hoat_dong_gv', message_hoatdong=message))
def doc_bang_diem_theo_hoc_sinh(id_hoc_sinh): # select field tupple choice ds_bang_diem = [] try: ds_bangdiem = db_session.query(BangDiem).filter( BangDiem.IDHocSinh == id_hoc_sinh).all() for bang_diem in ds_bangdiem: bd = {} mon = db_session.query(Mon).filter( Mon.IDMon == bang_diem.IDMon).one() bd['mon'] = mon.TenMon bd['id_bd'] = bang_diem.IDBangDiem list_bang_diem = [ bang_diem._15Phut_1_, bang_diem._15Phut_2_, bang_diem._15Phut_3_, bang_diem._45Phut_1_, bang_diem._45Phut_1_, bang_diem._45Phut_2_, bang_diem._45Phut_2_, bang_diem._45Phut_3_, bang_diem._45Phut_3_, bang_diem.HocKy, bang_diem.HocKy, bang_diem.HocKy ] bang_diem.TrungBinhMon = tinh_trung_binh(list_bang_diem) bd['15_phut'] = { 1: bang_diem._15Phut_1_, 2: bang_diem._15Phut_2_, 3: bang_diem._15Phut_3_ } bd['45_phut'] = { 1: bang_diem._45Phut_1_, 2: bang_diem._45Phut_2_, 3: bang_diem._45Phut_3_ } bd['thi'] = bang_diem.HocKy bd['trung_binh'] = bang_diem.TrungBinhMon print(bd) try: db_session.flush() db_session.commit() ds_bang_diem.append(bd) except: db_session.rollback() pass except: db_session.rollback() pass return ds_bang_diem
def them_hoc_sinh(lop): if session.get("giaovien") == None: return redirect(url_for('index')) giaovien = session['giaovien'] giao_vien = Profile_Giao_Vien(giaovien) form = Form_Update_Hs() error = '' message = '' if form.validate_on_submit(): HoVaTen = request.form['Th_Ho_ten'] GioiTinh = request.form['Th_Gioi_tinh'] DiaChi = request.form['Th_Dia_chi'] Email = request.form['Th_Email'] NgaySinh = request.form['Th_Ngay_sinh'] SoDienThoai = request.form['Th_Sdt'] SoDienThoaiPhuHuynh = request.form['Th_Sdt_PH'] MatKhau = request.form['Th_Mat_khau'] if MatKhau == '': MatKhau = '1234' IDLop = int(lop) nien_khoa = lay_nien_khoa_theo_lop(lop) IDNienKhoa = int(nien_khoa.ID) hoc_sinh = HocSinh(HoVaTen=HoVaTen, GioiTinh=GioiTinh, DiaChi=DiaChi, Email=Email, NgaySinh=NgaySinh, SoDienThoai=SoDienThoai, SoDienThoaiPhuHuynh=SoDienThoaiPhuHuynh, IDLop=IDLop, IDNienKhoa=IDNienKhoa, MatKhau=MatKhau) try: db_session.add(hoc_sinh) db_session.commit() if cap_nhat_si_so(lop): message += 'Đã cập nhật sỉ số lớp; ' else: error += 'Không thể cập nhật sỉ số lớp' if tao_bang_diem_cho_hoc_sinh(hoc_sinh.IDHocSinh): message += 'Đã thêm học sinh ' + HoVaTen + ';' return redirect(url_for('danh_sach_hoc_sinh', lop=lop, message=message)) else: db_session.rollback() error += 'Không thể tạo bảng điểm' pass except: error = 'Học sinh đã tồn tại' db_session.rollback() pass print(error) return render_template('hoc_sinh/hs_them_hoc_sinh.html', form=form, error=error)
def cap_nhat_quan_li(): if session.get("quanli") == None: return redirect(url_for('login')) error = '' quanli = session['quanli'] quan_li = Profile_Quan_li(quanli) form = Form_Update_Ql() if form.validate_on_submit(): HoVaTen = request.form['Th_Ho_ten'] GioiTinh = request.form['Th_Gioi_tinh'] NgaySinh = request.form['Th_Ngay_sinh'] DiaChi = request.form['Th_Dia_chi'] Email = request.form['Th_Email'] SoDienThoai = request.form['Th_Sdt'] ql = { "HoVaTen": HoVaTen, "GioiTinh": GioiTinh, "NgaySinh": NgaySinh, "Email": Email, "DiaChi": DiaChi, "SoDienThoai": SoDienThoai } value = db_session.query(QuanLi).filter( QuanLi.TenDangNhap == quanli).first() value.HoVaTen = ql['HoVaTen'] value.GioiTinh = ql['GioiTinh'] value.NgaySinh = datetime.strptime(ql['NgaySinh'], '%Y-%m-%d').date() value.Email = ql['Email'] value.DiaChi = ql['DiaChi'] value.SoDienThoai = ql['SoDienThoai'] db_session.flush() db_session.commit() return redirect(url_for('trang_quan_li', message='Cập nhật thành công')) form.Th_Gioi_tinh.default = quan_li['GioiTinh'] form.process() return render_template('quan_ly/cap_nhat_thong_tin.html', quan_li=quan_li, form=form, error=error)
def tao_bang_diem_cho_hoc_sinh(id_hoc_sinh): for mon in doc_danh_sach_mon_hoc(): IDHocSinh = id_hoc_sinh IDMon = mon[0] HocKy = None _15Phut_1_ = None _15Phut_2_ = None _15Phut_3_ = None _45Phut_1_ = None _45Phut_2_ = None _45Phut_3_ = None TrungBinhMon = None GhiChu = None bang_diem = BangDiem(IDHocSinh=IDHocSinh, IDMon=IDMon) try: db_session.add(bang_diem) db_session.commit() except: db_session.rollback() return False return True
def diem_trung_binh_theo_hoc_sinh(id_hoc_sinh): ds_bang_diem = {} try: ds_bangdiem = db_session.query(BangDiem).filter( BangDiem.IDHocSinh == id_hoc_sinh).all() for bang_diem in ds_bangdiem: bd = {} mon = db_session.query(Mon).filter( Mon.IDMon == bang_diem.IDMon).one() bd['id_bd'] = bang_diem.IDBangDiem bd['trung_binh'] = bang_diem.TrungBinhMon try: db_session.flush() db_session.commit() ds_bang_diem[mon.TenMon] = bd except: db_session.rollback() pass except: db_session.rollback() pass return ds_bang_diem
def cap_nhat_bang_diem(id_bang_diem, loai_diem, diem_so): # try: bang_diem = db_session.query(BangDiem).filter( BangDiem.IDBangDiem == id_bang_diem).one() print(bang_diem.__dict__) if BangDiem._15Phut_1_.name == loai_diem: bang_diem._15Phut_1_ = diem_so elif BangDiem._15Phut_2_.name == loai_diem: bang_diem._15Phut_2_ = diem_so elif BangDiem._15Phut_3_.name == loai_diem: bang_diem._15Phut_3_ = diem_so elif BangDiem._45Phut_1_.name == loai_diem: bang_diem._45Phut_1_ = diem_so elif BangDiem._45Phut_2_.name == loai_diem: bang_diem._45Phut_2_ = diem_so elif BangDiem._45Phut_3_.name == loai_diem: bang_diem._45Phut_3_ = diem_so elif BangDiem.HocKy.name == loai_diem: bang_diem.HocKy = diem_so db_session.flush() db_session.commit() # except: # db_session.rollback() pass
def tham_gia_hoat_dong_hs(id_hoat_dong): if session.get("hocsinh") == None: return redirect(url_for('index')) hocsinh = session['hocsinh'] ngay_dang_ky = datetime.now() hd = db_session.query(Hoat_Dong).filter( Hoat_Dong.IDHoatDong == id_hoat_dong).first() HanDangKy = datetime.strptime(hd.ThoiHanDangKy, '%d-%m-%Y') if ngay_dang_ky > HanDangKy: return redirect( url_for('hoat_dong_hs', message_hoatdong='Đã Quá Hạn Đăng Ký')) else: ngay_dang_ky = datetime.now().date() ngay_dang_ky = ngay_dang_ky.strftime("%d-%m-%Y") thamgia = Tham_Gia_Hoat_Dong(IDHoatDong=id_hoat_dong, IDHocSinh=hocsinh, NgayDangKy=ngay_dang_ky) hd.SoNguoiDaThamGia += 1 db_session.add(thamgia) db_session.flush() db_session.commit() message = 'Đã Đăng Ký ' + hd.TieuDe return redirect(url_for('hoat_dong_hs', message_hoatdong=message))