Commit 61ec511412dc33793880c3f8a112d775d30023c0

Authored by Pius Uzamere
1 parent 29e218ba

slimmed down xml response, added controller support deactivation/activation

app/controllers/choices_controller.rb
... ... @@ -3,21 +3,29 @@ class ChoicesController < InheritedResources::Base
3 3 actions :show, :index, :create, :update
4 4 belongs_to :question
5 5 has_scope :active, :boolean => true, :only => :index
  6 + #caches_page :index
6 7  
7 8 def index
8 9 if params[:limit]
9 10 @question = Question.find(params[:question_id])#, :include => :choices)
10 11 @question.reload
11 12 @question.choices.each(&:compute_score!)
12   - @choices = Choice.find(:all, :conditions => {:question_id => @question.id, :active => true}, :limit => params[:limit].to_i, :order => 'score DESC', :include => :item)
  13 + unless params[:include_inactive]
  14 + @choices = Choice.find(:all, :conditions => {:question_id => @question.id, :active => true}, :limit => params[:limit].to_i, :order => 'score DESC', :include => :item)
  15 + else
  16 + @choices = Choice.find(:all, :conditions => {:question_id => @question.id}, :limit => params[:limit].to_i, :order => 'score DESC', :include => :item)
  17 + end
13 18 else
14 19 @question = Question.find(params[:question_id], :include => :choices) #eagerloads ALL choices
15 20 @question.choices.each(&:compute_score!)
16   - @choices = @question.choices(true).active.find(:all, :include => :item)
  21 + unless params[:include_inactive]
  22 + @choices = @question.choices(true).active.find(:all, :include => :item)
  23 + else
  24 + @choices = @question.choices(true)
  25 + end
17 26 end
18 27 index! do |format|
19   - format.xml { render :xml => params[:data].blank? ? @choices.to_xml(:methods => [:item_data, :votes_count]) : @choices.to_xml(:include => [:items], :methods => [:data, :votes_count])}
20   - format.json { render :json => params[:data].blank? ? @choices.to_json : @choices.to_json(:include => [:items]) }
  28 + format.xml { render :xml => @choices.to_xml(:only => [ :data, :score, :id ])}
21 29 end
22 30  
23 31 end
... ... @@ -45,6 +53,7 @@ class ChoicesController < InheritedResources::Base
45 53  
46 54 def create_from_abroad
47 55 authenticate
  56 + expire_page :action => :index
48 57 logger.info "inside create_from_abroad"
49 58  
50 59 @question = Question.find params[:question_id]
... ... @@ -69,6 +78,7 @@ class ChoicesController < InheritedResources::Base
69 78  
70 79 def update_from_abroad
71 80 authenticate
  81 + expire_page :action => :index
72 82 @question = current_user.questions.find(params[:question_id])
73 83 @choice = @question.choices.find(params[:id])
74 84  
... ... @@ -85,8 +95,28 @@ class ChoicesController < InheritedResources::Base
85 95 end
86 96 end
87 97  
  98 + def deactivate_from_abroad
  99 + authenticate
  100 + expire_page :action => :index
  101 + @question = current_user.questions.find(params[:question_id])
  102 + @choice = @question.choices.find(params[:id])
  103 +
  104 + respond_to do |format|
  105 + if @choice.deactivate!
  106 + logger.info "successfully deactivated choice #{@choice.inspect}"
  107 + format.xml { render :xml => true }
  108 + format.json { render :json => true }
  109 + else
  110 + logger.info "failed to deactivate choice #{@choice.inspect}"
  111 + format.xml { render :xml => @choice.to_xml(:methods => [:data, :votes_count, :wins_plus_losses])}
  112 + format.json { render :json => @choice.to_json(:methods => [:data])}
  113 + end
  114 + end
  115 + end
  116 +
88 117 def activate
89 118 authenticate
  119 + expire_page :action => :index
90 120 @question = current_user.questions.find(params[:question_id])
91 121 @choice = @question.choices.find(params[:id])
92 122 respond_to do |format|
... ... @@ -103,6 +133,7 @@ class ChoicesController < InheritedResources::Base
103 133  
104 134 def suspend
105 135 authenticate
  136 + expire_page :action => :index
106 137 @question = current_user.questions.find(params[:question_id])
107 138 @choice = @question.choices.find(params[:id])
108 139 respond_to do |format|
... ...
app/controllers/questions_controller.rb
... ... @@ -5,15 +5,24 @@ class QuestionsController < InheritedResources::Base
5 5  
6 6 def show
7 7 @question = Question.find(params[:id])
8   - @p = @question.picked_prompt
9   - left_choice_text = Proc.new { |options| options[:builder].tag!('left_choice_text', @p.left_choice.item.data) }
10   - right_choice_text = Proc.new { |options| options[:builder].tag!('right_choice_text', @p.right_choice.item.data) }
11   - picked_prompt_id = Proc.new { |options| options[:builder].tag!('picked_prompt_id', @p.id) }
12   - show! do |format|
13   - session['prompts_ids'] ||= []
14   - format.xml {
15   - render :xml => @question.to_xml(:methods => [:item_count], :procs => [left_choice_text, right_choice_text, picked_prompt_id])
  8 + unless params[:barebones]
  9 + @p = @question.picked_prompt
  10 + left_choice_text = Proc.new { |options| options[:builder].tag!('left_choice_text', @p.left_choice.item.data) }
  11 + right_choice_text = Proc.new { |options| options[:builder].tag!('right_choice_text', @p.right_choice.item.data) }
  12 + picked_prompt_id = Proc.new { |options| options[:builder].tag!('picked_prompt_id', @p.id) }
  13 + show! do |format|
  14 + session['prompts_ids'] ||= []
  15 + format.xml {
  16 + render :xml => @question.to_xml(:methods => [:item_count], :procs => [left_choice_text, right_choice_text, picked_prompt_id])
  17 + }
  18 + end
  19 + else
  20 + show! do |format|
  21 + session['prompts_ids'] ||= []
  22 + format.xml {
  23 + render :xml => @question.to_xml(:methods => [:item_count])
16 24 }
  25 + end
17 26 end
18 27 end
19 28  
... ...