Description:
[web] fixed test_request error when user does not put in any file git-svn-id: http://theory.cpe.ku.ac.th/grader/web/trunk@170 6386c4cd-e34a-4fa8-8920-d93eb39b512e
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r86:9bdacfc7b6d7 - - 3 files changed: 26 inserted, 9 deleted

@@ -11,25 +11,30
11 11 :redirect_to => { :action => :index }
12 12
13 13 def index
14 - @user = User.find(session[:user_id])
15 14 prepare_index_information
16 - @test_requests = @user.test_requests
17 15 end
18 16
19 17 def submit
20 18 @user = User.find(session[:user_id])
21 19
22 - if @user.site!=nil and @user.site.finished?
23 - flash[:notice] = 'Error saving your test submission: Contest is over.'
24 - redirect_to :action => 'index' and return
20 + @submitted_test_request = TestRequest.new_from_form_params(@user,params[:test_request])
21 +
22 + if @submitted_test_request.errors.length != 0
23 + prepare_index_information
24 + render :action => 'index' and return
25 25 end
26 26
27 - test_request = TestRequest.new_from_form_params(@user,params[:test_request])
28 - if test_request.save
27 + if @user.site!=nil and @user.site.finished?
28 + @submitted_test_request.errors.add_to_base('Contest is over.')
29 + prepare_index_information
30 + render :action => 'index' and return
31 + end
32 +
33 + if @submitted_test_request.save
29 34 redirect_to :action => 'index'
30 35 else
31 - flash[:notice] = 'Error saving your test submission'
32 - redirect_to :action => 'index'
36 + prepare_index_information
37 + render :action => 'index'
33 38 end
34 39 end
35 40
@@ -75,8 +80,10
75 80 protected
76 81
77 82 def prepare_index_information
83 + @user = User.find(session[:user_id])
78 84 @submissions = Submission.find_last_for_all_available_problems(@user.id)
79 85 @problems = @submissions.collect { |submission| submission.problem }
86 + @test_requests = @user.test_requests
80 87 end
81 88
82 89 end
@@ -57,6 +57,9
57 57 problem.id,
58 58 params[:submission_number])
59 59 test_request.input_file_name = save_input_file(params[:input_file], user, problem)
60 + if test_request.input_file_name == nil
61 + test_request.errors.add_to_base("No input submitted.")
62 + end
60 63 test_request.submitted_at = Time.new
61 64 test_request.status_inqueue
62 65 test_request
@@ -84,6 +87,10
84 87 new_file_name = random_input_file_name(user,problem)
85 88 dirname = File.dirname(new_file_name)
86 89 FileUtils.mkdir_p(File.dirname(new_file_name)) if !File.exists?(dirname)
90 +
91 + # when the user did not submit any file
92 + return nil if tempfile==""
93 +
87 94 if tempfile.instance_of?(Tempfile)
88 95 tempfile.close
89 96 FileUtils.move(tempfile.path,new_file_name)
@@ -30,6 +30,8
30 30 }
31 31 </script>
32 32
33 + <div class="submitbox">
34 + <%= error_messages_for 'submitted_test_request' %>
33 35 <% form_for :test_request, nil,
34 36 :url => { :action => 'submit'},
35 37 :html => { :multipart => true } do |f| %>
@@ -61,6 +63,7
61 63 </tr>
62 64 </table>
63 65 <% end %>
66 + </div>
64 67
65 68 <h3>Previous requests</h3>
66 69
You need to be logged in to leave comments. Login now