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 | 2 | respond_to :xml, :json |
3 | 3 | before_filter :authenticate |
4 | 4 | |
5 | - def votes_by_session_ids | |
5 | + def objects_by_session_ids | |
6 | 6 | session_ids = params[:session_ids] |
7 | 7 | |
8 | 8 | visitor_ids = Visitor.find(:all, :conditions => { :identifier => session_ids}) |
9 | 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 | 14 | visitor_ids.each do |e| |
14 | 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 | 22 | end |
17 | 23 | end |
18 | 24 | |
19 | 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 | 27 | end |
22 | 28 | end |
23 | 29 | ... | ... |
app/models/item.rb
... | ... | @@ -4,6 +4,7 @@ class Item < ActiveRecord::Base |
4 | 4 | belongs_to :creator, :class_name => "Visitor", :foreign_key => "creator_id" |
5 | 5 | |
6 | 6 | named_scope :active, :conditions => { :active => true } |
7 | + named_scope :with_creator_ids, lambda { |*args| {:conditions => {:creator_id=> args.first }} } | |
7 | 8 | |
8 | 9 | # has_many :items_questions, :dependent => :destroy |
9 | 10 | # has_many :questions, :through => :items_questions | ... | ... |
config/routes.rb
1 | 1 | ActionController::Routing::Routes.draw do |map| |
2 | 2 | #map.resources :clicks |
3 | 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 | 5 | map.resources :questions, :member => { :object_info_totals_by_date => :get, |
6 | 6 | :object_info_by_visitor_id => :get, |
7 | 7 | :export => :post, | ... | ... |