def to_process_written_code(pageNum, problemIndex): memberId = session[SessionResources().const.MEMBER_ID] memberIdIndex = session[SessionResources().const.MEMBER_ID_INDEX] problemName = remove_space_in_problemName(problemIndex) filePath, tempPath = make_path(PATH, memberIdIndex, memberId, problemName) try: os.mkdir(tempPath) usedLanguageName, usedLanguageVersion, fileName = write_code_in_file( tempPath) fileSize = os.stat(os.path.join(tempPath, fileName)).st_size fileIndex = 1 submissionIndex = get_submission_index(memberIdIndex, problemIndex) delete_submitted_files_data(submissionIndex) insert_submitted_files(submissionIndex, fileIndex, fileName, filePath, fileSize) send_to_celery(memberIdIndex, problemIndex, submissionIndex, usedLanguageName, usedLanguageVersion, fileSize, problemName, filePath, tempPath) Log.info(OtherResources().const.WRITED_CODE_SUBMITTED) except OSError as e: Log.error(str(e)) submit_error(tempPath, pageNum, OtherResources().const.FILE_ERROR) except Exception as e: dao.rollback() Log.error(str(e)) print e submit_error(tempPath, pageNum, OtherResources().const.DB_ERROR) time.sleep(0.4) return page_move(pageNum)
def to_process_written_code(pageNum, problemIndex): memberId = session[SessionResources().const.MEMBER_ID] memberIdIndex = session[SessionResources().const.MEMBER_ID_INDEX] problemName = remove_space_in_problemName(problemIndex) filePath, tempPath = make_path(PATH, memberIdIndex, memberId, problemName) try: os.mkdir(tempPath) usedLanguageName, usedLanguageVersion, fileName = write_code_in_file(tempPath) fileSize = os.stat(os.path.join(tempPath, fileName)).st_size fileIndex = 1 submissionIndex = get_submission_index(memberIdIndex, problemIndex) delete_submitted_files_data(submissionIndex) insert_submitted_files(submissionIndex, fileIndex, fileName, filePath, fileSize) send_to_celery(memberIdIndex, problemIndex, submissionIndex, usedLanguageName, usedLanguageVersion, fileSize, problemName, filePath, tempPath) Log.info(OtherResources().const.WRITED_CODE_SUBMITTED) except OSError as e: Log.error(str(e)) submit_error(tempPath, pageNum, OtherResources().const.FILE_ERROR) except Exception as e: dao.rollback() Log.error(str(e)) print e submit_error(tempPath, pageNum, OtherResources().const.DB_ERROR) time.sleep(0.4) return page_move(pageNum)
def to_process_uploaded_files(problemIndex, pageNum, browserName, browserVersion): memberId = session[SessionResources().const.MEMBER_ID] memberIdIndex = session[SessionResources().const.MEMBER_ID_INDEX] problemName = remove_space_in_problemName(problemIndex) filePath, tempPath = make_path(PATH, memberIdIndex, memberId, problemName) try: os.mkdir(tempPath) uploadFiles = request.files.getlist(OtherResources().const.GET_FILES) usedLanguageName = request.form[OtherResources().const.USED_LANGUAGE_NAME] usedLanguageVersion = request.form[OtherResources().const.USED_LANGUAGE_VERSION] submissionIndex = get_submission_index(memberIdIndex, problemIndex) sumOfSubmittedFileSize = file_save(submissionIndex, uploadFiles, tempPath, filePath) send_to_celery(memberIdIndex, problemIndex, submissionIndex, usedLanguageName, usedLanguageVersion, sumOfSubmittedFileSize, problemName, filePath, tempPath) Log.info(OtherResources().const.FILE_SUBMITTED) except OSError as e: Log.error(str(e)) submit_error(tempPath, pageNum, OtherResources().const.FILE_ERROR, browserName, browserVersion) except Exception as e: dao.rollback() Log.error(str(e)) print e submit_error(tempPath, pageNum, OtherResources().const.DB_ERROR, browserName, browserVersion) time.sleep(0.4) return page_move(pageNum, browserName, browserVersion)
def download_file(): try: # Absolute Path directory = '/mnt/shared/Past/' # File Name StudentId_MemberName.zip filename = session[SessionResources().const.MEMBER_ID] + '_'\ + session[SessionResources().const.MEMBER_NAME] + '.zip' Log.info(session[SessionResources().const.MEMBER_ID] \ + ' download '\ + directory\ + '/' + filename) return send_from_directory(directory=directory, filename=filename) except Exception: pass
def download_file(): try: # Absolute Path directory = '/mnt/shared/Past/' # File Name StudentId_MemberName.zip filename = session[SessionResources().const.MEMBER_ID] + '_'\ + session[SessionResources().const.MEMBER_NAME] + '.zip' Log.info(session[SessionResources().const.MEMBER_ID] \ + ' download '\ + directory\ + '/' + filename) return send_from_directory(directory = directory, filename = filename) except Exception: pass
def download_file(courseId, courseName): try: # Absolute Path directory = '/mnt/shared/PastCourses/' + str(courseId) + '_' + courseName # File Name StudentId_MemberName.zip filename = session[SessionResources().const.MEMBER_ID] + '_'\ + session[SessionResources().const.MEMBER_NAME] + '.zip' Log.info(session[SessionResources().const.MEMBER_ID] \ + ' download '\ + directory\ + '/' + filename) return send_from_directory(directory = directory, filename = filename) except Exception as e: Log.info(str(e)) # 메인 페이지로 옮기기 from flask import redirect, url_for, flash from GradeServer.resource.routeResources import RouteResources flash('Not Found File') return redirect(url_for(RouteResources().const.SIGN_IN))
def to_process_uploaded_files(courseId, problemId, pageNum, browserName, browserVersion): memberId = session[SessionResources.const.MEMBER_ID] problemName = remove_space_in_problemName(problemId) filePath, tempPath = make_path(PATH, memberId, courseId, problemId, problemName) try: os.mkdir(tempPath) uploadFiles = request.files.getlist(OtherResources.const.GET_FILES) usedLanguageName = request.form[OtherResources.const.USED_LANGUAGE_NAME] sumOfSubmittedFileSize = file_save(memberId, courseId, problemId, uploadFiles, tempPath, filePath) send_to_celery(memberId, courseId, problemId, usedLanguageName, sumOfSubmittedFileSize, problemName, filePath, tempPath) Log.info("file submitted") except OSError as e: Log.error(str(e)) submit_error(tempPath, courseId, pageNum, 'fileError', browserName, browserVersion) except Exception as e: dao.rollback() Log.error(str(e)) submit_error(tempPath, courseId, pageNum, 'dbError', browserName, browserVersion) time.sleep(0.4) return page_move(courseId, pageNum, browserName, browserVersion)
def to_process_uploaded_files(problemIndex, pageNum, browserName, browserVersion): memberId = session[SessionResources().const.MEMBER_ID] memberIdIndex = session[SessionResources().const.MEMBER_ID_INDEX] problemName = remove_space_in_problemName(problemIndex) filePath, tempPath = make_path(PATH, memberIdIndex, memberId, problemName) try: os.mkdir(tempPath) uploadFiles = request.files.getlist(OtherResources().const.GET_FILES) usedLanguageName = request.form[ OtherResources().const.USED_LANGUAGE_NAME] usedLanguageVersion = request.form[ OtherResources().const.USED_LANGUAGE_VERSION] submissionIndex = get_submission_index(memberIdIndex, problemIndex) sumOfSubmittedFileSize = file_save(submissionIndex, uploadFiles, tempPath, filePath) send_to_celery(memberIdIndex, problemIndex, submissionIndex, usedLanguageName, usedLanguageVersion, sumOfSubmittedFileSize, problemName, filePath, tempPath) Log.info(OtherResources().const.FILE_SUBMITTED) except OSError as e: Log.error(str(e)) submit_error(tempPath, pageNum, OtherResources().const.FILE_ERROR, browserName, browserVersion) except Exception as e: dao.rollback() Log.error(str(e)) print e submit_error(tempPath, pageNum, OtherResources().const.DB_ERROR, browserName, browserVersion) time.sleep(0.4) return page_move(pageNum, browserName, browserVersion)
def to_process_written_code(courseId, pageNum, problemId): memberId = session[SessionResources.const.MEMBER_ID] problemName = remove_space_in_problemName(problemId) filePath, tempPath = make_path(PATH, memberId, courseId, problemId, problemName) try: os.mkdir(tempPath) usedLanguageName, fileName = write_code_in_file(tempPath) fileSize = os.stat(os.path.join(tempPath, fileName)).st_size fileIndex = 1 delete_submitted_files_data(memberId, problemId, courseId) insert_submitted_files(memberId, courseId, problemId, fileIndex, fileName, filePath, fileSize) send_to_celery(memberId, courseId, problemId, usedLanguageName, fileSize, problemName, filePath, tempPath) Log.info("writed code is submitted") except OSError as e: Log.error(str(e)) submit_error(tempPath, courseId, pageNum, 'fileError') except Exception as e: dao.rollback() Log.error(str(e)) submit_error(tempPath, courseId, pageNum, 'dbError') time.sleep(0.4) return page_move(courseId, pageNum)
def board(activeTabCourseId, pageNum): try: # 검색시 FilterCondition List Filters = ['모두', '작성자', '제목 및 내용'] # 허용 과목 리스트 myCourses = select_current_courses(select_accept_courses().subquery()).subquery() # TabActive Course or All Articles # get course or All Articles articlesOnBoard = join_courses_names(# get TabActive Articles select_articles(activeTabCourseId = activeTabCourseId, isDeleted = ENUMResources().const.FALSE).subquery(), myCourses).subquery() # 과목 공지글 try: articleNoticeRecords = get_page_record((select_sorted_articles(articlesOnBoard, isNotice = ENUMResources().const.TRUE)), pageNum = int(1), LIST = OtherResources().const.NOTICE_LIST).all() except Exception: articleNoticeRecords = [] # 과목 게시글 try: if request.method == 'POST': Log.info(session[SessionResources().const.MEMBER_ID] + ' try keyword find in Board') try: for form in request.form: # FilterCondition if 'keyWord' != form: filterCondition = form keyWord = request.form['keyWord'] except Exception as e: filterCondition = None keyWord = None Log.info(session[SessionResources().const.MEMBER_ID] + e) else: filterCondition = None keyWord = None articlesOnBoardSub = select_sorted_articles(articlesOnBoard, isNotice = ENUMResources().const.FALSE, filterFindParameter = FilterFindParameter(filterCondition, keyWord)) count = select_count(articlesOnBoardSub.subquery().\ c.articleIndex).first().\ count articleRecords = get_page_record(articlesOnBoardSub, pageNum = pageNum, LIST = int(15)).all() except Exception: count = 0 articleRecords = [] try: myCourses = dao.query(myCourses).all() except Exception: myCourses = [] # myCourses Default Add ALL myCourses.insert(0, OtherResources().const.ALL) return render_template(HTMLResources().const.BOARD_HTML, articleRecords = articleRecords, articleNoticeRecords = articleNoticeRecords, myCourses = myCourses, pages = get_page_pointed(pageNum, count, int(15)), Filters = Filters, activeTabCourseId = activeTabCourseId) # classType, condition은 검색 할 때 필요한 변수 except Exception: return unknown_error()