diff --git a/app/controllers/games_controller.rb b/app/controllers/games_controller.rb index b898b0474..4ac5a96ed 100644 --- a/app/controllers/games_controller.rb +++ b/app/controllers/games_controller.rb @@ -3,7 +3,7 @@ class GamesController < ApplicationController layout "base_myshixun" skip_before_filter :verify_authenticity_token, :only => [:file_update] before_filter :find_myshixun, :only => [:index] - before_filter :find_game, :only => [:show, :game_build, :entry,:next_step, :outputs_show, :file_edit, :file_update, :game_status, :change_status, :answer, :minus_score] + before_filter :find_game, :only => [:show, :game_build, :entry,:next_step, :outputs_show, :file_edit, :file_update, :game_status, :change_status, :answer, :minus_score, :refresh_game_list] before_filter :find_repository, :only => [:show, :entry, :file_edit, :file_update] before_filter :allowd_manager before_filter :allowd_view, :only => [:show] @@ -187,12 +187,13 @@ class GamesController < ApplicationController logger.info("##### resubmit_identifier is #{resubmit_identifier}") if params[:resubmit].blank? # 非重新评测 if had_done == 1 # 通过最后一关,即所有关卡 - reward_grade(@game.user, @game.id, @game.class, 1000) @myshixun.update_attribute(:status, 1) else # 通过当前一关 if @game.status == 2 @game.next_game.update_attribute(:status, 0) - reward_grade(@game.user, @game.id, @game.class, game_challenge.score) + unless @game.answer_open == 1 + reward_grade(@game.user, @game.id, @game.class, game_challenge.score) + end end end game_status = @game.status @@ -263,22 +264,16 @@ class GamesController < ApplicationController # viewed 1: 直接查看 2:弹框提示将要扣除积分,确定后显示内容 3:弹框提示分数不够 def answer challenge = @game.challenge - user = User.current @challenge_score = challenge.score.to_i - user_score = user.grade.to_i - @score = user_score - @challenge_score # 已经开启过 @answer = challenge.answer if @game.answer_open @viewed = 1 - logger.info("1 is #{@viewed}") else if @score >= 0 @viewed = 2 - logger.info("2 is #{@viewed}") else @viewed = 3 - logger.info("3 is #{@viewed}") end end respond_to do |format| @@ -291,18 +286,24 @@ class GamesController < ApplicationController @game_challenge = @game.challenge user = User.current challenge_score = @game_challenge.score.to_i - reward_grade(User.current, @game.id, 'Answer', -challenge_score) - user_score = user.grade.to_i - @score = user_score - challenge_score + reward_grade(user, @game.id, 'Answer', -challenge_score) @answer = @game_challenge.answer - - user.update_column(:grade, @score) @game.update_column(:answer_open, true) respond_to do |format| format.js end end + def refresh_game_list + myshixun_id = params[:myshixun_id] + @myshixun = Myshixun.find_by_identifier(myshixun_id) + @challenges = Challenge.where(:shixun_id => @myshixun.shixun_id) + + respond_to do |format| + format.js + end + end + private def test_set_static_data test_sets test_result = [] diff --git a/app/views/games/_pass_game_show.html.erb b/app/views/games/_pass_game_show.html.erb index dc9155ecb..717ecb2cc 100644 --- a/app/views/games/_pass_game_show.html.erb +++ b/app/views/games/_pass_game_show.html.erb @@ -2,7 +2,7 @@
\ No newline at end of file + + \ No newline at end of file diff --git a/app/views/games/refresh_game_list.js.erb b/app/views/games/refresh_game_list.js.erb new file mode 100644 index 000000000..ffb5e4d22 --- /dev/null +++ b/app/views/games/refresh_game_list.js.erb @@ -0,0 +1,2 @@ +$("#all_task_show").html("<%= j (render :partial => "games_list") %>"); +hideModal(); \ No newline at end of file diff --git a/app/views/games/show.js.erb b/app/views/games/show.js.erb index e11eaba6b..99d4bf53e 100644 --- a/app/views/games/show.js.erb +++ b/app/views/games/show.js.erb @@ -3,6 +3,7 @@ $("#game_show_content").html('<%= escape_javascript(render :partial => 'games/game_show') %>'); $("#myshixun_top").html('<%= escape_javascript(render :partial => 'myshixuns/myshixun_top') %>'); $("#current_task_tab").attr('href','<%= myshixun_game_path(@myshixun.current_task, :myshixun_id => @myshixun) %>'); + $("#all_task_show").html("<%= j (render :partial => "games_list") %>"); $("#all_task_show").hide(); fadein = 0; <% else %> diff --git a/app/views/layouts/base_course_community.html.erb b/app/views/layouts/base_course_community.html.erb index 273390463..48666f9da 100644 --- a/app/views/layouts/base_course_community.html.erb +++ b/app/views/layouts/base_course_community.html.erb @@ -30,89 +30,93 @@ -