From ceaf4119afdb2998ec15342ffeb5fc12cd971d14 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Wed, 30 Jan 2013 10:43:01 -0500 Subject: [PATCH] added participants as filter criteria / fixed bug with genre filter --- lib/jam_ruby/models/music_session.rb | 7 ++++--- spec/jam_ruby/models/music_session_spec.rb | 24 +++++++++++----------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/lib/jam_ruby/models/music_session.rb b/lib/jam_ruby/models/music_session.rb index f876f5c3a..32cd4d030 100644 --- a/lib/jam_ruby/models/music_session.rb +++ b/lib/jam_ruby/models/music_session.rb @@ -38,7 +38,7 @@ module JamRuby # This is a little confusing. You can specify *BOTH* friends_only and my_bands_only to be true # If so, then it's an OR condition. If both are false, you can get sessions with anyone. - def self.index(current_user, genres = nil, friends_only = false, my_bands_only = false) + def self.index(current_user, participants = nil, genres = nil, friends_only = false, my_bands_only = false) query = MusicSession .joins( @@ -88,8 +88,9 @@ module JamRuby invitations.id IS NOT NULL } ) - - query = query.joins(:genres).where("genres.id" => genres) unless genres.nil? + + query = query.where("connections.user_id" => participants.split(',')) unless participants.nil? + query = query.joins(:genres).where("genres.id" => genres.split(',')) unless genres.nil? if my_bands_only query = query.joins( diff --git a/spec/jam_ruby/models/music_session_spec.rb b/spec/jam_ruby/models/music_session_spec.rb index a865124a8..a4dc8d611 100644 --- a/spec/jam_ruby/models/music_session_spec.rb +++ b/spec/jam_ruby/models/music_session_spec.rb @@ -154,7 +154,7 @@ describe MusicSession do session = FactoryGirl.create(:music_session, :creator => creator, :description => "Session", :genres => [genre]) user = FactoryGirl.create(:user) - music_sessions = MusicSession.index(user, [genre.id]) + music_sessions = MusicSession.index(user, nil, [genre.id]) music_sessions.length.should == 1 end @@ -165,7 +165,7 @@ describe MusicSession do session = FactoryGirl.create(:music_session, :creator => creator, :description => "Session", :genres => [genre1]) user = FactoryGirl.create(:user) - music_sessions = MusicSession.index(user, [genre2.id]) + music_sessions = MusicSession.index(user, nil, [genre2.id]) music_sessions.length.should == 0 end @@ -174,7 +174,7 @@ describe MusicSession do session = FactoryGirl.create(:music_session, :creator => creator, :description => "Session") user = FactoryGirl.create(:user) - music_sessions = MusicSession.index(user, nil, true) + music_sessions = MusicSession.index(user, nil, nil, true) music_sessions.length.should == 0 end @@ -186,13 +186,13 @@ describe MusicSession do FactoryGirl.create(:friendship, :user => user, :friend => creator) FactoryGirl.create(:connection, :user => creator, :music_session => session) - music_sessions = MusicSession.index(user, nil) + music_sessions = MusicSession.index(user, nil, nil) music_sessions.length.should == 1 - music_sessions = MusicSession.index(user, nil, true) + music_sessions = MusicSession.index(user, nil, nil, true) music_sessions.length.should == 1 - music_sessions = MusicSession.index(user, nil, false, true) + music_sessions = MusicSession.index(user, nil, nil, false, true) music_sessions.length.should == 0 - music_sessions = MusicSession.index(user, nil, true, true) + music_sessions = MusicSession.index(user, nil, nil, true, true) music_sessions.length.should == 1 end @@ -201,7 +201,7 @@ describe MusicSession do session = FactoryGirl.create(:music_session, :creator => creator, :description => "Session") user = FactoryGirl.create(:user) - music_sessions = MusicSession.index(user, nil, false, true) + music_sessions = MusicSession.index(user, nil, nil, false, true) music_sessions.length.should == 0 end @@ -213,13 +213,13 @@ describe MusicSession do FactoryGirl.create(:band_musician, :band => band, :user => creator) FactoryGirl.create(:band_musician, :band => band, :user => user) - music_sessions = MusicSession.index(user, nil) + music_sessions = MusicSession.index(user, nil, nil) music_sessions.length.should == 1 - music_sessions = MusicSession.index(user, nil, true) + music_sessions = MusicSession.index(user, nil, nil, true) music_sessions.length.should == 0 - music_sessions = MusicSession.index(user, nil, false, true) + music_sessions = MusicSession.index(user, nil, nil, false, true) music_sessions.length.should == 1 - music_sessions = MusicSession.index(user, nil, true, true) + music_sessions = MusicSession.index(user, nil, nil, true, true) music_sessions.length.should == 1 end