diff --git a/ruby/lib/jam_ruby/models/music_session.rb b/ruby/lib/jam_ruby/models/music_session.rb index 763b336ac..ebf25772c 100644 --- a/ruby/lib/jam_ruby/models/music_session.rb +++ b/ruby/lib/jam_ruby/models/music_session.rb @@ -568,10 +568,22 @@ module JamRuby return query end + # list all unique participants in a session, for any session that the current_user was once a part of def self.history(current_user, options) offset = options[:offset] || 0 limit = options[:limit] || 10 + #This results in + # SELECT DISTINCT ON(music_sessions.created_at, music_sessions.id, users.id ) music_sessions.id AS session_id, music_sessions_user_history.id AS session_history_id, music_sessions.created_at, music_sessions.name, music_sessions.description, music_sessions.musician_access, music_sessions.approval_required, music_sessions_user_history.instruments, users.first_name, users.last_name, users.photo_url, users.id AS user_id FROM "music_sessions" INNER JOIN + # music_sessions_user_history + # ON + # music_sessions.id = music_sessions_user_history.music_session_id + # INNER JOIN + # users + # ON + # music_sessions_user_history.user_id = users.id + # WHERE music_sessions.id IN ( SELECT DISTINCT music_sessions_user_history.music_session_id FROM music_sessions_user_history where user_id = '1886af5c-b76e-466b-b8d1-30d98e549521) ORDER BY music_sessions.created_at DESC LIMIT 100 OFFSET 1 + # MusicSession.joins( %Q{ INNER JOIN @@ -582,9 +594,10 @@ module JamRuby users ON music_sessions_user_history.user_id = users.id - WHERE users.id = '#{current_user.id}' + WHERE music_sessions.id IN ( SELECT DISTINCT music_sessions_user_history.music_session_id FROM music_sessions_user_history where user_id = '#{current_user.id}') + } - ).order('music_sessions.created_at DESC').select("music_sessions.id AS session_id, music_sessions_user_history.id AS session_history_id, music_sessions.created_at, music_sessions.name, music_sessions.description, music_sessions.musician_access, music_sessions.approval_required, music_sessions_user_history.instruments, users.first_name, users.last_name, users.photo_url, users.id AS user_id").offset(offset).limit(limit) + ).order('music_sessions.created_at DESC').select("DISTINCT ON(music_sessions.created_at, music_sessions.id, users.id ) music_sessions.id AS session_id, music_sessions_user_history.id AS session_history_id, music_sessions.created_at, music_sessions.name, music_sessions.description, music_sessions.musician_access, music_sessions.approval_required, music_sessions_user_history.instruments, users.first_name, users.last_name, users.photo_url, users.id AS user_id").offset(offset).limit(limit) end def self.scheduled user, only_public = false diff --git a/web/README.md b/web/README.md index df059fc3f..d81fccd32 100644 --- a/web/README.md +++ b/web/README.md @@ -1,4 +1,3 @@ - Jasmine Javascript Unit Tests =============================