Correctly order participants
This commit is contained in:
@@ -15,7 +15,7 @@ class ContestsController < ApplicationController
|
||||
@title = I18n.t("contests.show.title", name: @contest.name)
|
||||
@action_name = t("helpers.buttons.edit")
|
||||
@action_path = edit_contest_path(@contest)
|
||||
@contestants = @contest.contestants.order(:name)
|
||||
@contestants = @contest.contestants.sort_by { |contestant| [ -contestant.completions.size, contestant.time_seconds ] }
|
||||
@puzzles = @contest.puzzles.order(:id)
|
||||
@messages = @contest.messages.order(:time_seconds)
|
||||
set_badges
|
||||
@@ -66,7 +66,7 @@ class ContestsController < ApplicationController
|
||||
authorize @contest
|
||||
|
||||
@title = I18n.t("contests.scoreboard.title", name: @contest.name)
|
||||
@contestants = @contest.contestants.order(:name)
|
||||
@contestants = @contest.contestants.sort_by { |contestant| [ -contestant.completions.size, contestant.time_seconds ] }
|
||||
@puzzles = @contest.puzzles.order(:id)
|
||||
render :scoreboard
|
||||
end
|
||||
|
@@ -6,6 +6,7 @@
|
||||
# display_time :string
|
||||
# email :string
|
||||
# name :string
|
||||
# time_seconds :integer
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
# contest_id :integer not null
|
||||
@@ -22,5 +23,14 @@ class Contestant < ApplicationRecord
|
||||
belongs_to :contest
|
||||
has_many :completions
|
||||
|
||||
before_create :initialize_time_seconds
|
||||
|
||||
validates :name, presence: true
|
||||
validates :time_seconds, presence: true
|
||||
|
||||
private
|
||||
|
||||
def initialize_time_seconds
|
||||
self.time_seconds = 0
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user