diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 7aa89dbd7..024c7c151 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -190,7 +190,7 @@ class ApplicationController < ActionController::Base def check_account if !current_user.profile_completed? info_url = '/account/profile' - tip_exception(402, info_url) + tip_exception(402, '') end end diff --git a/app/controllers/myshixuns_controller.rb b/app/controllers/myshixuns_controller.rb index 7ae9df5e3..c36ad09b6 100644 --- a/app/controllers/myshixuns_controller.rb +++ b/app/controllers/myshixuns_controller.rb @@ -265,10 +265,10 @@ class MyshixunsController < ApplicationController # params[:evaluate] 实训评测时更新必须给的参数,需要依据该参数做性能统计,其它类型的更新可以跳过 # 自动保存的时候evaluate为0;点评测的时候为1 if params[:evaluate] == 1 - #exec_time = game.challenge.try(:exec_time) + exec_time = game.challenge.try(:exec_time) @sec_key = generate_identifier(EvaluateRecord, 12) record = EvaluateRecord.create!(:user_id => current_user.id, :shixun_id => @myshixun.shixun_id, :game_id => game_id, - :identifier => @sec_key) + :identifier => @sec_key, :exec_time => exec_time) uid_logger("-- game build: file update #{@sec_key}, record id is #{record.id}, time is **** #{Time.now.strftime("%Y-%m-%d %H:%M:%S.%L")}") end unless @hide_code diff --git a/db/migrate/20190805010545_modify_ke_contents_for_markdown.rb b/db/migrate/20190805010545_modify_ke_contents_for_markdown.rb index 40714c4e1..67b57b215 100644 --- a/db/migrate/20190805010545_modify_ke_contents_for_markdown.rb +++ b/db/migrate/20190805010545_modify_ke_contents_for_markdown.rb @@ -1,73 +1,131 @@ class ModifyKeContentsForMarkdown < ActiveRecord::Migration[5.2] include ActionView::Helpers::SanitizeHelper def change - def ke_transform_to_md content - sanitize(content, tags: %w(img a span), attributes: %w(src href target style)) - .gsub(/^(\n)/, "").gsub(/(\n)+/, "
").gsub(/$(\n)/, "") - .gsub(/(\n)+/, "
").gsub("\t", "    ") - end - - # 课程讨论区 - MessageDetail.find_each do |m| - content = ke_transform_to_md m.content - puts("content:#{content}") - m.update_column(:content, content) - end - - # 试卷的描述 - Exercise.find_each do |e| - exercise_description = ke_transform_to_md e.exercise_description - puts("#exercise_description: #{exercise_description}") - e.update_column(:exercise_description, exercise_description) - end - - # 试卷的标题 - ExerciseQuestion.find_each do |eq| - question_title = ke_transform_to_md eq.question_title - puts("question_title:#{question_title}") - eq.update_column(:question_title, question_title) - end - - # 试卷的答案 - ExerciseStandardAnswer.find_each do |esa| - answer_text = ke_transform_to_md esa.answer_text - puts("answer_text: #{answer_text}") - esa.update_column(:answer_text, answer_text) - end - - # 试卷题库 - ExerciseBankQuestion.find_each do |ebq| - question_title = ke_transform_to_md ebq.question_title - puts("#question_title: #{question_title}") - end - - - # 问卷的标题 - PollQuestion.find_each do |pq| - question_title = ke_transform_to_md pq.question_title - puts("question_title:#{question_title}") - pq.update_column(:question_title, question_title) - end - - - - - StudentWork - HomeworkCommon - JournalsForMessage - GraduationTask - GraduationTopic - GraduationWork - GtaskBank - GtopicBank - HomeworkBank - QuestionBank - - ExerciseBankStandardAnswer - Memo - - - + # def ke_transform_to_md content + # sanitize(content, tags: %w(img a span), attributes: %w(src href target style)) + # .gsub(/^(\n)/, "").gsub(/(\n)+/, "
").gsub(/$(\n)/, "") + # .gsub(/(\n)+/, "
").gsub("\t", "    ") + # end + # + # # 课程讨论区 + # MessageDetail.find_each do |m| + # content = ke_transform_to_md m.content + # puts("content:#{content}") + # m.update_column(:content, content) + # end + # + # # 试卷的描述 + # Exercise.find_each do |e| + # exercise_description = ke_transform_to_md e.exercise_description + # puts("#exercise_description: #{exercise_description}") + # e.update_column(:exercise_description, exercise_description) + # end + # + # # 试卷的标题 + # ExerciseQuestion.find_each do |eq| + # question_title = ke_transform_to_md eq.question_title + # puts("question_title:#{question_title}") + # eq.update_column(:question_title, question_title) + # end + # + # # 试卷的答案 + # ExerciseStandardAnswer.find_each do |esa| + # answer_text = ke_transform_to_md esa.answer_text + # puts("answer_text: #{answer_text}") + # esa.update_column(:answer_text, answer_text) + # end + # + # # 试卷题库的问题标题 + # ExerciseBankQuestion.find_each do |ebq| + # question_title = ke_transform_to_md ebq.question_title + # puts("#question_title: #{question_title}") + # ebq.update_column(:question_title, question_title) + # end + # + # # 试卷答案 + # ExerciseBankStandardAnswer.find_each do |ebsa| + # answer_text = ke_transform_to_md ebsa.answer_text + # puts("#answer_text: #{answer_text}") + # ebsa.update_column(:answer_text, answer_text) + # end + # + # # 问卷的标题 + # PollQuestion.find_each do |pq| + # question_title = ke_transform_to_md pq.question_title + # puts("question_title:#{question_title}") + # pq.update_column(:question_title, question_title) + # end + # + # # 学生的作品 + # StudentWork.find_each do |sw| + # description = ke_transform_to_md sw.description + # puts("#description: #{description}") + # sw.update_column(:description, description) + # end + # + # # 作业 + # HomeworkCommon.find_each do |hc| + # description = ke_transform_to_md hc.description + # reference_answer = ke_transform_to_md hc.reference_answer + # explanation = ke_transform_to_md hc.explanation + # hc.update_attributes(description: description, reference_answer: reference_answer, explanation: explanation) + # end + # + # # 作业题库 + # HomeworkBank.find_each do |hb| + # description = ke_transform_to_md hb.description + # reference_answer = ke_transform_to_md hb.reference_answer + # hb.update_attributes(description: description, reference_answer: reference_answer) + # end + # + # # 课堂评论 + # JournalsForMessage.find_each do |jfm| + # notes = ke_transform_to_md jfm.notes + # puts("#notes: #{notes}") + # jfm.update_column(:notes, notes) + # end + # + # # 毕业任务 + # GraduationTask.find_each do |gt| + # description = ke_transform_to_md gt.description + # puts("#description: #{description}") + # gt.update_column(:description, description) + # end + # + # # 毕设选题 + # GraduationTopic.find_each do |gt| + # description = ke_transform_to_md gt.description + # puts("#description: #{description}") + # gt.update_column(:description, description) + # end + # + # # 毕设作品 + # GraduationWork.find_each do |gw| + # description = ke_transform_to_md gw.description + # puts("#description: #{description}") + # gw.update_column(:description, description) + # end + # + # # 毕设任务题库 + # GtaskBank.find_each do |gb| + # description = ke_transform_to_md gb.description + # puts("#description: #{description}") + # gb.update_column(:description, description) + # end + # + # # 毕设选题题库 + # GtopicBank.find_each do |gb| + # description = ke_transform_to_md gb.description + # puts("#description: #{description}") + # gb.update_column(:description, description) + # end + # + # # 交流问答 + # Memo.find_each do |m| + # content = ke_transform_to_md m.content + # puts("#description: #{content}") + # m.update_column(:content, content) + # end end end diff --git a/public/react/src/modules/moop_cases/CaseNew.js b/public/react/src/modules/moop_cases/CaseNew.js index 056733283..e855b5b71 100644 --- a/public/react/src/modules/moop_cases/CaseNew.js +++ b/public/react/src/modules/moop_cases/CaseNew.js @@ -40,6 +40,7 @@ class CaseNew extends Component{ imageUrl:undefined, loading: false, checkTag:false, + checkFile:false, coverID:undefined } } @@ -89,10 +90,12 @@ class CaseNew extends Component{ let contentFileList = info.fileList; this.setState({ contentFileList: appendFileSizeToUploadFileAll(contentFileList)}); let list = appendFileSizeToUploadFileAll(contentFileList); + let arr = list.map(item=>{ + return ( item.response && item.response.id ) + }) this.setState({ - filesID:list.map(item=>{ - return ( item.response && item.response.id ) - }) + filesID:arr, + checkFile:arr.length > 0 ? false : true }) console.log("fujian"); console.log(list.map(item=>{ @@ -165,7 +168,7 @@ class CaseNew extends Component{ let caseID = this.props.match.params.caseID; console.log(type); this.props.form.validateFieldsAndScroll((err, values) => { - let { casesTags } = this.state; + let { casesTags , filesID } = this.state; if(casesTags.length == 0){ $("html").animate({ scrollTop: $("#tagFormItem").offset().top - 100 }); this.setState({ @@ -173,6 +176,13 @@ class CaseNew extends Component{ }) return; } + if(filesID.length == 0){ + $("html").animate({ scrollTop: $("#fileFormItem").offset().top - 100 }); + this.setState({ + checkFile:true + }) + return; + } //const mdContnet = this.DescMdRef.current.getValue().trim(); console.log(values); let url = caseID ? `/libraries/${caseID}.json`: `/libraries.json`; @@ -235,7 +245,7 @@ class CaseNew extends Component{ render(){ let { caseID } = this.props.match.params; let { CaseDetail } = this.props; - let { casesTags , contentFileList , imageUrl , checkTag } = this.state; + let { casesTags , contentFileList , imageUrl , checkTag , checkFile } = this.state; const {getFieldDecorator} = this.props.form; @@ -363,11 +373,14 @@ class CaseNew extends Component{ watch={true} className="caseMessageMD" initValue={CaseDetail && CaseDetail.content}> )} -
+

上传附件

从我的电脑选择要上传的文档:按住CTRL可以上传多份文档。单个文件最大限制:150MB

+ { + checkFile &&
请先上传附件
+ }

封面图(上传尺寸:120*90 px)