Class Admin::ExperimentsController
In: app/controllers/admin/experiments_controller.rb
Parent: Admin::BaseController

Methods

index  

Public Instance methods

[Source]

    # File app/controllers/admin/experiments_controller.rb, line 2
 2:   def index
 3:     code = 'en'
 4:     exp_code = 'e2'
 5:     questions = Question.all
 6:     visit_id = Visit.first(:conditions => { :locale => exp_code }, :select => 'id').id
 7:     @question_counts = questions.inject([]) do |array, question|
 8:       array << Response.count(
 9:         :joins => "INNER JOIN prompts ON (prompts.id=responses.prompt_id) INNER JOIN visits ON (responses.visit_id>=#{visit_id} AND visits.id=responses.visit_id AND visits.locale IN ('#{code}', '#{exp_code}')) LEFT OUTER JOIN users ON (visits.user_id=users.id)",
10:         :group => "visits.locale",
11:         :conditions => "question_id=#{question.id} AND (users.state!='admin' OR users.state IS NULL)"
12:       ).inject([]) do |array2, count|
13:         array2 << [question.for_locale(count.first), count.last]
14:       end
15:     end
16:     @prompt_counts = questions.inject([]) do |array, question|
17:       array << Response.count(
18:         :joins => "INNER JOIN prompts ON (prompts.id=responses.prompt_id) INNER JOIN visits ON (visits.prompts_per_question IS NOT NULL AND visits.id=responses.visit_id) LEFT OUTER JOIN users ON (visits.user_id=users.id)",
19:         :group => "visits.prompts_per_question",
20:         :conditions => "question_id=#{question.id} AND (users.state!='admin' OR users.state IS NULL)"
21:       ).inject([]) do |array2, count|
22:         array2 << [question.groups.first.name, count.first, count.last]
23:       end
24:     end.reject { |el| el.empty? }
25:   end

[Validate]