diff --git a/app/controllers/main_controller.rb b/app/controllers/main_controller.rb --- a/app/controllers/main_controller.rb +++ b/app/controllers/main_controller.rb @@ -62,7 +62,11 @@ def source submission = Submission.find(params[:id]) if submission.user_id == session[:user_id] - fname = submission.problem.name + '.' + submission.language.ext + if submission.problem.output_only + fname = submission.source_filename + else + fname = submission.problem.name + '.' + submission.language.ext + end send_data(submission.source, {:filename => fname, :type => 'text/plain'}) diff --git a/app/controllers/problems_controller.rb b/app/controllers/problems_controller.rb --- a/app/controllers/problems_controller.rb +++ b/app/controllers/problems_controller.rb @@ -99,6 +99,10 @@ def stat @problem = Problem.find(params[:id]) - @submissions = Submission.find_all_last_by_problem(params[:id]) + if !@problem.available + redirect_to :controller => 'main', :action => 'list' + else + @submissions = Submission.find_all_last_by_problem(params[:id]) + end end end