From 6dadc1bf481c6240559c6d6b54dd523d3e6e78f8 Mon Sep 17 00:00:00 2001 From: Katya Sarmiento <5871075+Kitkatnik@users.noreply.github.com> Date: Sun, 26 Apr 2026 02:16:16 -0400 Subject: [PATCH] Hide role-irrelevant schedule kind filters; show "Lightning Talks" Volunteer filter now shows only to Volunteers and Admins. Reception filter is hidden everywhere. Remaining filter buttons are alphabetized by display label, and the `lightning` kind shows as "Lightning Talks" in the filter and the badge on cards. The DB enum and controller filter param remain unchanged. --- app/helpers/schedule_helper.rb | 15 +++++++++++++++ app/views/admin/schedule_items/index.html.erb | 2 +- app/views/schedule/_session_item.html.erb | 11 +---------- app/views/shared/_kind_filter.html.erb | 4 ++-- 4 files changed, 19 insertions(+), 13 deletions(-) create mode 100644 app/helpers/schedule_helper.rb diff --git a/app/helpers/schedule_helper.rb b/app/helpers/schedule_helper.rb new file mode 100644 index 0000000..3317b59 --- /dev/null +++ b/app/helpers/schedule_helper.rb @@ -0,0 +1,15 @@ +module ScheduleHelper + KIND_DISPLAY_OVERRIDES = { "lightning" => "Lightning Talks" }.freeze + + def kind_display_label(kind) + return nil if kind.blank? + KIND_DISPLAY_OVERRIDES[kind.to_s] || kind.to_s.humanize + end + + def visible_filter_kinds(user) + ScheduleItem.kinds.keys.reject do |kind| + kind == "reception" || + (kind == "volunteer" && !(user&.volunteer? || user&.admin?)) + end.sort_by { |kind| kind_display_label(kind) } + end +end diff --git a/app/views/admin/schedule_items/index.html.erb b/app/views/admin/schedule_items/index.html.erb index bbb8368..107dd25 100644 --- a/app/views/admin/schedule_items/index.html.erb +++ b/app/views/admin/schedule_items/index.html.erb @@ -41,7 +41,7 @@