diff options
author | Louise Crow <louise.crow@gmail.com> | 2013-10-28 12:03:52 +0000 |
---|---|---|
committer | Louise Crow <louise.crow@gmail.com> | 2013-12-04 09:32:43 +0000 |
commit | 97b7bc835eaa59da76c50db2c3105e4adcf89a8d (patch) | |
tree | 752b58cc03413daf109fa74cb114da20ea0ecf26 | |
parent | b68c23074b7849b30e8f96ea024ec14ec4b8f324 (diff) |
Move creation of batch to InfoRequestBatch.
-rw-r--r-- | app/controllers/request_controller.rb | 28 | ||||
-rw-r--r-- | app/models/info_request_batch.rb | 21 |
2 files changed, 28 insertions, 21 deletions
diff --git a/app/controllers/request_controller.rb b/app/controllers/request_controller.rb index e516501d4..e00483df8 100644 --- a/app/controllers/request_controller.rb +++ b/app/controllers/request_controller.rb @@ -226,35 +226,21 @@ class RequestController < ApplicationController return render_new_preview end - @info_request_batch = InfoRequestBatch.create!(:title => params[:info_request][:title], - :body => params[:outgoing_message][:body], - :user => authenticated_user) - @public_bodies = PublicBody.where({:id => params[:public_body_ids]}).all - unrequestable = [] - @public_bodies.each do |public_body| - if public_body.is_requestable? - info_request = InfoRequest.create_from_attributes(params[:info_request], - params[:outgoing_message], - authenticated_user) - info_request.public_body_id = public_body.id - info_request.info_request_batch = @info_request_batch - info_request.save! - info_request.outgoing_messages.first.send_message - else - unrequestable << public_body.name - end - end - + batch_results = InfoRequestBatch.create_batch!(params[:info_request], + params[:outgoing_message], + params[:public_body_ids], + authenticated_user) + @info_request_batch = batch_results[:batch] flash[:notice] = _("<p>Your {{law_used_full}} requests have been <strong>sent</strong>!</p> <p><strong>We will email you</strong> when there is a response to any of them, or after {{late_number_of_days}} working days if the authorities still haven't replied by then.</p> <p>If you write about these requests (for example in a forum or a blog) please link to this page.</p>", :law_used_full=>@info_request.law_used_full, :late_number_of_days => AlaveteliConfiguration::reply_late_after_days) - if ! unrequestable.empty? + if ! batch_results[:unrequestable].empty? error_messages = [] error_messages << _('Unfortunately, we do not have a working address for {{public_body_names}}.', - :public_body_names => unrequestable.join(",")) + :public_body_names => batch_results[:unrequestable].map{|body| body.name}.join(",")) error_messages << _('You may be able to find one on their website, or by phoning them up and asking. If you manage to find one, then please <a href="{{help_url}}">send it to us</a>.', :help_url => help_contact_path) diff --git a/app/models/info_request_batch.rb b/app/models/info_request_batch.rb index 05175a889..3c6addb70 100644 --- a/app/models/info_request_batch.rb +++ b/app/models/info_request_batch.rb @@ -29,4 +29,25 @@ class InfoRequestBatch < ActiveRecord::Base end + def InfoRequestBatch.create_batch!(info_request_params, outgoing_message_params, public_body_ids, user) + info_request_batch = InfoRequestBatch.create!(:title => info_request_params[:title], + :body => outgoing_message_params[:body], + :user => user) + public_bodies = PublicBody.where({:id => public_body_ids}).all + unrequestable = [] + public_bodies.each do |public_body| + if public_body.is_requestable? + info_request = InfoRequest.create_from_attributes(info_request_params, + outgoing_message_params, + user) + info_request.public_body_id = public_body.id + info_request.info_request_batch = info_request_batch + info_request.save! + info_request.outgoing_messages.first.send_message + else + unrequestable << public_body + end + end + return {:batch => info_request_batch, :unrequestable => unrequestable} + end end |