vrfs-774: changed search counter names to use search_ prefix; added recording and sessions counters
This commit is contained in:
parent
16cddf67d2
commit
0813c6efd0
|
|
@ -51,7 +51,7 @@ module JamRuby
|
|||
case ordering = self.musician_order_param(params)
|
||||
when :plays
|
||||
when :followed
|
||||
sel_str = "COUNT(follows) AS follow_count, #{sel_str}"
|
||||
sel_str = "COUNT(follows) AS search_follow_count, #{sel_str}"
|
||||
rel = rel.joins("LEFT JOIN users_followers AS follows ON follows.user_id = users.id")
|
||||
rel = rel.group("users.id")
|
||||
rel = rel.order("COUNT(follows) DESC, users.created_at DESC")
|
||||
|
|
@ -59,7 +59,11 @@ module JamRuby
|
|||
end
|
||||
|
||||
rel = rel.joins("LEFT JOIN friendships AS friends ON friends.user_id = users.id")
|
||||
sel_str = "#{sel_str}, COUNT(friends) AS friend_count"
|
||||
sel_str = "#{sel_str}, COUNT(friends) AS search_friend_count"
|
||||
rel = rel.joins("LEFT JOIN recordings AS records ON records.owner_id = users.id")
|
||||
sel_str = "#{sel_str}, COUNT(records) AS search_recording_count"
|
||||
rel = rel.joins("LEFT JOIN music_sessions AS sessions ON sessions.user_id = users.id")
|
||||
sel_str = "#{sel_str}, COUNT(sessions) AS search_session_count"
|
||||
rel = rel.select(sel_str)
|
||||
|
||||
perpage = params[:per_page] || M_PER_PAGE
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ describe User do
|
|||
results = Search.musician_search(params)
|
||||
results.musicians.count.should == 2
|
||||
|
||||
results.musicians[0].follow_count.to_i.should_not == 0
|
||||
results.musicians[0].search_follow_count.to_i.should_not == 0
|
||||
end
|
||||
|
||||
it "should have friends counter " do
|
||||
|
|
@ -63,7 +63,36 @@ describe User do
|
|||
results = Search.musician_search
|
||||
friend = results.musicians.detect { |mm| mm.id == @user1.id }
|
||||
friend.should_not == nil
|
||||
friend.friend_count.should == 1
|
||||
friend.search_friend_count.to_i.should == 1
|
||||
end
|
||||
|
||||
it "should have recording counter " do
|
||||
connection = FactoryGirl.create(:connection, :user => @user1)
|
||||
instrument = FactoryGirl.create(:instrument, :description => 'a great instrument')
|
||||
track = FactoryGirl.create(:track, :connection => connection, :instrument => instrument)
|
||||
music_session = FactoryGirl.create(:music_session, :creator => @user1, :musician_access => true)
|
||||
music_session.connections << connection
|
||||
music_session.save
|
||||
recording = Recording.start(music_session.id, @user1)
|
||||
recording.stop
|
||||
recording.reload
|
||||
genre = FactoryGirl.create(:genre)
|
||||
recording.claim(@user1, "name", genre, true, true)
|
||||
recording.reload
|
||||
recording.users.length.should == 1
|
||||
recording.users.first.should == @user1
|
||||
@user1.reload
|
||||
@user1.recordings.length.should == 1
|
||||
@user1.recordings.first.should == recording
|
||||
recording.claimed_recordings.length.should == 1
|
||||
@user1.recordings.detect { |rr| rr == recording }.should_not be nil
|
||||
|
||||
results = Search.musician_search
|
||||
uu = results.musicians.detect { |mm| mm.id == @user1.id }
|
||||
uu.should_not == nil
|
||||
|
||||
uu.search_recording_count.to_i.should == 1
|
||||
uu.search_session_count.to_i.should == 1
|
||||
end
|
||||
|
||||
it "should find all musicians sorted by plays " do
|
||||
|
|
|
|||
|
|
@ -123,8 +123,10 @@
|
|||
musician_location: mm.city + ', ' + mm.state,
|
||||
instruments: instr_logos,
|
||||
biography: mm['biography'],
|
||||
follow_count: mm['follow_count'],
|
||||
friend_count: mm['friend_count'],
|
||||
follow_count: mm['search_follow_count'],
|
||||
friend_count: mm['search_friend_count'],
|
||||
recording_count: mm['search_recording_count'],
|
||||
session_count: mm['search_session_count'],
|
||||
musician_follow_template: follows
|
||||
};
|
||||
renderings += context.JK.fillTemplate(mTemplate, mVals);
|
||||
|
|
|
|||
|
|
@ -24,8 +24,10 @@ unless @search.musicians.nil? || @search.musicians.size == 0
|
|||
node :name do |uu| uu.following.name end
|
||||
end
|
||||
|
||||
node :follow_count do |musician| musician.follow_count end
|
||||
node :friend_count do |musician| musician.friend_count end
|
||||
node :follow_count do |musician| musician.search_follow_count.to_i rescue 0 end
|
||||
node :friend_count do |musician| musician.search_friend_count.to_i rescue 0 end
|
||||
node :recording_count do |musician| musician.search_recording_count.to_i rescue 0 end
|
||||
node :session_count do |musician| musician.search_session_count.to_i rescue 0 end
|
||||
}
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
{instruments}
|
||||
</div>
|
||||
<br clear="all" /><br />
|
||||
{follow_count} <img src="../assets/content/icon_friend.png" width="14" height="12" align="absmiddle" /> 4 <img src="../assets/content/icon_followers.png" width="22" height="12" align="absmiddle" /> 17 <img src="../assets/content/icon_recordings.png" width="12" height="13" align="absmiddle" /> 64 <img src="../assets/content/icon_session_tiny.png" width="12" height="12" align="absmiddle" /></span><br /><br />
|
||||
{friend_count} <img src="../assets/content/icon_friend.png" width="14" height="12" align="absmiddle" /> {follow_count} <img src="../assets/content/icon_followers.png" width="22" height="12" align="absmiddle" /> {recording_count} <img src="../assets/content/icon_recordings.png" width="12" height="13" align="absmiddle" /> {session_count} <img src="../assets/content/icon_session_tiny.png" width="12" height="12" align="absmiddle" /></span><br /><br />
|
||||
|
||||
</div>
|
||||
<div class="left ml35 f11 whitespace w40"><br />
|
||||
|
|
|
|||
|
|
@ -10,6 +10,10 @@ namespace :db do
|
|||
make_followings
|
||||
end
|
||||
|
||||
task populate_friends: :environment do
|
||||
make_friends
|
||||
end
|
||||
|
||||
desc "Fill database with music session sample data"
|
||||
task populate_music_sessions: :environment do
|
||||
make_users(10) if 14 > User.count
|
||||
|
|
@ -118,4 +122,13 @@ def make_followings
|
|||
uuu.followings << uu
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def make_friends
|
||||
users = User.all
|
||||
users[6..-1].each do |uu|
|
||||
users[0..5].shuffle.each do |uuu|
|
||||
Friendship.save(uu.id, uuu.id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -82,9 +82,13 @@ describe "Musician Search API", :type => :api do
|
|||
musician["id"].should == @user4.id
|
||||
followings= musician['followings']
|
||||
followings.length.should == 3
|
||||
musician['follow_count'].to_i.should > 0
|
||||
|
||||
friend = response['musicians'].detect { |mm| mm['id'] == @user1.id }
|
||||
friend['friend_count'].should == 1
|
||||
|
||||
musician['recording_count'].should == 0
|
||||
musician['session_count'].should == 0
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in New Issue