Suggest closest contestant name when converting a message to completion
All checks were successful
CI / scan_ruby (push) Successful in 22s
CI / scan_js (push) Successful in 12s
CI / lint (push) Successful in 13s
CI / test (push) Successful in 39s

This commit is contained in:
sto
2025-06-25 08:54:02 +02:00
parent 2cadc8eca5
commit 1a8ea0afee
4 changed files with 20 additions and 2 deletions

View File

@@ -74,7 +74,6 @@ class MessagesController < ApplicationController
@action_name = t("helpers.buttons.back")
@action_path = contest_path(@contest)
@message = Message.find(params[:message_id])
@completion = Completion.new()
@completion.display_time_from_start = @message.display_time
@@ -96,7 +95,19 @@ class MessagesController < ApplicationController
end
def set_data
@contestants = @contest.contestants.order(:name)
@message = Message.find(params[:message_id])
@puzzles = @contest.puzzles
@contestants = @contest.contestants.order(:name)
if @contestants.size > 0
@closest_contestant = @contestants.first
closest_distance = 10000
@contestants.each do |contestant|
distance = DamerauLevenshtein.distance(@message.author, contestant.name)
if distance < closest_distance
closest_distance = distance
@closest_contestant = contestant
end
end
end
end
end

View File

@@ -22,6 +22,10 @@
.form-floating
= form.select :contestant_id, @contestants.map { |contestant| [contestant.form_name, contestant.id] }, {}, class: "form-select"
= form.label :contestant_id
- if @closest_contestant
javascript:
el = document.querySelector('select[name="completion[contestant_id]"]');
el.value = "#{@closest_contestant.id}"
- if @puzzles.size > 1
.row.mb-3
.col