diff --git a/ruby/lib/jam_ruby/models/search.rb b/ruby/lib/jam_ruby/models/search.rb
index eab56e42c..994edaf99 100644
--- a/ruby/lib/jam_ruby/models/search.rb
+++ b/ruby/lib/jam_ruby/models/search.rb
@@ -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
diff --git a/ruby/spec/jam_ruby/models/musician_search_spec.rb b/ruby/spec/jam_ruby/models/musician_search_spec.rb
index 9273df929..576af01ec 100644
--- a/ruby/spec/jam_ruby/models/musician_search_spec.rb
+++ b/ruby/spec/jam_ruby/models/musician_search_spec.rb
@@ -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
diff --git a/web/app/assets/javascripts/findMusician.js b/web/app/assets/javascripts/findMusician.js
index db6f30ed0..8b3ad8b63 100644
--- a/web/app/assets/javascripts/findMusician.js
+++ b/web/app/assets/javascripts/findMusician.js
@@ -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);
diff --git a/web/app/views/api_search/index.rabl b/web/app/views/api_search/index.rabl
index 2d4b04684..0df188af6 100644
--- a/web/app/views/api_search/index.rabl
+++ b/web/app/views/api_search/index.rabl
@@ -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
diff --git a/web/app/views/clients/_musicians.html.erb b/web/app/views/clients/_musicians.html.erb
index 9818fbb56..dc8974dcc 100644
--- a/web/app/views/clients/_musicians.html.erb
+++ b/web/app/views/clients/_musicians.html.erb
@@ -42,7 +42,7 @@
{instruments}
- {follow_count}
4
17
64 ![]()
+ {friend_count}
{follow_count}
{recording_count}
{session_count} ![]()