Move sending of PDF into new ActiveSupport::Concern
This commit is contained in:
parent
e5f64cff8c
commit
5dab748fe3
2 changed files with 19 additions and 7 deletions
17
app/controllers/concerns/send_order_pdf.rb
Normal file
17
app/controllers/concerns/send_order_pdf.rb
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
module Concerns::SendOrderPdf
|
||||||
|
extend ActiveSupport::Concern
|
||||||
|
|
||||||
|
protected
|
||||||
|
|
||||||
|
def send_order_pdf order, document
|
||||||
|
klass = case document
|
||||||
|
when 'groups' then OrderByGroups
|
||||||
|
when 'articles' then OrderByArticles
|
||||||
|
when 'fax' then OrderFax
|
||||||
|
when 'matrix' then OrderMatrix
|
||||||
|
end
|
||||||
|
pdf = klass.new order
|
||||||
|
send_data pdf.to_pdf, filename: pdf.filename, type: 'application/pdf'
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -3,6 +3,7 @@
|
||||||
# Controller for managing orders, i.e. all actions that require the "orders" role.
|
# Controller for managing orders, i.e. all actions that require the "orders" role.
|
||||||
# Normal ordering actions of members of order groups is handled by the OrderingController.
|
# Normal ordering actions of members of order groups is handled by the OrderingController.
|
||||||
class OrdersController < ApplicationController
|
class OrdersController < ApplicationController
|
||||||
|
include Concerns::SendOrderPdf
|
||||||
|
|
||||||
before_filter :authenticate_pickups_or_orders
|
before_filter :authenticate_pickups_or_orders
|
||||||
before_filter :authenticate_orders, except: [:receive, :receive_on_order_article_create, :receive_on_order_article_update, :show]
|
before_filter :authenticate_orders, except: [:receive, :receive_on_order_article_create, :receive_on_order_article_update, :show]
|
||||||
|
@ -46,13 +47,7 @@ class OrdersController < ApplicationController
|
||||||
render :layout => false
|
render :layout => false
|
||||||
end
|
end
|
||||||
format.pdf do
|
format.pdf do
|
||||||
pdf = case params[:document]
|
send_order_pdf @order, params[:document]
|
||||||
when 'groups' then OrderByGroups.new(@order)
|
|
||||||
when 'articles' then OrderByArticles.new(@order)
|
|
||||||
when 'fax' then OrderFax.new(@order)
|
|
||||||
when 'matrix' then OrderMatrix.new(@order)
|
|
||||||
end
|
|
||||||
send_data pdf.to_pdf, filename: pdf.filename, type: 'application/pdf'
|
|
||||||
end
|
end
|
||||||
format.csv do
|
format.csv do
|
||||||
send_data OrderCsv.new(@order).to_csv, filename: @order.name+'.csv', type: 'text/csv'
|
send_data OrderCsv.new(@order).to_csv, filename: @order.name+'.csv', type: 'text/csv'
|
||||||
|
|
Loading…
Reference in a new issue