From 354f6320fc44a9f15efbd33a687627d7124795d3 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Sat, 6 Dec 2014 09:34:30 -0500 Subject: [PATCH] VRFS-2463 (1) prevent duplicate claimed recordings from showing in sidebar, (2) only show public recordings and sessions with fan_access=true, (3) exclude recording / session being shown on landing page in the sidebar --- ruby/lib/jam_ruby/models/band.rb | 12 ++++++++++-- ruby/lib/jam_ruby/models/user.rb | 16 +++++++++++++--- web/app/views/music_sessions/show.html.erb | 4 ++-- web/app/views/recordings/show.html.erb | 4 ++-- 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/ruby/lib/jam_ruby/models/band.rb b/ruby/lib/jam_ruby/models/band.rb index de3a47d54..256829783 100644 --- a/ruby/lib/jam_ruby/models/band.rb +++ b/ruby/lib/jam_ruby/models/band.rb @@ -78,14 +78,22 @@ module JamRuby lng end - def recent_history + def recent_history(session_id, recording_id) + + recording_exclusion = "claimed_recordings.id != '#{recording_id}'" if recording_id recordings = Recording .joins(:claimed_recordings) .where(:band_id => self.id) + .where('claimed_recordings.is_public=true') + .where(recording_exclusion) .order('created_at DESC') .limit(10) - msh = MusicSession.where(:band_id => self.id) + session_exclusion = "music_sessions.id != '#{session_id}'" if session_id + msh = MusicSession + .where(:band_id => self.id) + .where(:fan_access => true) + .where(session_exclusion) .order('created_at DESC') .limit(10) diff --git a/ruby/lib/jam_ruby/models/user.rb b/ruby/lib/jam_ruby/models/user.rb index ba874eb73..4c6bc1a0b 100644 --- a/ruby/lib/jam_ruby/models/user.rb +++ b/ruby/lib/jam_ruby/models/user.rb @@ -439,14 +439,24 @@ module JamRuby mods_json[:connection_expire_time_client] end - def recent_history + def recent_history(session_id, recording_id) + # used to exclude currently viewed recording + recording_exclusion = "claimed_recordings.id != '#{recording_id}'" if recording_id recordings = Recording .joins(:claimed_recordings) .where(:owner_id => self.id) + .where("claimed_recordings.user_id = '#{self.id}'") + .where('claimed_recordings.is_public=true') + .where(recording_exclusion) .order('created_at DESC') .limit(10) - - msh = MusicSession.where(:user_id => self.id) + + # used to exclude currently viewed session + session_exclusion = "music_sessions.id != '#{session_id}'" if session_id + msh = MusicSession + .where(:user_id => self.id) + .where(:fan_access => true) + .where(session_exclusion) .order('created_at DESC') .limit(10) diff --git a/web/app/views/music_sessions/show.html.erb b/web/app/views/music_sessions/show.html.erb index 34a626058..f3398a24c 100644 --- a/web/app/views/music_sessions/show.html.erb +++ b/web/app/views/music_sessions/show.html.erb @@ -109,9 +109,9 @@ <% else %> <% if signed_in? && @music_session.fan_access %> <% unless @music_session.band.nil? %> - <%= render :partial => "shared/landing_sidebar", :locals => {:user => @music_session.band, :recent_history => @music_session.band.recent_history} %> + <%= render :partial => "shared/landing_sidebar", :locals => {:user => @music_session.band, :recent_history => @music_session.band.recent_history(@music_session.id, nil)} %> <% else %> - <%= render :partial => "shared/landing_sidebar", :locals => {:user => @music_session.creator, :recent_history => @music_session.creator.recent_history} %> + <%= render :partial => "shared/landing_sidebar", :locals => {:user => @music_session.creator, :recent_history => @music_session.creator.recent_history(@music_session.id, nil)} %> <% end %> <% else %> <%= render :partial => "shared/cta_sidebar" %> diff --git a/web/app/views/recordings/show.html.erb b/web/app/views/recordings/show.html.erb index 6df8f601b..5bdda20f9 100644 --- a/web/app/views/recordings/show.html.erb +++ b/web/app/views/recordings/show.html.erb @@ -100,9 +100,9 @@ <% if !@claimed_recording.recording.deleted && (@claimed_recording.is_public || @claimed_recording.recording.has_access?(current_user)) %> <% if signed_in? %> <% unless @claimed_recording.recording.band.nil? %> - <%= render :partial => "shared/landing_sidebar", :locals => {:user => @claimed_recording.recording.band, :recent_history => @claimed_recording.recording.band.recent_history} %> + <%= render :partial => "shared/landing_sidebar", :locals => {:user => @claimed_recording.recording.band, :recent_history => @claimed_recording.recording.band.recent_history(nil, @claimed_recording.id)} %> <% else %> - <%= render :partial => "shared/landing_sidebar", :locals => {:user => @claimed_recording.recording.owner, :recent_history => @claimed_recording.recording.owner.recent_history} %> + <%= render :partial => "shared/landing_sidebar", :locals => {:user => @claimed_recording.recording.owner, :recent_history => @claimed_recording.recording.owner.recent_history(nil, @claimed_recording.id)} %> <% end %> <% else %> <%= render :partial => "shared/cta_sidebar" %>