From a64414ccdff78a3c7548505bdfd8a049180047b0 Mon Sep 17 00:00:00 2001 From: Victor Costa Date: Thu, 13 Aug 2015 14:01:40 -0300 Subject: [PATCH] Generalize ranking --- lib/gamification_plugin/dashboard_helper.rb | 8 ++++---- views/gamification/_ranking.html.erb | 4 ++-- views/gamification/dashboard.html.erb | 8 +++++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/gamification_plugin/dashboard_helper.rb b/lib/gamification_plugin/dashboard_helper.rb index e5cd7ec..27475de 100644 --- a/lib/gamification_plugin/dashboard_helper.rb +++ b/lib/gamification_plugin/dashboard_helper.rb @@ -15,14 +15,14 @@ module GamificationPlugin::DashboardHelper HashWithIndifferentAccess.new(Merit::PointRules::AVAILABLE_RULES)[point.score.category][:description] end - def ranking(from_date=nil, limit=10) + def ranking(target, from_date=nil, limit=10) # FIXME move these queries to profile model - ranking = Profile.select('profiles.*, sum(num_points) as gamification_points, ROW_NUMBER() OVER(order by sum(num_points) DESC) as gamification_position').joins(:sash => {:scores => :score_points}).where(:type => 'Person').order('sum(num_points) DESC').group('profiles.id') + ranking = Profile.select('profiles.*, sum(num_points) as gamification_points, ROW_NUMBER() OVER(order by sum(num_points) DESC) as gamification_position').joins(:sash => {:scores => :score_points}).where(:type => target.class).order('sum(num_points) DESC').group('profiles.id') ranking = ranking.where("merit_score_points.created_at >= ?", from_date) if from_date.present? - profile_ranking = Profile.from("(#{ranking.to_sql}) profiles").where('profiles.id' => profile.id).first + target_ranking = Profile.from("(#{ranking.to_sql}) profiles").where('profiles.id' => target.id).first ranking = ranking.limit(limit) - render :partial => 'gamification/ranking', :locals => {:ranking => ranking, :profile_ranking => profile_ranking} + render :partial => 'gamification/ranking', :locals => {:ranking => ranking, :target_ranking => target_ranking} end end diff --git a/views/gamification/_ranking.html.erb b/views/gamification/_ranking.html.erb index 136872e..2b0a385 100644 --- a/views/gamification/_ranking.html.erb +++ b/views/gamification/_ranking.html.erb @@ -1,7 +1,7 @@