Commit 26ecf5ed30889628ed9a1610ad26f4c456fc6c4f
1 parent
0266868b
Exists in
master
and in
1 other branch
Adding idea information to Sessions controller report
Showing
3 changed files
with
12 additions
and
5 deletions
Show diff stats
app/controllers/visitors_controller.rb
@@ -2,22 +2,28 @@ class VisitorsController < InheritedResources::Base | @@ -2,22 +2,28 @@ class VisitorsController < InheritedResources::Base | ||
2 | respond_to :xml, :json | 2 | respond_to :xml, :json |
3 | before_filter :authenticate | 3 | before_filter :authenticate |
4 | 4 | ||
5 | - def votes_by_session_ids | 5 | + def objects_by_session_ids |
6 | session_ids = params[:session_ids] | 6 | session_ids = params[:session_ids] |
7 | 7 | ||
8 | visitor_ids = Visitor.find(:all, :conditions => { :identifier => session_ids}) | 8 | visitor_ids = Visitor.find(:all, :conditions => { :identifier => session_ids}) |
9 | votes_by_visitor_id = Vote.with_voter_ids(visitor_ids).count(:group => :voter_id) | 9 | votes_by_visitor_id = Vote.with_voter_ids(visitor_ids).count(:group => :voter_id) |
10 | + ideas_by_visitor_id = Item.with_creator_ids(visitor_ids).count(:group => :creator_id) | ||
10 | 11 | ||
11 | - votes_by_session_id = {} | 12 | + objects_by_session_id = {} |
12 | 13 | ||
13 | visitor_ids.each do |e| | 14 | visitor_ids.each do |e| |
14 | if votes_by_visitor_id.has_key?(e.id) | 15 | if votes_by_visitor_id.has_key?(e.id) |
15 | - votes_by_session_id[e.identifier] = votes_by_visitor_id[e.id] | 16 | + objects_by_session_id[e.identifier] = Hash.new |
17 | + objects_by_session_id[e.identifier]['votes'] = votes_by_visitor_id[e.id] | ||
18 | + end | ||
19 | + if ideas_by_visitor_id.has_key?(e.id) | ||
20 | + objects_by_session_id[e.identifier] = Hash.new if objects_by_session_id[e.identifier].nil? | ||
21 | + objects_by_session_id[e.identifier]['ideas'] = ideas_by_visitor_id[e.id] | ||
16 | end | 22 | end |
17 | end | 23 | end |
18 | 24 | ||
19 | respond_to do |format| | 25 | respond_to do |format| |
20 | - format.json { render :json => votes_by_session_id.to_json and return} | 26 | + format.json { render :json => objects_by_session_id.to_json and return} |
21 | end | 27 | end |
22 | end | 28 | end |
23 | 29 |
app/models/item.rb
@@ -4,6 +4,7 @@ class Item < ActiveRecord::Base | @@ -4,6 +4,7 @@ class Item < ActiveRecord::Base | ||
4 | belongs_to :creator, :class_name => "Visitor", :foreign_key => "creator_id" | 4 | belongs_to :creator, :class_name => "Visitor", :foreign_key => "creator_id" |
5 | 5 | ||
6 | named_scope :active, :conditions => { :active => true } | 6 | named_scope :active, :conditions => { :active => true } |
7 | + named_scope :with_creator_ids, lambda { |*args| {:conditions => {:creator_id=> args.first }} } | ||
7 | 8 | ||
8 | # has_many :items_questions, :dependent => :destroy | 9 | # has_many :items_questions, :dependent => :destroy |
9 | # has_many :questions, :through => :items_questions | 10 | # has_many :questions, :through => :items_questions |
config/routes.rb
1 | ActionController::Routing::Routes.draw do |map| | 1 | ActionController::Routing::Routes.draw do |map| |
2 | #map.resources :clicks | 2 | #map.resources :clicks |
3 | map.resources :densities | 3 | map.resources :densities |
4 | - map.resources :visitors, :collection => {:votes_by_session_ids => :post} | 4 | + map.resources :visitors, :collection => {:objects_by_session_ids => :post} |
5 | map.resources :questions, :member => { :object_info_totals_by_date => :get, | 5 | map.resources :questions, :member => { :object_info_totals_by_date => :get, |
6 | :object_info_by_visitor_id => :get, | 6 | :object_info_by_visitor_id => :get, |
7 | :export => :post, | 7 | :export => :post, |