From 2cadc8eca56a102196f9a018ea85130c13678fd2 Mon Sep 17 00:00:00 2001 From: sto Date: Wed, 25 Jun 2025 08:31:42 +0200 Subject: [PATCH] Add completion: order contestants by name + add email if present --- app/controllers/completions_controller.rb | 2 +- app/controllers/messages_controller.rb | 2 +- app/models/contestant.rb | 8 ++++++++ app/views/completions/_form.html.slim | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/controllers/completions_controller.rb b/app/controllers/completions_controller.rb index 8c68f38..d54f4fd 100644 --- a/app/controllers/completions_controller.rb +++ b/app/controllers/completions_controller.rb @@ -100,7 +100,7 @@ class CompletionsController < ApplicationController end def set_data - @contestants = @contest.contestants + @contestants = @contest.contestants.order(:name) @puzzles = @contest.puzzles end diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index 4f429a9..acc18ee 100644 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -96,7 +96,7 @@ class MessagesController < ApplicationController end def set_data - @contestants = @contest.contestants + @contestants = @contest.contestants.order(:name) @puzzles = @contest.puzzles end end diff --git a/app/models/contestant.rb b/app/models/contestant.rb index d682344..dfa32c7 100644 --- a/app/models/contestant.rb +++ b/app/models/contestant.rb @@ -28,6 +28,14 @@ class Contestant < ApplicationRecord validates :name, presence: true validates :time_seconds, presence: true + def form_name + if email.present? + "#{name} - #{email}" + else + name + end + end + private def initialize_time_seconds_if_empty diff --git a/app/views/completions/_form.html.slim b/app/views/completions/_form.html.slim index 8029cbb..a5af54b 100644 --- a/app/views/completions/_form.html.slim +++ b/app/views/completions/_form.html.slim @@ -20,7 +20,7 @@ .row.mb-3 .col .form-floating - = form.select :contestant_id, @contestants.map { |contestant| [contestant.name, contestant.id] }, {}, class: "form-select" + = form.select :contestant_id, @contestants.map { |contestant| [contestant.form_name, contestant.id] }, {}, class: "form-select" = form.label :contestant_id - if @puzzles.size > 1 .row.mb-3