Rework of completion forms
This commit is contained in:
@@ -14,7 +14,6 @@ class CompletionsController < ApplicationController
|
||||
authorize @contest
|
||||
|
||||
@completion = Completion.new
|
||||
@completion.completed = true
|
||||
if params[:contestant_id]
|
||||
@completion.contestant_id = params[:contestant_id]
|
||||
end
|
||||
@@ -25,6 +24,8 @@ class CompletionsController < ApplicationController
|
||||
|
||||
@completion = Completion.new(completion_params)
|
||||
@completion.contest = @contest
|
||||
process_completion
|
||||
|
||||
if @completion.save
|
||||
extend_completions!(@completion.contestant)
|
||||
if @contestant && !params[:completion].key?(:message_id)
|
||||
@@ -44,7 +45,10 @@ class CompletionsController < ApplicationController
|
||||
authorize @contest
|
||||
|
||||
@completion.contestant_id = params[:contestant_id] if params[:contestant_id]
|
||||
if @completion.update(completion_params)
|
||||
@completion.update(completion_params)
|
||||
process_completion
|
||||
|
||||
if @completion.update({})
|
||||
extend_completions!(@completion.contestant)
|
||||
if @contestant
|
||||
redirect_to edit_contest_contestant_path(@contest, @contestant), notice: t("completions.edit.notice")
|
||||
@@ -59,7 +63,9 @@ class CompletionsController < ApplicationController
|
||||
def destroy
|
||||
authorize @contest
|
||||
|
||||
contestant = @completion.contestant
|
||||
@completion.destroy
|
||||
extend_completions!(contestant)
|
||||
if params[:contestant_id]
|
||||
redirect_to contest_contestant_path(@contest, params[:contestant_id]), notice: t("completions.destroy.notice")
|
||||
else
|
||||
|
||||
@@ -41,6 +41,27 @@ module CompletionsConcern
|
||||
else
|
||||
contestant.update(display_time: display_time(completions[0].time_seconds), time_seconds: completions[0].time_seconds)
|
||||
end
|
||||
else
|
||||
contestant.update(display_time: nil, time_seconds: nil)
|
||||
end
|
||||
end
|
||||
|
||||
def process_completion
|
||||
if params.key?(:completed_radio) && params[:completed_radio] == "yes"
|
||||
@completion.completed = true
|
||||
end
|
||||
if params.key?(:completed_radio) && params[:completed_radio] == "no"
|
||||
@completion.completed = false
|
||||
end
|
||||
if params.key?(:pieces_radio)
|
||||
@pieces_radio = params[:pieces_radio]
|
||||
end
|
||||
if @pieces_radio == "assembled"
|
||||
begin
|
||||
puzzle = Puzzle.find(@completion.puzzle_id)
|
||||
@completion.remaining_pieces = puzzle.pieces - @completion.remaining_pieces
|
||||
rescue
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -221,10 +221,9 @@ class ContestantsController < ApplicationController
|
||||
@contest = @contestant.contest
|
||||
@puzzles = @contest.puzzles.where(hidden: false).or(@contest.puzzles.where(hidden: nil)).order(:id)
|
||||
@completion = Completion.new
|
||||
@completion.completed = true
|
||||
@completion.code = @contest.code
|
||||
|
||||
render "completions/_form", locals: { completion: @completion, submit_text: t("helpers.buttons.create"), method: :post, url: "/public/p/#{params[:contestant_id]}" }
|
||||
render "completions/_form", locals: { completion: @completion, submit_text: t("helpers.buttons.validate"), method: :post, url: "/public/p/#{params[:contestant_id]}" }
|
||||
end
|
||||
|
||||
def post_public_completion
|
||||
@@ -245,12 +244,14 @@ class ContestantsController < ApplicationController
|
||||
|
||||
@completion.contest = @contest
|
||||
@completion.contestant = @contestant
|
||||
process_completion
|
||||
|
||||
if @completion.save
|
||||
extend_completions!(@completion.contestant)
|
||||
redirect_to "/public/p/#{params[:contestant_id]}/updated"
|
||||
else
|
||||
@puzzles = @contest.puzzles
|
||||
render "completions/_form", locals: { completion: @completion, submit_text: t("helpers.buttons.create"), method: :post, url: "/public/p/#{params[:contestant_id]}" }, status: :unprocessable_entity
|
||||
render "completions/_form", locals: { completion: @completion, submit_text: t("helpers.buttons.validate"), method: :post, url: "/public/p/#{params[:contestant_id]}" }, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user