diff --git a/app/controllers/proposals_controller.rb b/app/controllers/proposals_controller.rb index 9608a1b4a..fc31e02f7 100644 --- a/app/controllers/proposals_controller.rb +++ b/app/controllers/proposals_controller.rb @@ -3,6 +3,7 @@ class ProposalsController < ApplicationController include ConferenceHelper before_action :authenticate_user!, except: %i[show new create] + before_action :set_is_admin load_resource :conference, find_by: :short_title load_resource :program, through: :conference, singleton: true load_and_authorize_resource :event, parent: false, through: :program @@ -31,12 +32,6 @@ def new @url = conference_program_proposals_path(@conference.short_title) @languages = @program.languages_list @superevents = @program.super_events - - if current_user.is_admin? - @event_types = @program.event_types - else - @event_types = @program.event_types.available_for_public - end end def edit @@ -224,4 +219,8 @@ def event_params def user_params params.require(:user).permit(:email, :password, :password_confirmation, :username) end + + def set_is_admin + @is_admin = current_user.is_admin + end end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 6edc74c84..4e3ad1fdb 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -122,8 +122,16 @@ def volunteer_links(event) end, ', ') end - def event_types_sentence(conference) - conference.event_types.map { |et| et.title.pluralize }.to_sentence + def event_types_sentence(conference, is_admin = true) + if is_admin + conference.event_types.map { |et| et.title.pluralize }.to_sentence + else + conference.event_types.available_for_public.map { |et| et.title.pluralize }.to_sentence + end + end + + def event_types_dropdown(conference, is_admin = true) + is_admin ? conference.event_types : conference.event_types.available_for_public end def sign_in_path diff --git a/app/views/proposals/_encouragement_text.html.haml b/app/views/proposals/_encouragement_text.html.haml index f7f6033f0..224f90f2a 100644 --- a/app/views/proposals/_encouragement_text.html.haml +++ b/app/views/proposals/_encouragement_text.html.haml @@ -1,7 +1,7 @@ %p.lead - if @program.event_types.any? You can submit proposals for - = "#{event_types_sentence(@conference)}." + = "#{event_types_sentence(@conference, @is_admin)}." - if @program.tracks.confirmed.cfp_active.any? Proposals should fit in one of the = "#{pluralize(@program.tracks.confirmed.cfp_active.count, 'track')}:" diff --git a/app/views/proposals/_submission_type_content_form.haml b/app/views/proposals/_submission_type_content_form.haml index 6a66fa5a1..5d9e634b1 100644 --- a/app/views/proposals/_submission_type_content_form.haml +++ b/app/views/proposals/_submission_type_content_form.haml @@ -2,8 +2,8 @@ %p Please select a submission type, then fill in the abstract and extended details. .form-group - = f.label :event_type_id, 'Type' - = f.select :event_type_id, event_type_select_options(@conference.program.event_types), { include_blank: false }, { class: 'select-help-toggle form-control' } + = f.label :event_type_id, "Type" + = f.select :event_type_id, event_type_select_options(event_types_dropdown(@conference, @is_admin)), { include_blank: false }, { class: 'select-help-toggle form-control' } - program.event_types.each do |event_type| .help-block.event_event_type_id.collapse{ id: "#{dom_id(event_type)}-help" }