def add_project(): try: request_data = request.data request_data = json.loads(request_data) except: return jsonify({ "message": "Không thể lấy dữ liệu!", "code": 412 }), 412 all_project_inserts = list() if isinstance(request_data, dict): request_data = [request_data] for data in request_data: all_project_inserts.append({ "Ten": data.get("ten"), "MoTa": data.get("mota"), "TrangThai": "Chưa được chọn", "NguoiTao": data.get("nguoitao"), "Loai": data.get("loai", ""), "GhiChu": data.get("ghichu", ""), "Cap": data.get("cap", ""), "ChiDinh": data.get("chi_dinh"), "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time(), }) if all_project_inserts: try: ProjectModel.insert_many_project(all_project_inserts) except Exception as e: print(e) return jsonify({ "message": "Có lỗi phát sinh trong server!", "code": 500 }), 500 return jsonify({"message": "Tạo đề tài thành công!", "code": 200}), 200
def add_teacher(): try: request_data = request.data request_data = json.loads(request_data) except: return jsonify({"message": "Không thể lấy dữ liệu!", "code": 412}), 412 all_teacher_inserts = list() if isinstance(request_data, dict): request_data = [request_data] for data in request_data: all_teacher_inserts.append({ "Ten": data.get("ten"), "SoLuong": 0, "MaGV": data.get("magv"), "SDT": data.get("sdt"), "Email": data.get("email"), "ChucVu": data.get("chucvu") if data.get("chucvu") else "GiaoVien", "TrangThai": "", "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() }) if all_teacher_inserts: try: TeacherModel.insert_many_teacher(all_teacher_inserts) except Exception as e: return jsonify({"message": str(e), "code": 500}), 500 return jsonify({"message": "Thêm giáo viên thành công!", "code": 200}), 200
def report_student(student_id): try: files = request.files.getlist('files') images = request.files.getlist('images') form_data = request.form week = form_data.get("week") note = form_data.get("note") except: return jsonify({ "message": "Không thể lấy dữ liệu!", "code": 412 }), 412 all_path_images = list() all_path_files = list() for image in images: folder_save = APP_IMAGE_DIR + "/" + str(student_id) filename = image.filename path_image_save = get_path_file(folder_save, filename, is_path_df=False) image.save(path_image_save) all_path_images.append(path_image_save) for file in files: folder_save = APP_FILE_DIR + "/" + str(student_id) filename = file.filename path_image_save = get_path_file(folder_save, filename, is_path_df=False) file.save(path_image_save) all_path_files.append(path_image_save) data_insert_report = { "Tuan": week, "GhiChu": note, "IDSinhVien": student_id, "HinhAnh": "<image_upload>".join(all_path_images), "File": "<file_upload>".join(all_path_files), "Url": "", "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } report_weekly_id = ReportWeeklyModel.insert_one(data_insert_report) if report_weekly_id: return jsonify({"message": "Upload thành công!", "code": 200}), 200 return jsonify({ "message": "Upload không thành công!", "code": 413 }), 413
def update_information_report(week): try: request_data = request.data request_data = json.loads(request_data) except: return jsonify({ "message": "Không thể lấy dữ liệu!", "code": 412 }), 412 ma_sv = request_data.get("ma_sv") ghi_chu = request_data.get("ghi_chu") diem = request_data.get("diem") if not diem or not ma_sv: return jsonify({ "message": "Không tìm thấy mã sinh viên để cập nhật điểm!", "code": 412 }), 412 id_sv = StudentModel.get_student_by_ma(ma_sv) if not id_sv: return jsonify({ "message": "Không tìm thấy mã sinh viên để cập nhật điểm!", "code": 412 }), 412 if week not in ["8", "16"]: ReportWeeklyModel.update_point_report(week=week, id_sv=id_sv, diem=diem, ghi_chu=ghi_chu) else: lan = 1 if week == "16": lan = 2 reports = ReportModel.get_report_id_sinh_vien(id_sinh_vien=id_sv) if not reports: data_insert_report = { "IDSinhVien": id_sv, "IDGVHD": "", "DiemLan1": "", "DiemLan2": "", "DieuKienBaoVe": "", "GhiChu": ghi_chu, "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } report_id = ReportModel.insert_one(data_insert_report) ReportModel.update_point_report(id_sinh_vien=id_sv, point=diem, lan=lan, ghi_chu=ghi_chu) return jsonify({ "message": "Cập nhật thông tin thành công!", "code": 200 }), 200
def download_file(week_id, file_id): try: report = ReportWeeklyModel.get_report_by_id(week_id, file_id) except Exception as e: print(e) return jsonify({ "message": "Có lỗi phát sinh trong server!", "code": 500 }), 500 file_path = report.File if not file_path: return jsonify({ "message": "Không tồn tại file báo cáo!", "code": 413 }), 413 try: folder = str(get_current_time()) path_file_zip = APP_ZIP_DIR + "/" + folder path_file_save = get_path_file(path_file_zip, file_name=folder + ".zip", is_path_df=False) with ZipFile(path_file_save, "w") as zip_new: for file in file_path.split("<file_upload>"): zip_new.write(file, basename(file)) return send_file(path_file_save, as_attachment=True) except FileNotFoundError: return jsonify({ "message": "Tải file báo cáo không thành công!", "code": 413 }), 413
def send_contact_bean(): try: request_data = request.data request_data = json.loads(request_data) except: return jsonify({ "message": "Không thể lấy dữ liệu!", "code": 412 }), 412 ma_sv = request_data.get("masv") noi_dung = request_data.get("noidung") tra_ma_sv = StudentModel.get_student_by_ma(masv=ma_sv) if not tra_ma_sv: return jsonify({ "message": "Mã sinh viên không hợp lệ! Vui lòng kiểm tra lại", "code": 412 }), 412 NguoiNhanGhiChu = TeacherModel.get_id_dean() comment_id = CommentModel.insert_comment( NguoiTaoGhiChu=tra_ma_sv, NguoiNhanGhiChu=NguoiNhanGhiChu, LoaiGhiChu="sinh_vien_chua_nhan_do_an", NoiDung=noi_dung, ThoiGianTao=get_current_time()) return jsonify({ "message": "Tạo ghi chú thành công!", "code": 200 }), 200
def save_student(students): all_insert_data = list() for data in students: all_insert_data.append({ "Ten": data.get("ten"), "MaSV": data.get("masv"), "SDT": data.get("sdt", ""), "Email": data.get("email", ""), "IDLop": data.get("idlop", ""), "MaGVHD": "", "IDDeTai": "", "TrangThai": "TaoMoi", "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() }) if all_insert_data: StudentModel.insert_many_student(all_insert_data)
def register(): try: request_data = request.data request_data = json.loads(request_data) except: return jsonify({ "message": "Không thể lấy dữ liệu!", "code": 412 }), 412 username = request_data.get("username") password = request_data.get("password") permission = request_data.get("permission", "sinhvien") password_md5 = generate_md5_by_str(password) check_user_name = UserModel.find_username(username=username) if check_user_name: return jsonify({ "message": f"Tài khoản {username} đã tồn tại!", "code": 413 }), 413 lienket = None if permission == "sinhvien": student_data = { "Ten": request_data.get("ten"), "MaSV": request_data.get("masv"), "SDT": request_data.get("sdt", ""), "Email": request_data.get("email", ""), "IDLop": request_data.get("idlop", ""), "MaGVHD": "", "IDDeTai": "", "TrangThai": "TaoMoi", "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } lienket = StudentModel.insert_one_student(data=student_data) if permission == "giaovien": teacher_data = { "Ten": request_data.get("ten"), "SoLuong": 0, "MaGV": request_data.get("magv"), "SDT": request_data.get("sdt"), "Email": request_data.get("email"), "ChucVu": request_data.get("chucvu") if request_data.get("chucvu") else "GiaoVien", "TrangThai": "", "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } lienket = TeacherModel.insert_many_teacher(teacher_data) user_data = { "TaiKhoan": username, "MatKhau": str(password_md5), "Quyen": permission, "LienKet": lienket, "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } user_id = UserModel.insert_user(data_insert=user_data) if not user_id: return jsonify({ "message": "Tạo mới thông tin tài khoản thành công!", "code": 413 }), 413 data = {"username": username, "permission": permission} return jsonify({ "message": "Tạo mới tài khoản thành công!", "data": data, "code": 200 }), 200
def create_data(n=10): all_data = list() for i in range(1, n): email = f"sinhvien{i}[email protected]" password = generate_md5_by_str(default_pass) student_data = { "Ten": "Nguyen Van A " + str(i), "MaSV": "Ma101152" + str(i), "SDT": "03133312323" + str(i), "Email": email, "IDLop": 1, "MaGVHD": "", "IDDeTai": "", "Cap": random.randrange(1, 3, 1), "TrangThai": "TaoMoi", "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } student_id = StudentModel.insert_one_student(student_data) user_data = { "TaiKhoan": email, "MatKhau": str(password), "Quyen": "sinhvien", "LienKet": student_id, "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } user_id = UserModel.insert_user(data_insert=user_data) for i in range(1, n): email = f"giaovien{i}[email protected]" password = generate_md5_by_str(default_pass) teacher_data = { "Ten": "Le Van A" + str(i), "SoLuong": 0, "MaGV": f"Gv12983192{i}", "SDT": f"19831321312{i}", "Email": email, "ChucVu": "GiaoVien", "TrangThai": "", "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } teacher_id = TeacherModel.insert_one_teacher(teacher_data) user_data = { "TaiKhoan": email, "MatKhau": str(password), "Quyen": "giaovien", "LienKet": teacher_id, "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } user_id = UserModel.insert_user(data_insert=user_data) email = f"*****@*****.**" password = generate_md5_by_str(default_pass) teacher_data = { "Ten": "Truong khoa", "SoLuong": 0, "MaGV": "Tk1231231", "SDT": "192831892313", "Email": email, "ChucVu": "TruongKhoa", "TrangThai": "", "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } teacher_id = TeacherModel.insert_one_teacher(teacher_data) user_data = { "TaiKhoan": email, "MatKhau": str(password), "Quyen": "truongkhoa", "LienKet": teacher_id, "ThoiGianTao": get_current_time(), "ThoiGianCapNhat": get_current_time() } user_id = UserModel.insert_user(data_insert=user_data)