From 5f70c54d8e5eb77e93d579b2b55cdc84b5b8f56c Mon Sep 17 00:00:00 2001 From: Nemo Date: Mon, 19 Mar 2018 00:56:39 +0530 Subject: [PATCH 1/2] Don't show emails or real-names in speaker-select-input - Fixes #1884 - Decided to remove real names as well, because the profile page calls out the username field as "how others users see you" --- app/helpers/application_helper.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index f0311c7a..57b1b01a 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -127,9 +127,13 @@ module ApplicationHelper end def speaker_selector_input(form) - users = User.active.pluck(:id, :name, :username, :email).map { |user| [user[0], user[1].blank? ? user[2] : user[1], user[2], user[3]] }.sort_by { |user| user[1].downcase } + users = User.active.pluck(:id, :username).map { |user| + [user[0], user[1]] + }.sort_by { |user| + user[1].downcase + } form.input :speakers, as: :select, - collection: options_for_select(users.map {|user| ["#{user[1]} (#{user[2]}) #{user[3]}", user[0]]}, @event.speakers.map(&:id)), + collection: options_for_select(users.map {|user| [user[1], user[0]]}, @event.speakers.map(&:id)), include_blank: false, label: 'Speakers', input_html: { class: 'select-help-toggle', multiple: 'true' } end From 6bf356223a421a2597f1273ee9ae3c04a51f91ce Mon Sep 17 00:00:00 2001 From: Nemo Date: Mon, 19 Mar 2018 01:04:23 +0530 Subject: [PATCH 2/2] Only show active conference participants as speakers - Instead of showing Users from all the events, only use the current conference participants instead --- app/helpers/application_helper.rb | 13 +++++++------ app/views/proposals/_proposal_form.html.haml | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 57b1b01a..fb061331 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -126,12 +126,13 @@ module ApplicationHelper safe_join(event.speakers.map{ |speaker| link_to speaker.name, admin_user_path(speaker) }, ',') end - def speaker_selector_input(form) - users = User.active.pluck(:id, :username).map { |user| - [user[0], user[1]] - }.sort_by { |user| - user[1].downcase - } + def speaker_selector_input(form, conference) + users = conference.participants.pluck(:id, :username).map do |user| + [user[0], user[1]] + end + + users = users.sort_by { |user| user[1].downcase } + form.input :speakers, as: :select, collection: options_for_select(users.map {|user| [user[1], user[0]]}, @event.speakers.map(&:id)), include_blank: false, label: 'Speakers', input_html: { class: 'select-help-toggle', multiple: 'true' } diff --git a/app/views/proposals/_proposal_form.html.haml b/app/views/proposals/_proposal_form.html.haml index 1b642d94..b67d6aff 100644 --- a/app/views/proposals/_proposal_form.html.haml +++ b/app/views/proposals/_proposal_form.html.haml @@ -4,7 +4,7 @@ = f.input :subtitle, as: :string - = speaker_selector_input f + = speaker_selector_input f, @conference = track_selector_input f