diff --git a/app/controllers/attachments_controller.rb b/app/controllers/attachments_controller.rb index 5132e203c..571374468 100644 --- a/app/controllers/attachments_controller.rb +++ b/app/controllers/attachments_controller.rb @@ -38,7 +38,8 @@ class AttachmentsController < ApplicationController content_type = upload_file.content_type.presence || 'application/octet-stream' - remote_path = file_save_to_ucloud(local_path[folder.size, local_path.size], local_path, content_type) + # remote_path = file_save_to_ucloud(local_path[folder.size, local_path.size], local_path, content_type) + remote_path = nil # TODO 暂时本地上传,待域名配置后方可上传至云端 logger.info "local_path: #{local_path}" logger.info "remote_path: #{remote_path}" diff --git a/app/controllers/exercise_answers_controller.rb b/app/controllers/exercise_answers_controller.rb index 27e4aba11..babdd50f7 100644 --- a/app/controllers/exercise_answers_controller.rb +++ b/app/controllers/exercise_answers_controller.rb @@ -9,11 +9,11 @@ class ExerciseAnswersController < ApplicationController q_type = @exercise_question.question_type #试卷的类型 choice_id = params[:exercise_choice_id].present? ? params[:exercise_choice_id] : "" answer_text = params[:answer_text].present? ? params[:answer_text] : "" #为字符串 - if q_type < 4 && (q_type != 1) && choice_id.blank? + if q_type < Exercise::SUBJECTIVE && (q_type != Exercise::MULTIPLE) && choice_id.blank? normal_status(-1,"请选择序号") else ea = @exercise_question.exercise_answers.search_answer_users("user_id",current_user.id) #试卷的当前用户的答案 - if q_type == 0 || q_type == 2 #选择题(单选)/判断题 + if q_type == Exercise::SINGLE || q_type == Exercise::JUDGMENT #选择题(单选)/判断题 ea_choice = ea.search_exercise_answer("exercise_choice_id",choice_id).first answer_option = { :user_id => current_user.id, @@ -30,7 +30,7 @@ class ExerciseAnswersController < ApplicationController ex_a = ExerciseAnswer.new(answer_option) ex_a.save! end - elsif q_type == 1 #多选题的 + elsif q_type == Exercise::MULTIPLE #多选题的 choice_ids = params[:exercise_choice_id].present? ? params[:exercise_choice_id] : [] ea_ids = ea.pluck(:exercise_choice_id) @@ -53,7 +53,7 @@ class ExerciseAnswersController < ApplicationController ea_answer = ea.search_answer_users("exercise_choice_id",old_ids) ea_answer.destroy_all end - elsif q_type == 3 #填空题 + elsif q_type == Exercise::COMPLETION #填空题 answer_option = { :user_id => current_user.id, :exercise_question_id => @exercise_question.id, @@ -67,7 +67,7 @@ class ExerciseAnswersController < ApplicationController ex_new = ExerciseAnswer.new(answer_option) ex_new.save! end - elsif q_type == 4 #简答题 + elsif q_type == Exercise::SUBJECTIVE #简答题 answer_option = { :user_id => current_user.id, :exercise_question_id => @exercise_question.id @@ -110,7 +110,7 @@ class ExerciseAnswersController < ApplicationController elsif @exercise_user.commit_status == 1 normal_status(-1,"已提交/已结束的试卷不允许修改!") else - if (@exercise_user_status == 3 && @exercise_user.commit_status == 0) || (@exercise.time > 0 && @exercise_user.start_at.present? && ((@exercise_user.start_at + (@exercise.time.to_i + 1).minutes) < Time.now)) + if (@exercise_user_status == Exercise::DEADLINE && @exercise_user.commit_status == 0) || (@exercise.time > 0 && @exercise_user.start_at.present? && ((@exercise_user.start_at + (@exercise.time.to_i + 1).minutes) < Time.now)) objective_score = calculate_student_score(@exercise,current_user)[:total_score] subjective_score = @exercise_user.subjective_score < 0.0 ? 0.0 : @exercise_user.subjective_score total_score = objective_score + subjective_score diff --git a/app/controllers/exercise_questions_controller.rb b/app/controllers/exercise_questions_controller.rb index 65fd77d98..3718e18d5 100644 --- a/app/controllers/exercise_questions_controller.rb +++ b/app/controllers/exercise_questions_controller.rb @@ -590,7 +590,7 @@ class ExerciseQuestionsController < ApplicationController end def validate_params - normal_status(-1,"题目不允许为空!") if (params[:question_title].blank? && params[:question_type].to_i !=5 ) #除了实训题,其余题目必需有题干 + normal_status(-1,"题目不允许为空!") if (params[:question_title].blank? && params[:question_type].to_i != Exercise::PRACTICAL ) #除了实训题,其余题目必需有题干 normal_status(-1,"问题类型不允许为空!" ) if params[:question_type].blank? normal_status(-1,"分值不允许为空!" ) if params[:question_score].blank? && params[:question_scores].blank? #分值的数组或参数必需存在一个 if params[:question_score].present? && params[:question_score].to_f <= 0.0 #问题类型存在,则分值不能为空,且必需大于0 diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 4522c64f6..2216574a9 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -208,13 +208,13 @@ class ExercisesController < ApplicationController @ex_status = @exercise.get_exercise_status(current_user) exercise_id_array = [@exercise.id] - @exercise_publish_count = get_user_permission_course(exercise_id_array,2).size #是否存在已发布的 - @exercise_unpublish_count = get_user_permission_course(exercise_id_array,1).size #是否存在未发布的 + @exercise_publish_count = get_user_permission_course(exercise_id_array,Exercise::PUBLISHED).size #是否存在已发布的 + @exercise_unpublish_count = get_user_permission_course(exercise_id_array,Exercise::UNPUBLISHED).size #是否存在未发布的 if (@exercise_publish_count == 0) && (@exercise_unpublish_count == 0) #即表示没有分班 - if @ex_status == 1 + if @ex_status == Exercise::UNPUBLISHED @exercise_unpublish_count = 1 #试卷未发布,且课堂没有分班的时候 - elsif @ex_status == 2 + elsif @ex_status == Exercise::PUBLISHED @exercise_publish_count = 1 #试卷未发布,且课堂没有分班的时候 end end @@ -368,7 +368,7 @@ class ExercisesController < ApplicationController exercise_bank_question = current_ex_bank.exercise_bank_questions.new option exercise_bank_question.save ## 试卷选项的输入 - if q.question_type != 5 #不为实训题时,试卷选项加入试题答案库 + if q.question_type != Exercise::PRACTICAL #不为实训题时,试卷选项加入试题答案库 ex_choices = q.exercise_choices ex_standard = q.exercise_standard_answers ex_choices.each do |c| @@ -422,8 +422,8 @@ class ExercisesController < ApplicationController @user_published_setting = @exercise.exercise_group_settings .find_in_exercise_group("course_group_id",@being_setting_course_ids) #当前用户已发布班级的试卷设置 exercise_ids = [@exercise.id] - @exercise_publish_count = get_user_permission_course(exercise_ids,2).count #判断当前用户是否有试卷已发布的分班,用于显示立即截止/撤销发布 - @exercise_unpublish_count = get_user_permission_course(exercise_ids,1).count #判断当前用户是否有试卷未发布的分班,用户显示立即发布 + @exercise_publish_count = get_user_permission_course(exercise_ids,Exercise::PUBLISHED).count #判断当前用户是否有试卷已发布的分班,用于显示立即截止/撤销发布 + @exercise_unpublish_count = get_user_permission_course(exercise_ids,Exercise::UNPUBLISHED).count #判断当前用户是否有试卷未发布的分班,用户显示立即发布 @exercise_users_count = @exercise.exercise_users.commit_exercise_by_status(1).count #判断当前试卷是否有已提交的 # ## 需添加发送消息的接口,稍后添加 rescue Exception => e @@ -444,7 +444,7 @@ class ExercisesController < ApplicationController exercise_status = @exercise.get_exercise_status(current_user) - if exercise_status == 1 && course_group_ids.size > 0 # 试卷未发布,且老师的分班大于1 ,才可以修改统一设置,否则按试卷默认的来处理 + if exercise_status == Exercise::UNPUBLISHED && course_group_ids.size > 0 # 试卷未发布,且老师的分班大于1 ,才可以修改统一设置,否则按试卷默认的来处理 unified_setting = params[:unified_setting] else unified_setting = @exercise.unified_setting @@ -469,7 +469,7 @@ class ExercisesController < ApplicationController params_end_time = params[:end_time].to_time end - if (exercise_status != 1) && (@exercise.publish_time != params_publish_time) + if (exercise_status != Exercise::UNPUBLISHED) && (@exercise.publish_time != params_publish_time) normal_status(-1,"已发布/已截止,不允许修改发布时间") elsif params_publish_time.present? && params_end_time.present? && params_end_time < params_publish_time normal_status(-1,"截止时间不能小于发布时间") @@ -590,7 +590,7 @@ class ExercisesController < ApplicationController :end_time => e_time } @exercise.update_attributes(exercise_params) - if @exercise.exercise_status == 2 + if @exercise.exercise_status == Exercise::PUBLISHED if @exercise.course_acts.size == 0 @exercise.course_acts << CourseActivity.new(:user_id => @exercise.user_id,:course_id => @exercise.course_id) end @@ -689,7 +689,7 @@ class ExercisesController < ApplicationController ActiveRecord::Base.transaction do begin check_ids = Exercise.where(id: params[:check_ids]) - ex_end_time = params[:end_time].to_time + ex_end_time = params[:end_time].blank? ? Time.at(((1.month.since.to_i)/3600.0).ceil * 3600) : params[:end_time].to_time check_ids.each do |exercise| if exercise.present? if exercise.unified_setting @@ -707,7 +707,6 @@ class ExercisesController < ApplicationController ex_unified = true e_time = ex_end_time else - e_time = exercise.exercise_group_settings.end_time_no_null.map(&:end_time).max ex_unified = false g_course.each do |i| exercise_group_setting = exercise.exercise_group_settings.find_in_exercise_group("course_group_id",i).first #根据课堂分班的id,寻找试卷所在的班级 @@ -725,7 +724,8 @@ class ExercisesController < ApplicationController new_exercise_group.save end end - group_ids = params[:group_ids] + # group_ids = params[:group_ids] + e_time = exercise.exercise_group_settings.end_time_no_null.map(&:end_time).max end else exercise.exercise_group_settings.destroy_all @@ -745,7 +745,7 @@ class ExercisesController < ApplicationController if exercise.course_acts.size == 0 exercise.course_acts << CourseActivity.new(:user_id => exercise.user_id,:course_id => exercise.course_id) end - ExercisePublishNotifyJob.perform_later(exercise.id, group_ids) + ExercisePublishNotifyJob.perform_later(exercise.id, g_course) end end end @@ -784,15 +784,9 @@ class ExercisesController < ApplicationController course_students = @course.students #课堂的全部学生数 check_ids.each do |exercise| exercise_status= exercise.get_exercise_status(current_user) - if exercise_status == 2 #跳过已截止的或未发布的 + if exercise_status == Exercise::PUBLISHED #跳过已截止的或未发布的 g_course = params[:group_ids] if g_course.present? - # user_course_groups= @course.teacher_course_groups.get_user_groups(current_user.id) - # if user_course_groups.present? - # teacher_course_group_ids = user_course_groups.pluck(:course_group_id) - # else - # teacher_course_group_ids = @course.course_groups.pluck(:id) - # end teacher_course_group_ids = @course.charge_group_ids(current_user) if g_course.map(&:to_i).sort == teacher_course_group_ids.sort #开始为统一设置 exercise.exercise_group_settings.destroy_all @@ -878,7 +872,7 @@ class ExercisesController < ApplicationController ex_question_ids = @exercise.exercise_questions.pluck(:id) exercise_user = @exercise.exercise_users.exercise_commit_users(current_user.id).first if exercise_user.present? - if exercise_user.commit_status == 1 && @exercise.get_exercise_status(current_user) == 2 #用户已提交且试卷提交中 + if exercise_user.commit_status == 1 && @exercise.get_exercise_status(current_user) == Exercise::PUBLISHED #用户已提交且试卷提交中 if @exercise.time == -1 || ((Time.now.to_i - exercise_user.start_at.to_i) < @exercise.time.to_i * 60) exercise_user.update_attributes(:score => nil, :end_at => nil, :status => nil, :commit_status => 0, :objective_score => 0.0, :subjective_score => -1.0) @@ -976,8 +970,13 @@ class ExercisesController < ApplicationController def start_answer ActiveRecord::Base.transaction do begin - @exercise_user_current = @exercise.exercise_users.exercise_commit_users(@exercise_current_user_id)&.first - if @exercise_user_current.blank? + ex_users_current = ExerciseUser.where(user_id:@exercise_current_user_id,exercise_id:@exercise.id) #不能用@exercise.exercise_users,因为exercise_users删除时,只是状态改变,未删除 + @exercise_user_current = ex_users_current&.first + if ex_users_current.exists? + if @exercise_user_current.start_at.blank? + @exercise_user_current.update_attribute("start_at",Time.now) + end + else if @user_course_identity > Course::ASSISTANT_PROFESSOR #当为老师的时候,不创建exercise_user表,理论上老师是不能进入答题的 exercise_user_params = { :user_id => @exercise_current_user_id, @@ -987,16 +986,12 @@ class ExercisesController < ApplicationController exercise_user_current = ExerciseUser.new(exercise_user_params) exercise_user_current.save end - else - if @exercise_user_current.start_at.blank? - @exercise_user_current.update_attribute("start_at",Time.now) - end end @t_user_exercise_status = @exercise.get_exercise_status(current_user) @user_left_time = nil if @user_course_identity < Course::STUDENT || (@t_user_exercise_status == 3) || - (@exercise_user_current.present? && @exercise_user_current.commit_status == 1) + (ex_users_current.exists? && @exercise_user_current.commit_status == 1) @user_exercise_status = 1 #当前用户为老师/试卷已截止/试卷已提交不可编辑 else @user_left_time = get_exercise_left_time(@exercise,current_user) @@ -1016,7 +1011,7 @@ class ExercisesController < ApplicationController :exercise_answers, :exercise_standard_answers) - if @t_user_exercise_status == 3 + if @t_user_exercise_status == Exercise::DEADLINE get_each_student_exercise(@exercise.id,@exercise_questions,@exercise_current_user_id) end get_user_answer_status(@exercise_questions,@exercise_current_user_id,@exercise,@t_user_exercise_status) @@ -1047,9 +1042,9 @@ class ExercisesController < ApplicationController end end @exercise_questions.each do |q| - if q.question_type == 5 #当为实训题时 + if q.question_type == Exercise::PRACTICAL #当为实训题时 user_myshixun = q.shixun.myshixuns.search_myshixun_user(current_user.id) - if user_myshixun.blank? || user_myshixun.first.status != 1 #当前用户的实训是否做完 + if user_myshixun.blank? || user_myshixun.first.status != Exercise::UNPUBLISHED #当前用户的实训是否做完 @shixun_undo += 1 end else @@ -1159,7 +1154,7 @@ class ExercisesController < ApplicationController #试卷的答题列表页的显示用户 if @user_course_identity < Course::STUDENT #当前为老师,而且老师只能查看自己班级的/课堂的试卷 @exercise_current_user_status = 0 - unless @exercise_status == 1 + unless @exercise_status == Exercise::UNPUBLISHED ex_common_ids = @exercise.common_published_ids(current_user.id) @exercise_course_groups = @course.get_ex_published_course(ex_common_ids) @exercise_users_list = @exercise.all_exercise_users(current_user.id) #当前老师所在班级的全部学生 @@ -1172,7 +1167,7 @@ class ExercisesController < ApplicationController exercise_current_user = @exercise_all_users.exercise_commit_users(current_user.id) if exercise_current_user.exists? #表示为课堂学生或已回答的 @exercise_current_user_status = 1 - if @exercise.score_open && @exercise_status == 3 #勾选了成绩公开且试卷已截止的 + if @exercise.score_open && @exercise_status == Exercise::DEADLINE #勾选了成绩公开且试卷已截止的 all_user_ids = @exercise_all_users.pluck(:user_id) all_user_ids.delete(current_user.id) #删除了当前用户的ID @exercise_users_list = @exercise_all_users.exercise_commit_users(all_user_ids).distinct @@ -1464,32 +1459,32 @@ class ExercisesController < ApplicationController @exercise_ques_scores = exercise_questions.pluck(:question_score).sum #单选题的数量及分数 - exercise_single_ques = exercise_questions.find_by_custom("question_type",0) + exercise_single_ques = exercise_questions.find_by_custom("question_type",Exercise::SINGLE) @exercise_single_ques_count = exercise_single_ques.size @exercise_single_ques_scores = exercise_single_ques.pluck(:question_score).sum #多选题的数量及分数 - exercise_double_ques = exercise_questions.find_by_custom("question_type",1) + exercise_double_ques = exercise_questions.find_by_custom("question_type",Exercise::MULTIPLE) @exercise_double_ques_count = exercise_double_ques.size @exercise_double_ques_scores = exercise_double_ques.pluck(:question_score).sum # 判断题数量及分数 - exercise_ques_judge = exercise_questions.find_by_custom("question_type",2) + exercise_ques_judge = exercise_questions.find_by_custom("question_type",Exercise::JUDGMENT) @exercise_ques_judge_count = exercise_ques_judge.size @exercise_ques_judge_scores = exercise_ques_judge.pluck(:question_score).sum #填空题数量及分数 - exercise_ques_null = exercise_questions.find_by_custom("question_type",3) + exercise_ques_null = exercise_questions.find_by_custom("question_type",Exercise::COMPLETION) @exercise_ques_null_count = exercise_ques_null.size @exercise_ques_null_scores = exercise_ques_null.pluck(:question_score).sum #简答题数量及分数 - exercise_ques_main = exercise_questions.find_by_custom("question_type",4) + exercise_ques_main = exercise_questions.find_by_custom("question_type",Exercise::SUBJECTIVE) @exercise_ques_main_count = exercise_ques_main.size @exercise_ques_main_scores = exercise_ques_main.pluck(:question_score).sum #实训题数量及分数 - exercise_ques_shixun = exercise_questions.find_by_custom("question_type",5) + exercise_ques_shixun = exercise_questions.find_by_custom("question_type",Exercise::PRACTICAL) @exercise_ques_shixun_count = exercise_ques_shixun.size @exercise_ques_shixun_scores = exercise_ques_shixun.pluck(:question_score).sum @@ -1572,7 +1567,7 @@ class ExercisesController < ApplicationController ## 判断开始答题页面的用户权限 def check_user_on_answer - if @user_course_identity == Course::STUDENT && @exercise.get_exercise_status(current_user) == 1 #试卷未发布,且当前用户不为老师/管理员 + if @user_course_identity == Course::STUDENT && @exercise.get_exercise_status(current_user) == Exercise::UNPUBLISHED #试卷未发布,且当前用户不为老师/管理员 normal_status(-1, "未发布试卷!") elsif @user_course_identity > Course::STUDENT && (!@exercise.is_public || (@exercise.is_public && !@exercise.unified_setting)) ##不为课堂成员,且试卷不为公开的,或试卷公开,但不是统一设置的 normal_status(-1, "试卷暂未公开!") @@ -1589,7 +1584,7 @@ class ExercisesController < ApplicationController #打回重做时的初步判断 def check_exercise_status @exercise_users = @exercise.all_exercise_users(current_user.id).commit_exercise_by_status(1) #当前教师所在分班的全部已提交的学生数 - if @exercise.get_exercise_status(current_user) != 2 + if @exercise.get_exercise_status(current_user) != Exercise::PUBLISHED normal_status(-1,"非提交中的试卷不允许打回重做!") elsif @exercise_users.count < 1 normal_status(-1,"暂无人提交试卷!") diff --git a/app/controllers/games_controller.rb b/app/controllers/games_controller.rb index c951340f8..107839b31 100644 --- a/app/controllers/games_controller.rb +++ b/app/controllers/games_controller.rb @@ -503,6 +503,7 @@ class GamesController < ApplicationController # 监测版本库HEAD是否存在,不存在则取最新的HEAD uri = "#{shixun_tomcat}/bridge/game/check" res = uri_post uri, rep_params + uid_logger("repo_content to bridge: res is #{res}") # res值:0 表示正常;-1表示有错误;-2表示代码版本库没了 if status == 0 && res && (res['code'] == -2 || res['code'] == -1) # 删除不需要的仓库 @@ -512,7 +513,7 @@ class GamesController < ApplicationController uid_logger_error("#{e.message}") end # fork一个新的仓库 - project_fork(@myshixun, @shixun.repo_path, current_user.login) + # project_fork(@myshixun, @shixun.repo_path, current_user.login) end rescue Exception => e uid_logger_error(e.message) diff --git a/app/controllers/myshixuns_controller.rb b/app/controllers/myshixuns_controller.rb index 31395def2..60edb6dcb 100644 --- a/app/controllers/myshixuns_controller.rb +++ b/app/controllers/myshixuns_controller.rb @@ -96,6 +96,10 @@ class MyshixunsController < ApplicationController status = jsonTestDetails['status'] game_id = jsonTestDetails['buildID'] sec_key = jsonTestDetails['sec_key'] + + res_usage = jsonTestDetails['resUsage'] + ts_time = res_usage['test_set_time_1'] + logger.info("training_task_status start#1**#{game_id}**** #{Time.now.strftime("%Y-%m-%d %H:%M:%S.%L")}") resubmit = jsonTestDetails['resubmit'] outPut = tran_base64_decode64(jsonTestDetails['outPut']) @@ -191,8 +195,8 @@ class MyshixunsController < ApplicationController test_cases_time = format("%.3f", (Time.now.to_f - t1.to_f)).to_f if record.present? consume_time = format("%.3f", (Time.now - record.created_at)).to_f - record.update_attributes!(:consume_time => consume_time, :git_pull => timeCost['pull'] , - :create_pod => timeCost['createPod'], :pod_execute => timeCost['execute'], :test_cases => test_cases_time, + record.update_attributes!(:consume_time => consume_time, :git_pull => timeCost['pull'] , :create_pod => timeCost['createPod'], + :pod_execute => timeCost['execute'], :test_cases => test_cases_time, :ts_time => ts_time, :brige => timeCost['evaluateAllTime'], :return_back => return_back_time) end uid_logger("training_task_status start#4**#{game_id}**** #{Time.now.strftime("%Y-%m-%d %H:%M:%S.%L")}") diff --git a/app/controllers/polls_controller.rb b/app/controllers/polls_controller.rb index 6262d9ef9..3fc17c661 100644 --- a/app/controllers/polls_controller.rb +++ b/app/controllers/polls_controller.rb @@ -247,7 +247,7 @@ class PollsController < ApplicationController ActiveRecord::Base.transaction do begin check_ids = Poll.where(id: params[:check_ids]) - ex_end_time = params[:end_time] || Time.at(((1.month.since.to_i)/3600.0).ceil * 3600) + ex_end_time = params[:end_time].blank? ? Time.at(((1.month.since.to_i)/3600.0).ceil * 3600) : params[:end_time].to_time check_ids.each do |poll| if poll.unified_setting pl_status = poll.polls_status #则为试卷的状态 @@ -263,7 +263,6 @@ class PollsController < ApplicationController poll_unified = true e_time = ex_end_time else - e_time = poll.poll_group_settings.end_time_present.map(&:end_time).max poll_unified = false g_course.each do |i| poll_group_setting = poll.poll_group_settings.find_in_poll_group("course_group_id",i).first #根据课堂分班的id,寻找问卷所在的班级 @@ -281,7 +280,8 @@ class PollsController < ApplicationController new_poll_group.save end end - group_ids = params[:group_ids] + e_time = poll.poll_group_settings.end_time_present.map(&:end_time).max + # group_ids = params[:group_ids] end else poll.poll_group_settings.destroy_all @@ -300,7 +300,7 @@ class PollsController < ApplicationController if poll.course_acts.size == 0 poll.course_acts << CourseActivity.new(:user_id => poll.user_id,:course_id => poll.course_id) end - PollPublishNotifyJob.perform_later(poll.id, group_ids) + PollPublishNotifyJob.perform_later(poll.id, g_course) end end normal_status(0, "问卷发布成功!") @@ -840,7 +840,7 @@ class PollsController < ApplicationController def start_answer ActiveRecord::Base.transaction do begin - poll_user_current = @poll.poll_users.find_by_group_ids(@poll_current_user_id).first #查找当前用户是否有过答题 + poll_user_current = PollUser.where(user_id:@poll_current_user_id,poll_id:@poll.id)&.first #查找当前用户是否有过答题 @poll_status = @poll.get_poll_status(current_user) if poll_user_current.blank? if @user_course_identity > Course::ASSISTANT_PROFESSOR #当为老师的时候,不创建poll_user表,理论上老师是不能进入答题的 diff --git a/app/models/evaluate_record.rb b/app/models/evaluate_record.rb index 451409493..392b12360 100644 --- a/app/models/evaluate_record.rb +++ b/app/models/evaluate_record.rb @@ -1,3 +1,11 @@ +# 字段说明: +# consume_time:总耗时,包括前端发出请求,到最后前端显示效果 +# git_pull:中间层pull代码耗时 +# create_pod:创建pod耗时 +# pod_execute:pod执行时间耗时,也就代码执行耗时,是各个测试集的总耗时 +# test_cases:outpus表中存储及处理测试集的时间耗时 +# brige:中间层总耗时 +# return_back:回调耗时,从中间层发送请求到educoder所耗时间 class EvaluateRecord < ApplicationRecord default_scope { order("evaluate_records.id desc") } belongs_to :game diff --git a/app/models/output.rb b/app/models/output.rb index b813f6070..7a4a22e7e 100644 --- a/app/models/output.rb +++ b/app/models/output.rb @@ -1,3 +1,15 @@ +# 字段说明: +# code:-1表示评测未通过,0表示评测成功,实质是status的值 +# mes: +# out_put: +# test_set_position: 测试集序号(排序) +# actual_output: +# result: +# is_public:测试集是否是公开 +# query_index:评测次数 +# compile_success: +# text_scor: +# sec_key:每次评测的唯一标识 class Output < ApplicationRecord belongs_to :game end diff --git a/app/views/games/picture_display.json.jbuilder b/app/views/games/picture_display.json.jbuilder index 0470a5c0b..541c478a9 100644 --- a/app/views/games/picture_display.json.jbuilder +++ b/app/views/games/picture_display.json.jbuilder @@ -19,7 +19,7 @@ if @type == "image" end elsif @type == "html" - json.iframe_src html_show_users_path(:path => "#{@user_path}/#{@user_picture[0]}") + json.iframe_src File.read("#{@user_path}/#{@user_picture[0]}")&.html_safe elsif @type == "txt" json.contents @contents.html_safe elsif @type =="qrcode" diff --git a/db/migrate/20190716062401_add_ts_time_to_outputs.rb b/db/migrate/20190716062401_add_ts_time_to_outputs.rb new file mode 100644 index 000000000..8e0c55a78 --- /dev/null +++ b/db/migrate/20190716062401_add_ts_time_to_outputs.rb @@ -0,0 +1,5 @@ +class AddTsTimeToOutputs < ActiveRecord::Migration[5.2] + def change + add_column :outputs, :ts_time, :float + end +end diff --git a/db/migrate/20190716064225_add_max_mem_to_evaluate_records.rb b/db/migrate/20190716064225_add_max_mem_to_evaluate_records.rb new file mode 100644 index 000000000..4c9907d0a --- /dev/null +++ b/db/migrate/20190716064225_add_max_mem_to_evaluate_records.rb @@ -0,0 +1,5 @@ +class AddMaxMemToEvaluateRecords < ActiveRecord::Migration[5.2] + def change + add_column :evaluate_records, :max_mem, :float + end +end