From 1b242a3bde846e37480352ce466714a88492dde7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 15 Feb 2026 07:31:46 +0000 Subject: [PATCH 1/5] Initial plan From cf8b35abc68b28d678b2069f7b5d5ee0ec4bafdd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 15 Feb 2026 07:34:14 +0000 Subject: [PATCH 2/5] Changes before error encountered Co-authored-by: maebeale <7607813+maebeale@users.noreply.github.com> --- app/controllers/workshop_ideas_controller.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/workshop_ideas_controller.rb b/app/controllers/workshop_ideas_controller.rb index 9dd9cf95f..6f70f78c5 100644 --- a/app/controllers/workshop_ideas_controller.rb +++ b/app/controllers/workshop_ideas_controller.rb @@ -68,18 +68,18 @@ def destroy # Optional hooks for setting variables for forms or index def set_form_variables - @age_ranges = Category.includes(:category_type).where("category_types.name = 'AgeRange'").pluck(:name) + @age_ranges = Category.joins(:category_type).where(category_types: { name: "AgeRange" }).pluck(:name) @potential_series_workshops = Workshop.published.order(:title) @sectors = Sector.published @windows_types = WindowsType.all @categories_grouped = Category - .includes(:category_type) + .joins(:category_type) + .where(category_types: { published: true }) .published .order(:position, :name) .group_by(&:category_type) - .select { |type, _| type.nil? || type.published? } - .sort_by { |type, _| type&.name.to_s.downcase } + .sort_by { |type, _| type.name.downcase } @workshop_idea.build_primary_asset if @workshop_idea.primary_asset.blank? @workshop_idea.gallery_assets.build end From 4e51b1cbe0d723b4e586206c3ed1ce1aa2d87e10 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 15 Feb 2026 21:29:45 +0000 Subject: [PATCH 3/5] Fix StoryIdeasController and WorkshopVariationIdeasController performance Co-authored-by: maebeale <7607813+maebeale@users.noreply.github.com> --- app/controllers/story_ideas_controller.rb | 4 ++-- app/controllers/workshop_variation_ideas_controller.rb | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/controllers/story_ideas_controller.rb b/app/controllers/story_ideas_controller.rb index 3dcd18424..1506323f4 100644 --- a/app/controllers/story_ideas_controller.rb +++ b/app/controllers/story_ideas_controller.rb @@ -87,9 +87,9 @@ def set_form_variables @windows_types = WindowsType.all @workshops = Workshop.order(:title) - @users = User.active.includes(:person) + @users = User.active.left_joins(:person) @users = @users.or(User.where(id: @story_idea.created_by_id)) if @story_idea&.created_by_id - @users = @users.distinct.order("people.first_name, people.last_name") + @users = @users.distinct.order(Arel.sql("COALESCE(people.first_name, users.first_name), COALESCE(people.last_name, users.last_name)")) @story_idea.build_primary_asset if @story_idea.primary_asset.blank? @story_idea.gallery_assets.build end diff --git a/app/controllers/workshop_variation_ideas_controller.rb b/app/controllers/workshop_variation_ideas_controller.rb index 0938a3231..9621464b7 100644 --- a/app/controllers/workshop_variation_ideas_controller.rb +++ b/app/controllers/workshop_variation_ideas_controller.rb @@ -89,6 +89,7 @@ def set_form_variables @organizations = authorized_scope(Organization.all).order(:name) @windows_types = WindowsType.order(:name) @users = User.active.or(User.where(id: @workshop_variation_idea.created_by_id)) + .distinct .order(:first_name, :last_name) end From e050261a78b56bf2048d40ec17295eb2c105483b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 15 Feb 2026 21:30:38 +0000 Subject: [PATCH 4/5] Extract user ordering logic into reusable scope Co-authored-by: maebeale <7607813+maebeale@users.noreply.github.com> --- app/controllers/story_ideas_controller.rb | 4 ++-- app/models/user.rb | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/controllers/story_ideas_controller.rb b/app/controllers/story_ideas_controller.rb index 1506323f4..63607d43b 100644 --- a/app/controllers/story_ideas_controller.rb +++ b/app/controllers/story_ideas_controller.rb @@ -87,9 +87,9 @@ def set_form_variables @windows_types = WindowsType.all @workshops = Workshop.order(:title) - @users = User.active.left_joins(:person) + @users = User.active @users = @users.or(User.where(id: @story_idea.created_by_id)) if @story_idea&.created_by_id - @users = @users.distinct.order(Arel.sql("COALESCE(people.first_name, users.first_name), COALESCE(people.last_name, users.last_name)")) + @users = @users.distinct.ordered_by_name @story_idea.build_primary_asset if @story_idea.primary_asset.blank? @story_idea.gallery_assets.build end diff --git a/app/models/user.rb b/app/models/user.rb index 471724c0b..4ce0ebdc2 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -66,6 +66,9 @@ class User < ApplicationRecord end scope :active, -> { where(inactive: false) } + scope :ordered_by_name, -> { + left_joins(:person).order(Arel.sql("COALESCE(people.first_name, users.first_name), COALESCE(people.last_name, users.last_name)")) + } def self.search_by_params(params) results = is_a?(ActiveRecord::Relation) ? self : all From 5a97e3b30fc033a3d47afe7410536e3097d4d506 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 15 Feb 2026 21:31:06 +0000 Subject: [PATCH 5/5] Use ordered_by_name scope in WorkshopVariationIdeasController for consistency Co-authored-by: maebeale <7607813+maebeale@users.noreply.github.com> --- app/controllers/workshop_variation_ideas_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/workshop_variation_ideas_controller.rb b/app/controllers/workshop_variation_ideas_controller.rb index 9621464b7..57ba8e813 100644 --- a/app/controllers/workshop_variation_ideas_controller.rb +++ b/app/controllers/workshop_variation_ideas_controller.rb @@ -90,7 +90,7 @@ def set_form_variables @windows_types = WindowsType.order(:name) @users = User.active.or(User.where(id: @workshop_variation_idea.created_by_id)) .distinct - .order(:first_name, :last_name) + .ordered_by_name end def workshop_variation_idea_params