diff --git a/app/controllers/admin/conferences_controller.rb b/app/controllers/admin/conferences_controller.rb index 3905012c..d8c101d1 100644 --- a/app/controllers/admin/conferences_controller.rb +++ b/app/controllers/admin/conferences_controller.rb @@ -72,11 +72,12 @@ module Admin def new @conference = Conference.new + @organizations = Organization.accessible_by(current_ability, :update).pluck(:name, :id) end def create @conference = Conference.new(conference_params) - @conference.organization = Organization.find_or_create_by(name: 'organization') + if @conference.save # user that creates the conference becomes organizer of that conference current_user.add_role :organizer, @conference diff --git a/app/views/admin/conferences/new.html.haml b/app/views/admin/conferences/new.html.haml index 014758de..9e115457 100644 --- a/app/views/admin/conferences/new.html.haml +++ b/app/views/admin/conferences/new.html.haml @@ -2,6 +2,7 @@ .col-md-8 = semantic_form_for(@conference, url: admin_conferences_path) do |f| = f.inputs 'Basic Information' do + = f.input :organization, as: :select, collection: @organizations = f.input :title, hint: "The name of your conference as it shall appear throughout the site. Example: 'OpenSUSE Conference 2013'", input_html: { required: 'required' } = f.input :short_title, hint: "A short and unique handle for your conference, using only letters, numbers, underscores, and dashes. This will be used to identify your conference in URLs etc. Example: 'froscon2011'", diff --git a/spec/features/conference_spec.rb b/spec/features/conference_spec.rb index f3205e07..0dc4e228 100644 --- a/spec/features/conference_spec.rb +++ b/spec/features/conference_spec.rb @@ -2,13 +2,15 @@ require 'spec_helper' feature Conference do let!(:user) { create(:admin) } - + let!(:organization) { create(:organization) } shared_examples 'add and update conference' do scenario 'adds a new conference', feature: true, js: true do expected_count = Conference.count + 1 sign_in user visit new_admin_conference_path + + select organization.name, from: 'conference_organization_id' fill_in 'conference_title', with: 'Example Con' fill_in 'conference_short_title', with: 'ExCon' @@ -27,7 +29,7 @@ feature Conference do expect(flash) .to eq('Conference was successfully created.') expect(Conference.count).to eq(expected_count) - + expect(Conference.last.organization).to eq(organization) expect(user.has_role? :organizer, Conference.last).to eq(true) end