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