Skip to content

Commit 6f377b6

Browse files
authored
Merge branch 'master' into toshifumi/force_ssl
2 parents 9bc2bd0 + 536eab7 commit 6f377b6

File tree

4 files changed

+9
-7
lines changed

4 files changed

+9
-7
lines changed

app/controllers/admin/contests_controller.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def update_from_json
7373
name_en: json[:contest_name] || @contest.name_en
7474
)
7575
@contest.problems.destroy_all
76-
json[:problems].each.with_index(1) do |problem_json, i|
76+
json[:problems].each.with_index do |problem_json, i|
7777
problem = Problem.create(
7878
contest_id: @contest.id,
7979
name_ja: problem_json[:title],
@@ -82,7 +82,7 @@ def update_from_json
8282
description_en: problem_json[:statement],
8383
order: i
8484
)
85-
problem_json[:data_sets].each.with_index(1) do |data_set_json, j|
85+
problem_json[:data_sets].each.with_index do |data_set_json, j|
8686
DataSet.create(
8787
problem_id: problem.id,
8888
label: data_set_json[:label],

app/models/problem.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
class Problem < ApplicationRecord
22
belongs_to :contest
3-
has_many :data_sets, dependent: :destroy
3+
has_many :data_sets, -> { order(:order) }, dependent: :destroy
44
has_many :submissions, through: :data_sets
55

66
def name

app/views/admin/contests/json_upload.html.erb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,6 @@
2424

2525
<div class="actions">
2626
<%= f.submit %>
27+
<p>*JSONアップロードを行うと、このコンテストのサブミッションデータ等は全て抹消されます。注意してください。</p>
2728
</div>
2829
<% end %>

spec/controllers/admin/contests_controller_spec.rb

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,11 @@
105105
updated_contest = Contest.find_by(id: contest.id)
106106
expect(response).to redirect_to admin_contest_path(contest)
107107
expect(updated_contest.name_ja).to eq json[:contest_name]
108-
expect(updated_contest.problems.size).to eq 1
109-
expect(updated_contest.problems.first.name_ja).to eq 'A + B'
110-
expect(updated_contest.problems.first.data_sets.size).to eq 1
111-
expect(updated_contest.problems.first.data_sets.first.label).to eq 'Small'
108+
expect(updated_contest.problems.size).to eq json[:problems].size
109+
expect(updated_contest.problems.first.name_ja).to eq json[:problems].first[:title]
110+
expect(updated_contest.problems.first.order).to eq 0
111+
expect(updated_contest.problems.first.data_sets.size).to eq json[:problems].first[:data_sets].size
112+
expect(updated_contest.problems.first.data_sets.first.label).to eq json[:problems].first[:data_sets].first[:label]
112113
end
113114
end
114115

0 commit comments

Comments
 (0)