From cab5dd09d3cbdba166eea52c2f2240def57a0146 Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Mon, 22 Feb 2016 14:30:58 -0500 Subject: [PATCH] FIX: broken links on admin dashboard in Top Referrers section --- app/assets/javascripts/admin/templates/dashboard.hbs | 2 +- app/models/incoming_links_report.rb | 3 ++- spec/models/incoming_links_report_spec.rb | 8 ++++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/admin/templates/dashboard.hbs b/app/assets/javascripts/admin/templates/dashboard.hbs index ed98e21fcb..74356abfa6 100644 --- a/app/assets/javascripts/admin/templates/dashboard.hbs +++ b/app/assets/javascripts/admin/templates/dashboard.hbs @@ -285,7 +285,7 @@ {{#each r in top_referrers.data}} - {{#link-to 'adminUser' r}}{{unbound r.username}}{{/link-to}} + {{#link-to 'adminUser' r.user_id r.username}}{{unbound r.username}}{{/link-to}} {{r.num_clicks}} {{r.num_topics}} diff --git a/app/models/incoming_links_report.rb b/app/models/incoming_links_report.rb index 57531025e1..388ea57cc9 100644 --- a/app/models/incoming_links_report.rb +++ b/app/models/incoming_links_report.rb @@ -35,9 +35,10 @@ class IncomingLinksReport num_clicks = link_count_per_user num_topics = topic_count_per_user + user_id_lookup = User.where(username: num_clicks.keys).select(:id, :username).inject({}) {|sum,v| sum[v.username] = v.id; sum;} report.data = [] num_clicks.each_key do |username| - report.data << {username: username, num_clicks: num_clicks[username], num_topics: num_topics[username]} + report.data << {username: username, user_id: user_id_lookup[username], num_clicks: num_clicks[username], num_topics: num_topics[username]} end report.data = report.data.sort_by {|x| x[:num_clicks]}.reverse[0,10] end diff --git a/spec/models/incoming_links_report_spec.rb b/spec/models/incoming_links_report_spec.rb index d85e4bd7cb..1ed432f745 100644 --- a/spec/models/incoming_links_report_spec.rb +++ b/spec/models/incoming_links_report_spec.rb @@ -40,8 +40,8 @@ describe IncomingLinksReport do r = IncomingLinksReport.find('top_referrers').as_json expect(r[:data]).to eq [ - {username: p1.user.username, num_clicks: 7 + 2, num_topics: 2}, - {username: p2.user.username, num_clicks: 3, num_topics: 1} + {username: p1.user.username, user_id: p1.user.id, num_clicks: 7 + 2, num_topics: 2}, + {username: p2.user.username, user_id: p2.user.id, num_clicks: 3, num_topics: 1} ] r = IncomingLinksReport.find('top_traffic_sources').as_json @@ -98,8 +98,8 @@ describe IncomingLinksReport do Fabricate(:incoming_link, user: bob, post: post1).save end - expect(top_referrers[:data][0]).to eq({username: 'amy', num_clicks: 3, num_topics: 2}) - expect(top_referrers[:data][1]).to eq({username: 'bob', num_clicks: 2, num_topics: 1}) + expect(top_referrers[:data][0]).to eq({username: 'amy', user_id: amy.id, num_clicks: 3, num_topics: 2}) + expect(top_referrers[:data][1]).to eq({username: 'bob', user_id: bob.id, num_clicks: 2, num_topics: 1}) end end