Commit 26ecf5ed30889628ed9a1610ad26f4c456fc6c4f

Authored by Dhruv Kapadia
1 parent 0266868b

Adding idea information to Sessions controller report

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,