Group context-related pieces in a class

This commit is contained in:
Katrina Owen 2013-03-02 08:11:15 -05:00
parent 8b1f0a34a0
commit 6ccb9a81fb
5 changed files with 35 additions and 19 deletions

View file

@ -15,8 +15,8 @@ class StatsController < ApplicationController
@hidden_contexts = current_user.contexts.hidden
@actions = Stats::Actions.new(current_user)
@projects = Stats::Projects.new(current_user)
@contexts = Stats::Contexts.new(current_user)
get_stats_contexts
get_stats_tags
end
@ -387,18 +387,6 @@ class StatsController < ApplicationController
@cut_off_3months = 3.months.ago.beginning_of_day
end
def get_stats_contexts
@actions_per_context = Stats::TopContextsQuery.new(current_user, :limit => 5).result
@running_actions_per_context = Stats::TopContextsQuery.new(current_user, :limit => 5, :running => true).result
@context_charts = %w{
context_total_actions_data
context_running_actions_data
}.map do |action|
Stats::Chart.new(action, :height => 325)
end
end
def get_stats_tags
tags = Stats::TagCloudQuery.new(current_user).result
@tag_cloud = Stats::TagCloud.new(tags)

View file

@ -0,0 +1,27 @@
module Stats
class Contexts
attr_reader :user
def initialize(user)
@user = user
end
def actions
@actions ||= Stats::TopContextsQuery.new(user, :limit => 5).result
end
def running_actions
@running_actions ||= Stats::TopContextsQuery.new(user, :limit => 5, :running => true).result
end
def charts
@charts = %w{
context_total_actions_data
context_running_actions_data
}.map do |action|
Stats::Chart.new(action, :height => 325)
end
end
end
end

View file

@ -1,5 +1,5 @@
# Get action count for the top 5 contexts
# If initialized with :running, then only active
# Get action count for the top n contexts (default: all)
# If initialized with :running => true, then only active
# and visible contexts will be included.
module Stats
class TopContextsQuery

View file

@ -1,9 +1,10 @@
<% @context_charts.each do |chart| %><%=
<% contexts.charts.each do |chart| %><%=
render :partial => 'chart', :locals => {:chart => chart}
-%><% end %>
<br style="clear:both">
<%= render :partial => 'contexts_list', :locals => {:contexts => @actions_per_context, :key => 'contexts'} -%>
<%= render :partial => 'contexts_list', :locals => {:contexts => contexts.actions, :key => 'contexts'} -%>
<%= render :partial => 'contexts_list', :locals => {:contexts => contexts.running_actions, :key => 'visible_contexts_with_incomplete_actions'} -%>
<%= render :partial => 'contexts_list', :locals => {:contexts => @running_actions_per_context, :key => 'visible_contexts_with_incomplete_actions'} -%>

View file

@ -9,7 +9,7 @@
<%= render :partial => 'actions', :locals => {:actions => @actions} -%>
<h2><%= t('stats.contexts') %></h2>
<%= render :partial => 'contexts' -%>
<%= render :partial => 'contexts', :locals => {:contexts => @contexts} -%>
<h2><%= t('stats.projects') %></h2>
<%= render :partial => 'projects', :locals => {:projects => @projects} -%>