Files
old-holivud2/app/controllers/contract_templates/blank_contracts_controller.rb
2020-05-31 22:38:19 +02:00

70 lines
1.7 KiB
Ruby

# frozen_string_literal: true
class ContractTemplates::BlankContractsController < ApplicationController
before_action :set_contract_template
def show
send_file contract.to_pdf, download_attributes
end
def new
authorize BlankContract
render 'blank_contracts/new'
end
def create
if number_of_copies_valid?
send_file contract.to_pdf, download_attributes
else
authorize BlankContract
redirect_back fallback_location: [:new, @contract_template, :blank_contracts], notice: t('.number_of_copies_invalid_notice')
end
end
private
def number_of_copies_valid?
number_of_copies = params[:number_of_copies].to_i
number_of_copies.positive?
rescue StandardError
false
end
def contract_templates
policy_scope(ContractTemplate)
end
def set_contract_template
@contract_template = contract_templates.find(params[:contract_template_id])
end
def releasable
create_releasable_instance
end
def create_releasable_instance
template_release_type = @contract_template[:release_type]
releasable = "#{template_release_type}_release".classify.safe_constantize.new
releasable.contract_template = @contract_template
releasable.project_id = @contract_template.project_id
releasable
end
def contract
authorize BlankContract.new(releasable, params[:number_of_copies])
end
def download_attributes
{
disposition: 'inline',
filename: contract.filename,
type: 'application/pdf'
}
end
def render_sample_html
# NOTE: For development purposes, this contract renders with the current locale, not the locale of the release itself
render contract.render_attributes
end
end