Move sending of PDF into new ActiveSupport::Concern

This commit is contained in:
Patrick Gansterer 2018-12-19 22:27:47 +01:00
parent e5f64cff8c
commit 5dab748fe3
2 changed files with 19 additions and 7 deletions

View 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

View File

@ -3,6 +3,7 @@
# 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.
class OrdersController < ApplicationController
include Concerns::SendOrderPdf
before_filter :authenticate_pickups_or_orders
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
end
format.pdf do
pdf = case 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'
send_order_pdf @order, params[:document]
end
format.csv do
send_data OrderCsv.new(@order).to_csv, filename: @order.name+'.csv', type: 'text/csv'