diff --git a/ruby/lib/jam_ruby/models/music_session.rb b/ruby/lib/jam_ruby/models/music_session.rb index 438fd65e1..fef9b8e85 100644 --- a/ruby/lib/jam_ruby/models/music_session.rb +++ b/ruby/lib/jam_ruby/models/music_session.rb @@ -10,6 +10,8 @@ module JamRuby attr_accessor :legal_terms, :language_description, :scheduled_start_time, :access_description + attr_accessor :approved_rsvps, :open_slots, :pending_invitations + self.table_name = "music_sessions" self.primary_key = 'id' diff --git a/web/app/controllers/music_sessions_controller.rb b/web/app/controllers/music_sessions_controller.rb index 7abf61be5..226142a58 100644 --- a/web/app/controllers/music_sessions_controller.rb +++ b/web/app/controllers/music_sessions_controller.rb @@ -9,7 +9,6 @@ class MusicSessionsController < ApplicationController def session_info @can_view = true - @can_comment = false # check whether user is logged in if current_user.nil? @@ -28,15 +27,8 @@ class MusicSessionsController < ApplicationController if @music_session.scheduled_start > Time.now.utc if @music_session.creator.id == current_user.id || @music_session.open_rsvps || has_invitation @can_view = true - @can_comment = true else @can_view = false - @can_comment = false - end - - # only allow comments for invitees before the session has started - unless has_invitation - @can_comment = true end # session has started diff --git a/web/app/views/api_rsvp_requests/show.rabl b/web/app/views/api_rsvp_requests/show.rabl index 8e9760e34..cda178bc4 100644 --- a/web/app/views/api_rsvp_requests/show.rabl +++ b/web/app/views/api_rsvp_requests/show.rabl @@ -1,6 +1,6 @@ object @rsvp_request -attributes :id, :canceled, :cancel_all, :created_at +attributes :id, :user_id, :canceled, :cancel_all, :created_at child(:user => :user) { attributes :id, :name, :photo_url diff --git a/web/app/views/music_sessions/session_info.html.haml b/web/app/views/music_sessions/session_info.html.haml index 413c71067..fa33f1fce 100644 --- a/web/app/views/music_sessions/session_info.html.haml +++ b/web/app/views/music_sessions/session_info.html.haml @@ -15,7 +15,7 @@ %span.f12 Session Creator %br/ %br/ - - if current_user.id != @music_session.creator.id + - if current_user.id != @music_session.creator.id || (@open_slots.blank? && !@approved_rsvps.include?(current_user)) .f12.call-to-action %br/ %a.button-orange{:id => "btn-action"} diff --git a/web/spec/features/session_info_spec.rb b/web/spec/features/session_info_spec.rb index fa97473c7..85e2b3e64 100644 --- a/web/spec/features/session_info_spec.rb +++ b/web/spec/features/session_info_spec.rb @@ -108,9 +108,6 @@ describe "Session Info", :js => true, :type => :feature, :capybara_feature => tr # right sidebar - Pending Invitations find('div[user-id="' + @session_invitee.id + '"]') - - # comments - find('#txtSessionInfoComment') end def ensure_failure @@ -295,13 +292,17 @@ describe "Session Info", :js => true, :type => :feature, :capybara_feature => tr sign_out_poltergeist end - it "should allow only RSVP approvals or session invitees to add comments" do - end - it "should show no call to action button if user has not RSVPed and all slots are taken" do - end + pending + rs2 = RsvpRequestRsvpSlot.find_by_rsvp_request_id_and_rsvp_slot_id(@rsvp1.id, @slot2.id) - it "should show no call to action button for session organizer" do + # approve slot 2 as well to make all slots taken for this session + RsvpRequest.update({:id => @rsvp1.id, :session_id => @music_session.id, :rsvp_responses => [{:request_slot_id => rs2.id, :accept => true}]}, @session_creator) + + sign_in_poltergeist(@session_invitee) + visit @url + expect {find('#btn-action')}.to raise_error(Capybara::ElementNotFound) + sign_out_poltergeist end end