Example #1
0
 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
Example #2
0
 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
Example #3
0
    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
Example #5
0
 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
Example #6
0
 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
Example #7
0
 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)
Example #8
0
    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
Example #9
0
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)