diff --git a/app/views/admin/conferences/_todo_list.html.haml b/app/views/admin/conferences/_todo_list.html.haml index 6a091f11..cd98391d 100644 --- a/app/views/admin/conferences/_todo_list.html.haml +++ b/app/views/admin/conferences/_todo_list.html.haml @@ -21,14 +21,16 @@ = link_to 'Set up call for papers', admin_conference_program_cfp_path(conference_progress['short_title']) - else Set up call for papers - %li{ 'class' => "list-group-item #{class_for_todo(conference_progress['venue'])}" } - %span{ 'class' => icon_for_todo(conference_progress['venue']) } - - if can? :update, @conference.venue + %li{'class'=>"list-group-item #{class_for_todo(conference_progress['venue'])}"} + %span{'class'=>icon_for_todo(conference_progress['venue'])} + - if can? :update, Venue.new(conference: @conference) + - @conference.reload - if conference.venue = link_to 'Add venue', edit_admin_conference_venue_path(conference_progress['short_title']) - else = link_to 'Add venue', new_admin_conference_venue_path(conference_progress['short_title']) - else + - @conference.reload Add venue %li{ 'class' => "list-group-item #{class_for_todo(conference_progress['rooms'])}" } %span{ 'class' => icon_for_todo(conference_progress['rooms']) } diff --git a/spec/features/ability_spec.rb b/spec/features/ability_spec.rb index 6e884a68..e304b4b2 100644 --- a/spec/features/ability_spec.rb +++ b/spec/features/ability_spec.rb @@ -7,14 +7,16 @@ feature 'Has correct abilities' do let(:conference3) { create(:full_conference) } # user is info_desk let(:conference4) { create(:full_conference) } # user is volunteer coordinator let(:conference5) { create(:full_conference) } # user has no role + let(:conference6) { create(:conference) } # user is organizer, venue is not set by default - let(:role_organizer) { Role.find_by(name: 'organizer', resource: conference1) } + let(:role_organizer_conf1) { Role.find_by(name: 'organizer', resource: conference1) } + let(:role_organizer_conf6) { Role.find_by(name: 'organizer', resource: conference6) } let(:role_cfp) { Role.find_by(name: 'cfp', resource: conference2) } let(:role_info_desk) { Role.find_by(name: 'info_desk', resource: conference3) } let(:role_volunteers_coordinator) { Role.find_by(name: 'volunteers_coordinator', resource: conference4) } let(:user) { create(:user) } - let(:user_organizer) { create(:user, role_ids: [role_organizer.id]) } + let(:user_organizer) { create(:user, role_ids: [role_organizer_conf1.id, role_organizer_conf6.id]) } let(:user_cfp) { create(:user, role_ids: [role_cfp.id]) } let(:user_info_desk) { create(:user, role_ids: [role_info_desk.id]) } let(:user_volunteers_coordinator) { create(:user, role_ids: [role_volunteers_coordinator.id]) } @@ -58,6 +60,9 @@ feature 'Has correct abilities' do expect(page).to have_link('Roles', href: "/admin/conferences/#{conference1.short_title}/roles") expect(page).to have_link('Resources', href: "/admin/conferences/#{conference1.short_title}/resources") + visit admin_conference_path(conference6.short_title) + expect(page).to have_link('Add venue', href: "/admin/conferences/#{conference6.short_title}/venue/new") + visit edit_admin_conference_path(conference1.short_title) expect(current_path).to eq(edit_admin_conference_path(conference1.short_title))