aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Landauer <matthew@openaustralia.org>2013-03-22 15:02:30 +1100
committerMatthew Landauer <matthew@openaustralia.org>2013-03-22 15:02:30 +1100
commitca4ae410e70ab490ae4c8cad8839f41783c89ef7 (patch)
treed97be8750f49db30865e4948b1a0e29e9486e206
parent661ad52ef88de7afcbd7820d8283057764f4d1ac (diff)
Extract method
-rw-r--r--app/controllers/request_controller.rb4
-rw-r--r--app/models/info_request.rb7
-rw-r--r--spec/controllers/request_controller_spec.rb2
3 files changed, 9 insertions, 4 deletions
diff --git a/app/controllers/request_controller.rb b/app/controllers/request_controller.rb
index e12c408ea..12ba1a3a9 100644
--- a/app/controllers/request_controller.rb
+++ b/app/controllers/request_controller.rb
@@ -687,9 +687,7 @@ class RequestController < ApplicationController
elsif info_request.attention_requested
flash[:notice] = _("This request has already been reported for administrator attention")
else
- info_request.set_described_state('attention_requested', @user, "Reason: #{params[:reason]}\n\n#{params[:message]}")
- info_request.attention_requested = true # tells us if attention has ever been requested
- info_request.save!
+ info_request.report!(params[:reason], params[:message], @user)
flash[:notice] = _("This request has been reported for administrator attention")
end
redirect_to request_url(info_request)
diff --git a/app/models/info_request.rb b/app/models/info_request.rb
index 156399b99..83a57b4b2 100644
--- a/app/models/info_request.rb
+++ b/app/models/info_request.rb
@@ -555,6 +555,13 @@ public
['requires_admin', 'error_message', 'attention_requested'].include?(described_state)
end
+ # Report this request for administrator attention
+ def report!(reason, message, user)
+ set_described_state('attention_requested', user, "Reason: #{reason}\n\n#{message}")
+ self.attention_requested = true # tells us if attention has ever been requested
+ save!
+ end
+
# change status, including for last event for later historical purposes
def set_described_state(new_state, set_by = nil, message = "")
old_described_state = described_state
diff --git a/spec/controllers/request_controller_spec.rb b/spec/controllers/request_controller_spec.rb
index 260fbb9fa..1fbe8a9a4 100644
--- a/spec/controllers/request_controller_spec.rb
+++ b/spec/controllers/request_controller_spec.rb
@@ -2333,7 +2333,7 @@ describe RequestController, "when reporting a request (logged in)" do
it "should pass on the reason and message" do
info_request = mock_model(InfoRequest, :url_title => "foo", :attention_requested= => nil, :save! => nil)
InfoRequest.should_receive(:find_by_url_title!).with("foo").and_return(info_request)
- info_request.should_receive(:set_described_state).with("attention_requested", @user, "Reason: Not valid request\n\nIt's just not")
+ info_request.should_receive(:report!).with("Not valid request", "It's just not", @user)
post :report_request, :url_title => "foo", :reason => "Not valid request", :message => "It's just not"
end