diff options
-rw-r--r-- | app/controllers/request_controller.rb | 4 | ||||
-rw-r--r-- | app/models/info_request.rb | 7 | ||||
-rw-r--r-- | spec/controllers/request_controller_spec.rb | 2 |
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 |