From 26ecf5ed30889628ed9a1610ad26f4c456fc6c4f Mon Sep 17 00:00:00 2001 From: Dhruv Kapadia Date: Thu, 27 May 2010 15:19:47 -0400 Subject: [PATCH] Adding idea information to Sessions controller report --- app/controllers/visitors_controller.rb | 14 ++++++++++---- app/models/item.rb | 1 + config/routes.rb | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/controllers/visitors_controller.rb b/app/controllers/visitors_controller.rb index 76a0c7f..882f0cc 100644 --- a/app/controllers/visitors_controller.rb +++ b/app/controllers/visitors_controller.rb @@ -2,22 +2,28 @@ class VisitorsController < InheritedResources::Base respond_to :xml, :json before_filter :authenticate - def votes_by_session_ids + def objects_by_session_ids session_ids = params[:session_ids] visitor_ids = Visitor.find(:all, :conditions => { :identifier => session_ids}) votes_by_visitor_id = Vote.with_voter_ids(visitor_ids).count(:group => :voter_id) + ideas_by_visitor_id = Item.with_creator_ids(visitor_ids).count(:group => :creator_id) - votes_by_session_id = {} + objects_by_session_id = {} visitor_ids.each do |e| if votes_by_visitor_id.has_key?(e.id) - votes_by_session_id[e.identifier] = votes_by_visitor_id[e.id] + objects_by_session_id[e.identifier] = Hash.new + objects_by_session_id[e.identifier]['votes'] = votes_by_visitor_id[e.id] + end + if ideas_by_visitor_id.has_key?(e.id) + objects_by_session_id[e.identifier] = Hash.new if objects_by_session_id[e.identifier].nil? + objects_by_session_id[e.identifier]['ideas'] = ideas_by_visitor_id[e.id] end end respond_to do |format| - format.json { render :json => votes_by_session_id.to_json and return} + format.json { render :json => objects_by_session_id.to_json and return} end end diff --git a/app/models/item.rb b/app/models/item.rb index 75e4e7b..5ce0be6 100644 --- a/app/models/item.rb +++ b/app/models/item.rb @@ -4,6 +4,7 @@ class Item < ActiveRecord::Base belongs_to :creator, :class_name => "Visitor", :foreign_key => "creator_id" named_scope :active, :conditions => { :active => true } + named_scope :with_creator_ids, lambda { |*args| {:conditions => {:creator_id=> args.first }} } # has_many :items_questions, :dependent => :destroy # has_many :questions, :through => :items_questions diff --git a/config/routes.rb b/config/routes.rb index aa91c1f..7f75698 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,7 +1,7 @@ ActionController::Routing::Routes.draw do |map| #map.resources :clicks map.resources :densities - map.resources :visitors, :collection => {:votes_by_session_ids => :post} + map.resources :visitors, :collection => {:objects_by_session_ids => :post} map.resources :questions, :member => { :object_info_totals_by_date => :get, :object_info_by_visitor_id => :get, :export => :post, -- libgit2 0.21.2