Implement missing & remaining pieces propagation + cleaner forms
This commit is contained in:
@@ -24,6 +24,7 @@ class CompletionsController < ApplicationController
|
||||
end
|
||||
|
||||
@completion = Completion.new
|
||||
@completion.completed = true
|
||||
if params[:contestant_id]
|
||||
@completion.contestant_id = params[:contestant_id]
|
||||
end
|
||||
@@ -111,6 +112,6 @@ class CompletionsController < ApplicationController
|
||||
end
|
||||
|
||||
def completion_params
|
||||
params.expect(completion: [ :display_time_from_start, :remaining_pieces, :contestant_id, :message_id, :puzzle_id ])
|
||||
params.expect(completion: [ :display_time_from_start, :completed, :missing_pieces, :remaining_pieces, :contestant_id, :message_id, :puzzle_id ])
|
||||
end
|
||||
end
|
||||
|
||||
@@ -131,7 +131,7 @@ class ContestsController < ApplicationController
|
||||
not_found and return
|
||||
end
|
||||
|
||||
if @offline.images.length > 1
|
||||
if @offline.submitted
|
||||
render :offline_already_submitted and return
|
||||
end
|
||||
end
|
||||
@@ -144,11 +144,15 @@ class ContestsController < ApplicationController
|
||||
not_found and return
|
||||
end
|
||||
|
||||
@offline.completed = true
|
||||
@offline.submitted = true
|
||||
@offline.completed = params[:offline][:completed]
|
||||
@offline.end_time = Time.now()
|
||||
@offline.images.attach(params[:offline][:end_image])
|
||||
@offline.missing_pieces = params[:offline][:missing_pieces]
|
||||
@offline.remaining_pieces = params[:offline][:remaining_pieces]
|
||||
if @offline.completed
|
||||
@offline.missing_pieces = params[:offline][:missing_pieces]
|
||||
else
|
||||
@offline.remaining_pieces = params[:offline][:remaining_pieces]
|
||||
end
|
||||
if @offline.save
|
||||
if @contest.puzzles.length > 0
|
||||
dp = display_time(@offline.end_time.to_i - @offline.start_time.to_i)
|
||||
@@ -156,7 +160,10 @@ class ContestsController < ApplicationController
|
||||
Completion.create(contest: @contest,
|
||||
contestant: contestant,
|
||||
puzzle: @contest.puzzles[0],
|
||||
display_time_from_start: dp)
|
||||
completed: @offline.completed,
|
||||
display_time_from_start: dp,
|
||||
missing_pieces: @offline.missing_pieces,
|
||||
remaining_pieces: @offline.remaining_pieces)
|
||||
extend_completions!(contestant)
|
||||
end
|
||||
redirect_to "/public/#{@contest.friendly_id}/offline/#{@offline.generate_token_for(:token)}/completed"
|
||||
|
||||
Reference in New Issue
Block a user