From 190332308be6a5d2fdff55fada47cffc3d3801b2 Mon Sep 17 00:00:00 2001 From: danielgrippi Date: Thu, 11 Aug 2011 17:15:05 -0700 Subject: [PATCH] started on the real stats page --- app/controllers/admins_controller.rb | 26 +++++++++- app/views/admins/stats.html.haml | 60 +++++++++++++++++++++++- public/stylesheets/sass/application.sass | 6 +++ 3 files changed, 89 insertions(+), 3 deletions(-) diff --git a/app/controllers/admins_controller.rb b/app/controllers/admins_controller.rb index f4c32ae68..4f27161d2 100644 --- a/app/controllers/admins_controller.rb +++ b/app/controllers/admins_controller.rb @@ -31,7 +31,29 @@ class AdminsController < ApplicationController def stats @popular_tags = ActsAsTaggableOn::Tagging.joins(:tag).limit(15).count(:group => :tag, :order => 'count(taggings.id) DESC') - @new_posts = Post.where(:type => ['StatusMessage','ActivityStreams::Photo'], - :public => true).order('created_at DESC').limit(15).all + + [Post, Comment, AspectMembership, User].each do |model| + create_hash(model) + end + + @posts[:new_public] = Post.where(:type => ['StatusMessage','ActivityStreams::Photo'], + :public => true).order('created_at DESC').limit(15).all + end + + private + def percent_change(today, yesterday) + sprintf( "%0.02f", ((today-yesterday) / yesterday.to_f)*100).to_f + end + + def create_hash(model) + plural = model.to_s.underscore.pluralize + eval(< #{model}.where(:created_at => ((Time.now.midnight - 1.day)..Time.now.midnight)).count, + :today => #{model}.where(:created_at => ((Time.now.midnight)..Time.now)).count + } + @#{plural}[:change] = percent_change(@#{plural}[:today], @#{plural}[:yesterday]) +DATA + ) end end diff --git a/app/views/admins/stats.html.haml b/app/views/admins/stats.html.haml index 565e7cfdf..25fe2748e 100644 --- a/app/views/admins/stats.html.haml +++ b/app/views/admins/stats.html.haml @@ -1,4 +1,62 @@ + .span-24.last + %br + %br + %h1 + Usage Statistics + %br + %br + %br + +%hr +.clearfix + +.span-24.last + + %h3 + New Today + + - [:posts, :comments, :aspect_memberships, :users].each do |name| + - model = eval("@#{name.to_s}") + - if name == :aspect_memberships + - name = :shares + + .span-6{:class => ('last' if name == :users)} + %h2{:style => 'font-weight:bold;'} + = model[:today] + = name.to_s + %h4 + = model[:yesterday] + + %span.percent_change{:class => (model[:change] > 0 ? "green" : "red")} + = "(#{model[:change]}%)" + + %br + %br + %br + %br + %br +%hr + + +%br +%br +%br +%br +%br +%br +%br +%br +%br +%br +%br + +.span-24.last + %h2 + Misc Stuff + %br + %br + %h3 = for tg in @popular_tags = link_to tg, tags_path(tg) @@ -10,7 +68,7 @@ %h3 New public posts .stream - = render 'shared/stream', :posts => @new_posts + = render 'shared/stream', :posts => @new_public_posts .span-12.last %h3 diff --git a/public/stylesheets/sass/application.sass b/public/stylesheets/sass/application.sass index a1769c291..1626b2486 100644 --- a/public/stylesheets/sass/application.sass +++ b/public/stylesheets/sass/application.sass @@ -3388,3 +3388,9 @@ ul#getting_started :background-color #aaa &:hover :opacity .85 !important + +.red + :color $red + +.green + :color green