diff --git a/app/controllers/exercise_questions_controller.rb b/app/controllers/exercise_questions_controller.rb index 57116a9e5..27e3fa2f4 100644 --- a/app/controllers/exercise_questions_controller.rb +++ b/app/controllers/exercise_questions_controller.rb @@ -497,7 +497,38 @@ class ExerciseQuestionsController < ApplicationController ex_obj_score = @exercise_current_user.objective_score #全部客观题得分 ex_subj_score = @exercise_current_user.subjective_score < 0.0 ? 0.0 : @exercise_current_user.subjective_score #全部主观题得分 ex_answers = @exercise_question.exercise_answers.search_answer_users("user_id",@user_id) #当前用户答案的得分 - if @exercise_question.question_type == Exercise::COMPLETION #当为填空题,更新问题的总分, + if @exercise_question.question_type == Exercise::MULTIPLE + if ex_answers.present? #学生有回答时 取学生的答题得分,否则0分 + answer_choice_array = [] + ex_answers.each do |a| + answer_choice_array.push(a.exercise_choice.choice_position) #学生答案的位置 + end + user_answer_content = answer_choice_array.sort + standard_answer = @exercise_question.exercise_standard_answers.pluck(:exercise_choice_id).sort + if standard_answer.size == 1 # 老数据需要判断学生答题是否正确, 正确取原题得分,否则是0分 + standard_answer = standard_answer.first.to_s.split("").map(&:to_i).sort + if user_answer_content == standard_answer + ex_answer_old = @exercise_question.question_score + else + ex_answer_old = 0 + end + else # 新多选题只需取第一条答题记录的得分 + ex_answer_old = ex_answers.first.score > 0 ? ex_answers.first.score : 0 + end + else + ex_answer_old = 0 + end + + new_obj_score = ex_obj_score - ex_answer_old + @c_score + total_scores = new_obj_score + ex_subj_score + ex_scores = { + :objective_score => new_obj_score, + :score => total_scores + } + @exercise_current_user.update_attributes(ex_scores) + ex_answers.update_all(:score => @c_score) #所有的正确选项需重新更新 + + elsif @exercise_question.question_type == Exercise::COMPLETION #当为填空题,更新问题的总分, ex_answer_old = ex_answers.score_reviewed.pluck(:score).sum #每一关的得分总和 each_right_score = (@c_score / ex_answers.count.to_f) #调分后,平均每关的分数 new_obj_score = ex_obj_score - ex_answer_old + @c_score @@ -579,7 +610,7 @@ class ExerciseQuestionsController < ApplicationController end rescue Exception => e uid_logger_error(e.message) - tip_exception("没有权限") + tip_exception(e.message) raise ActiveRecord::Rollback end end @@ -703,8 +734,8 @@ class ExerciseQuestionsController < ApplicationController normal_status(-1,"用户不存在!") elsif @c_score.blank? normal_status(-1,"分数不能为空!") - elsif @exercise_question.question_type <= Exercise::JUDGMENT - normal_status(-1,"选择题/判断题不能调分!") + elsif @exercise_question.question_type == Exercise::SINGLE || @exercise_question.question_type == Exercise::JUDGMENT + normal_status(-1,"单选题/判断题不能调分!") elsif params[:comment].present? && params[:comment].length > 100 normal_status(-1,"评语不能超过100个字符!") else diff --git a/dump.rdb b/dump.rdb index bcf064366..9f62f75c7 100644 Binary files a/dump.rdb and b/dump.rdb differ diff --git a/public/react/src/modules/courses/Index.js b/public/react/src/modules/courses/Index.js index a2f9a14e5..95927893d 100644 --- a/public/react/src/modules/courses/Index.js +++ b/public/react/src/modules/courses/Index.js @@ -305,7 +305,7 @@ class CoursesIndex extends Component{ //Do your stuff here }); } - + //更新左边课堂导航 updataleftNav=()=>{ let query=this.props.location.pathname let {isaloadtype}=this.state; diff --git a/public/react/src/modules/courses/elearning/Elearning.js b/public/react/src/modules/courses/elearning/Elearning.js index 74fdfe201..2ed4bbaa8 100644 --- a/public/react/src/modules/courses/elearning/Elearning.js +++ b/public/react/src/modules/courses/elearning/Elearning.js @@ -29,12 +29,14 @@ class Elearning extends Component{ userlogin:"", isRender:false, subject_id:0, + myupdataleftNavs:this.myupdataleftNav } } componentDidMount() { // 记得删除退出课堂 - // console.log("获取到数据"); + // console.log("在线学习"); + // console.log("获取到数据"); // console.log(this.props); this.getdata(); } @@ -289,6 +291,9 @@ class Elearning extends Component{ }) }; + myupdataleftNav=()=>{ + this.props.updataleftNavfun(); + } render(){ console.log("Elearning++++++++"); // console.log(this.props.Chapterupdate); @@ -397,7 +402,7 @@ class Elearning extends Component{
{/*开始学习*/} - this.Startlearningtwo()} Myreload={()=>this.Myreload()} Tojoinclass={()=>this.Tojoinclass()} getPathCardsList={()=>this.getdata()}> + this.Startlearningtwo()} Myreload={()=>this.Myreload()} Tojoinclass={()=>this.Tojoinclass()} getPathCardsList={()=>this.getdata()} >
diff --git a/public/react/src/modules/courses/elearning/YslDetailCards.js b/public/react/src/modules/courses/elearning/YslDetailCards.js index cb6f06fde..4b295f118 100644 --- a/public/react/src/modules/courses/elearning/YslDetailCards.js +++ b/public/react/src/modules/courses/elearning/YslDetailCards.js @@ -210,7 +210,7 @@ class YslDetailCards extends Component{ - //取消的 + //确认的 updatapathCardsedit=()=>{ this.setState({ idsum:undefined, @@ -219,9 +219,10 @@ class YslDetailCards extends Component{ editbuttomtypeadd:false }) this.props.getPathCardsList(); + this.props.myupdataleftNavs(); // this.props.updatadetailInfoLists(); }; - //确认的 + //取消的 editeditbuttomtypecanle=()=>{ this.setState({ editbuttomtype:true, @@ -300,6 +301,7 @@ class YslDetailCards extends Component{ this.updatapathCardsedit() this.props.showNotification(`删除成功`); + this.props.myupdataleftNavs(); }else { this.props.showNotification(`删除失败`); } diff --git a/public/react/src/modules/courses/shixunHomework/shixunHomework.js b/public/react/src/modules/courses/shixunHomework/shixunHomework.js index fe959b691..a2cd5a938 100644 --- a/public/react/src/modules/courses/shixunHomework/shixunHomework.js +++ b/public/react/src/modules/courses/shixunHomework/shixunHomework.js @@ -1037,7 +1037,7 @@ class ShixunHomework extends Component{ {/*{datas&&datas.category_name===undefined||datas&&datas.category_name===null?datas&&datas.main_category_name:datas&&datas.category_name+" 作业列表"}*/} 实训作业
  • - {datas===undefined?"":datas.homeworks && datas.homeworks.length>1?this.props.isClassManagement()===true?datas&&datas.category_name===undefined||datas&&datas.category_name===null? + {datas===undefined?"":datas.homeworks && datas.homeworks.length>1?this.props.isAdminOrCreator()===true?datas&&datas.category_name===undefined||datas&&datas.category_name===null? 调整排序 diff --git a/public/react/src/modules/paths/PathDetail/DetailCardsEditAndAdd.js b/public/react/src/modules/paths/PathDetail/DetailCardsEditAndAdd.js index ce38a73ea..87e398888 100644 --- a/public/react/src/modules/paths/PathDetail/DetailCardsEditAndAdd.js +++ b/public/react/src/modules/paths/PathDetail/DetailCardsEditAndAdd.js @@ -123,10 +123,11 @@ class DetailCardsEditAndAdd extends Component{ //点击新建阶段 addStage=()=>{ - this.props.editeditbuttomtypes(); this.setState({ editPanel:true }) + this.props.editeditbuttomtypes(); + } //取消新建阶段 @@ -294,13 +295,12 @@ class DetailCardsEditAndAdd extends Component{ shixun_id:shixuns_listeditlist }).then((response) => { // window.location.href = "/paths/" + response.data.subject_id - this.props.getPathCardsLists(); - this.cancelAddState(); this.setState({ stage_nametype:false, descriptiontype:false }) + this.props.getPathCardsLists(); }).catch((error) => { console.log(error) }); diff --git a/public/react/src/modules/tpm/TPMIndexHOC.js b/public/react/src/modules/tpm/TPMIndexHOC.js index 657a1ef6b..c366b21a3 100644 --- a/public/react/src/modules/tpm/TPMIndexHOC.js +++ b/public/react/src/modules/tpm/TPMIndexHOC.js @@ -202,48 +202,40 @@ export function TPMIndexHOC(WrappedComponent) { NORMAL = 6 # 普通用户 Anonymous = 7 # 普未登录 */ - //超管 + //超管0 isSuperAdmin = () => { // return false return this.state.coursedata&&this.state.coursedata.course_identity === 0 } - // 课堂管理等 + //超管、运维0-1 isClassManagement = () => { - // return this.state.coursedata&&this.state.coursedata.course_identity >= 0 && return this.state.coursedata&&this.state.coursedata.course_identity < 2 } - //老师等 + //超管、运维、课堂管理0-2 isAdminOrCreator = () => { - // return this.state.coursedata&&this.state.coursedata.course_identity >= 0 && return this.state.coursedata&&this.state.coursedata.course_identity < 3 } - // 助教等 + //超管、运维、课堂管理、老师0-3 isAdminOrTeacher = () => { - // return this.state.coursedata&&this.state.coursedata.course_identity >= 0 && return this.state.coursedata&&this.state.coursedata.course_identity < 4 } - // 老师、管理员等 + // 超管、运维、课堂管理、老师、助教0-4 isAdmin = () => { - // return false - // return this.state.coursedata&&this.state.coursedata.course_identity >= 0 && return this.state.coursedata&&this.state.coursedata.course_identity < 5 } - // 学生 + // 学生5 isStudent = () => { - // return true - // return this.state.coursedata&&this.state.coursedata.course_identity >= 0 && return this.state.coursedata&&this.state.coursedata.course_identity === 5 } + // 超管、运维、课堂管理、老师、助教、学生0-5 isAdminOrStudent = () => { - // return this.state.coursedata&&this.state.coursedata.course_identity >= 0 && return this.state.coursedata&&this.state.coursedata.course_identity <= 5 } - // 非课堂成员 + // 游客未登录/非课堂成员6> isNotMember = () => { - // return this.state.coursedata&&this.state.coursedata.course_identity >= 0 && return this.state.coursedata&&this.state.coursedata.course_identity >= 6 } - + //课堂是否已结束 isCourseEnd = () => { return this.state.current_user ? this.state.current_user.course_is_end : false }