Initial commit
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user