diff --git a/app/controllers/containers_controller.rb b/app/controllers/containers_controller.rb index 2c7178e3..ea540b1e 100644 --- a/app/controllers/containers_controller.rb +++ b/app/controllers/containers_controller.rb @@ -17,8 +17,10 @@ def show @container.assignments.container_managers ).includes(:user, :role) @assignment = @container.assignments.build - @container_contest_descriptions = @container.contest_descriptions.reorder('contest_descriptions.name ASC') - @active_contest_descriptions = @container.contest_descriptions.active.reorder('contest_descriptions.name ASC') + @container_contest_descriptions = @container.contest_descriptions + .includes(contest_instances: :entries) + .reorder('contest_descriptions.name ASC') + @active_contest_descriptions = @container_contest_descriptions.select(&:active?) end def new diff --git a/app/helpers/contest_descriptions_helper.rb b/app/helpers/contest_descriptions_helper.rb index bbf49b1c..562abce0 100644 --- a/app/helpers/contest_descriptions_helper.rb +++ b/app/helpers/contest_descriptions_helper.rb @@ -1,10 +1,9 @@ module ContestDescriptionsHelper def contest_description_entries_link(description) - active_instances = description.contest_instances.where(active: true) - return nil if active_instances.empty? + first_active = description.contest_instances.detect(&:active?) + return nil unless first_active - first_active = active_instances.first - entry_count = first_active.entries.where(deleted: false).count + entry_count = first_active.entries.reject(&:deleted).size link_to("Active: #{pluralize(entry_count, 'entry')}", container_contest_description_contest_instance_path(description.container, description, first_active), class: 'btn btn-sm btn-primary small') @@ -12,7 +11,7 @@ def contest_description_entries_link(description) def contest_description_summary(description) total_instances = description.contest_instances.count - active_instances = description.contest_instances.where(active: true) + active_instances = description.contest_instances.select(&:active?) summary = '' if active_instances.any? summary += contest_description_entries_link(description).to_s