diff --git a/Gemfile.lock b/Gemfile.lock --- a/Gemfile.lock +++ b/Gemfile.lock @@ -94,7 +94,6 @@ coffee-script-source (1.12.2) concurrent-ruby (1.1.5) crass (1.0.4) - diff-lcs (1.3) dynamic_form (1.1.4) erubi (1.8.0) erubis (2.7.0) @@ -211,23 +210,6 @@ rdiscount (2.2.0.1) regexp_parser (1.5.1) rouge (3.3.0) - rspec-core (3.8.2) - rspec-support (~> 3.8.0) - rspec-expectations (3.8.4) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.8.0) - rspec-mocks (3.8.1) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.8.0) - rspec-rails (3.8.2) - actionpack (>= 3.0) - activesupport (>= 3.0) - railties (>= 3.0) - rspec-core (~> 3.8.0) - rspec-expectations (~> 3.8.0) - rspec-mocks (~> 3.8.0) - rspec-support (~> 3.8.0) - rspec-support (3.8.2) ruby-progressbar (1.10.0) ruby_dep (1.5.0) ruby_parser (3.13.1) @@ -338,7 +320,6 @@ rails_bootstrap_sortable rdiscount rouge - rspec-rails sassc-rails select2-rails selenium-webdriver diff --git a/app/models/problem.rb b/app/models/problem.rb --- a/app/models/problem.rb +++ b/app/models/problem.rb @@ -31,7 +31,7 @@ def self.create_from_import_form_params(params, old_problem=nil) org_problem = old_problem || Problem.new - import_params, problem = Problem.extract_params_and_check(params, + import_params, problem = Problem.extract_params_and_check(params, org_problem) if !problem.errors.empty? @@ -52,8 +52,8 @@ importer = TestdataImporter.new(problem) - if not importer.import_from_file(import_params[:file], - import_params[:time_limit], + if not importer.import_from_file(import_params[:file], + import_params[:time_limit], import_params[:memory_limit], import_params[:checker_name], import_to_db) diff --git a/app/views/problems/import.html.haml b/app/views/problems/import.html.haml --- a/app/views/problems/import.html.haml +++ b/app/views/problems/import.html.haml @@ -8,7 +8,7 @@ - if @problem and @problem.errors =error_messages_for 'problem' -= simple_form_for :problem, url: do_import_problems_path, :multipart => true do |f| += form_tag do_import_problems_path, :multipart => true do |f| .submitbox %table diff --git a/db/seeds.rb b/db/seeds.rb --- a/db/seeds.rb +++ b/db/seeds.rb @@ -267,12 +267,12 @@ def seed_more_languages Language.delete_all - Language.create( name: 'c', pretty_name: 'C', ext: 'c', common_ext: 'c' ) - Language.create( name: 'cpp', pretty_name: 'C++', ext: 'cpp', common_ext: 'cpp,cc' ) - Language.create( name: 'pas', pretty_name: 'Pascal', ext: 'pas', common_ext: 'pas' ) - Language.create( name: 'ruby', pretty_name: 'Ruby', ext: 'rb', common_ext: 'rb' ) - Language.create( name: 'python', pretty_name: 'Python', ext: 'py', common_ext: 'py' ) - Language.create( name: 'java', pretty_name: 'Java', ext: 'java', common_ext: 'java' ) + Language.find_or_create_by( name: 'c', pretty_name: 'C', ext: 'c', common_ext: 'c' ) + Language.find_or_create_by( name: 'cpp', pretty_name: 'C++', ext: 'cpp', common_ext: 'cpp,cc' ) + Language.find_or_create_by( name: 'pas', pretty_name: 'Pascal', ext: 'pas', common_ext: 'pas' ) + Language.find_or_create_by( name: 'ruby', pretty_name: 'Ruby', ext: 'rb', common_ext: 'rb' ) + Language.find_or_create_by( name: 'python', pretty_name: 'Python', ext: 'py', common_ext: 'py' ) + Language.find_or_create_by( name: 'java', pretty_name: 'Java', ext: 'java', common_ext: 'java' ) end seed_config diff --git a/lib/testdata_importer.rb b/lib/testdata_importer.rb --- a/lib/testdata_importer.rb +++ b/lib/testdata_importer.rb @@ -94,7 +94,7 @@ testdata_filename = File.join(Dir.tmpdir,"#{@problem.name}#{ext}") return nil if tempfile=="" - + if tempfile.instance_of?(Tempfile) tempfile.close FileUtils.move(tempfile.path,testdata_filename)