From 570e517c28a2c353cc48350ddf4a4185031883cc Mon Sep 17 00:00:00 2001 From: sto Date: Fri, 21 Mar 2025 19:50:03 +0100 Subject: [PATCH] Improve completions --- app/controllers/completions_controller.rb | 8 ++++++-- app/models/completion.rb | 2 ++ app/views/contestants/_form.html.slim | 4 +++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/controllers/completions_controller.rb b/app/controllers/completions_controller.rb index 1518e2b..92769de 100644 --- a/app/controllers/completions_controller.rb +++ b/app/controllers/completions_controller.rb @@ -22,7 +22,7 @@ class CompletionsController < ApplicationController redirect_to contest_path(@contest) else logger = Logger.new(STDOUT) - logger.info(@completion.errors.full_messages) + logger.info(@completion.errors) @title = "New completion" render :new, status: :unprocessable_entity end @@ -42,7 +42,11 @@ class CompletionsController < ApplicationController def destroy @completion.destroy - redirect_to contest_path(@contest) + if params[:contestant_id] + redirect_to contest_contestant_path(@contest, params[:contestant_id]) + else + redirect_to contest_path(@contest) + end end private diff --git a/app/models/completion.rb b/app/models/completion.rb index cca6bfc..cba509d 100644 --- a/app/models/completion.rb +++ b/app/models/completion.rb @@ -6,4 +6,6 @@ class Completion < ApplicationRecord attr_accessor :display_time_from_start, :display_relative_time validates :time_seconds, presence: true + validates_numericality_of :time_seconds + validates :puzzle_id, uniqueness: { score: :contestant } end diff --git a/app/views/contestants/_form.html.slim b/app/views/contestants/_form.html.slim index 4e1ff09..20d1a80 100644 --- a/app/views/contestants/_form.html.slim +++ b/app/views/contestants/_form.html.slim @@ -43,8 +43,10 @@ td | #{completion.puzzle.name} - #{completion.puzzle.brand} td - a.btn.btn-sm.btn-secondary href=edit_contest_completion_path(@contest, completion, contestant.id) + a.btn.btn-sm.btn-secondary.me-2 href=edit_contest_completion_path(@contest, completion, contestant.id) | Edit + = link_to "Delete", contest_completion_path(contest, completion, contestant_id: contestant.id), + data: { turbo_method: :delete }, class: "btn btn-sm btn-secondary" .row .col a.btn.btn-primary href=new_contest_completion_path(@contest, contestant_id: contestant.id)