Skip to content
Extraits de code Groupes Projets
Valider 67339750 rédigé par danielgrippi's avatar danielgrippi
Parcourir les fichiers

added segments to stats

parent 76b34ec7
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -32,8 +32,19 @@ class AdminsController < ApplicationController ...@@ -32,8 +32,19 @@ class AdminsController < ApplicationController
def stats def stats
@popular_tags = ActsAsTaggableOn::Tagging.joins(:tag).limit(15).count(:group => :tag, :order => 'count(taggings.id) DESC') @popular_tags = ActsAsTaggableOn::Tagging.joins(:tag).limit(15).count(:group => :tag, :order => 'count(taggings.id) DESC')
case params[:range]
when "week"
range = 1.week
when "2weeks"
range = 2.weeks
when "month"
range = 1.month
else
range = 1.day
end
[Post, Comment, AspectMembership, User].each do |model| [Post, Comment, AspectMembership, User].each do |model|
create_hash(model) create_hash(model, :range => range)
end end
@posts_per_day = Post.count(:group => "DATE(created_at)", :conditions => ["created_at >= ?", Date.today - 21.days], :order => "DATE(created_at) ASC") @posts_per_day = Post.count(:group => "DATE(created_at)", :conditions => ["created_at >= ?", Date.today - 21.days], :order => "DATE(created_at) ASC")
...@@ -49,13 +60,13 @@ class AdminsController < ApplicationController ...@@ -49,13 +60,13 @@ class AdminsController < ApplicationController
sprintf( "%0.02f", ((today-yesterday) / yesterday.to_f)*100).to_f sprintf( "%0.02f", ((today-yesterday) / yesterday.to_f)*100).to_f
end end
def create_hash(model) def create_hash(model, opts={})
opts[:range] ||= 1.day
plural = model.to_s.underscore.pluralize plural = model.to_s.underscore.pluralize
eval(<<DATA eval(<<DATA
@#{plural} = { @#{plural} = {
:day_before => #{model}.where(:created_at => ((Time.now.midnight - 2.days)..Time.now.midnight - 1.day)).count, :day_before => #{model}.where(:created_at => ((Time.now.midnight - #{opts[:range]*2})..Time.now.midnight - #{opts[:range]})).count,
:yesterday => #{model}.where(:created_at => ((Time.now.midnight - 1.day)..Time.now.midnight)).count, :yesterday => #{model}.where(:created_at => ((Time.now.midnight - #{opts[:range]})..Time.now.midnight)).count
:today => #{model}.where(:created_at => ((Time.now.midnight)..Time.now)).count
} }
@#{plural}[:change] = percent_change(@#{plural}[:yesterday], @#{plural}[:day_before]) @#{plural}[:change] = percent_change(@#{plural}[:yesterday], @#{plural}[:day_before])
DATA DATA
......
...@@ -13,8 +13,25 @@ ...@@ -13,8 +13,25 @@
.span-24.last .span-24.last
%div{:style => "float:right;"}
= form_tag('/admins/stats', :method => 'get') do
%select{:name => 'range'}
%option{:value => 'daily', :selected => ('selected' if params[:range] == 'daily')}
Daily
%option{:value => 'week', :selected => ('selected' if params[:range] == 'week')}
Week
%option{:value => '2weeks', :selected => ('selected' if params[:range] == '2weeks')}
2 Weeks
%option{:value => 'month', :selected => ('selected' if params[:range] == 'month')}
Month
= submit_tag 'go'
%h3 %h3
Yesterday's results Results from the
%b
= params[:range]
segment
- [:posts, :comments, :aspect_memberships, :users].each do |name| - [:posts, :comments, :aspect_memberships, :users].each do |name|
- model = eval("@#{name.to_s}") - model = eval("@#{name.to_s}")
...@@ -40,13 +57,13 @@ ...@@ -40,13 +57,13 @@
%br %br
%br %br
%h3 /%h3
Posts over time / Posts over time
#stats_graph{:style => "text-align:right;position:relative;vertical-align:bottom;background-color:#eee;"} /#stats_graph{:style => "text-align:right;position:relative;vertical-align:bottom;background-color:#eee;"}
= @posts_per_day.inspect / = @posts_per_day.inspect
/- @posts_per_day.each do |key, val| / /- @posts_per_day.each do |key, val|
/ .asdo{:style => "display:inline-block;width:35px;vertical-align:bottom;background-color:#666;height:#{(val/@most_posts_within)*200}px;"} / / .asdo{:style => "display:inline-block;width:35px;vertical-align:bottom;background-color:#666;height:#{(val/@most_posts_within)*200}px;"}
%br %br
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter