Files
old-holivud2/app/controllers/contract_downloads_controller.rb

48 lines
1.3 KiB
Ruby
Raw Normal View History

2020-05-31 22:38:19 +02:00
class ContractDownloadsController < ApplicationController
include ProjectContext
before_action :set_project, only: [:index, :create]
include ProjectLayout
def create
authorize policy_scope(Download).create
2020-09-06 21:42:50 +02:00
download = @project.downloads.create!(release_type: release_type)
2020-05-31 22:38:19 +02:00
other_downloads_in_progress = @project.downloads.unfinished_desc_order.offset(1)
if other_downloads_in_progress.any?
2020-09-06 21:42:50 +02:00
in_progress_downloads_details = render_to_string "_other_pending_downloads", locals: { downloads: other_downloads_in_progress, release_type: release_type }, :layout => false
2020-05-31 22:38:19 +02:00
ProjectsChannel.broadcast_download_generation_update(download, in_progress_downloads_details)
else
2020-09-06 21:42:50 +02:00
ProjectsChannel.broadcast_download_generation_update(download, I18n.t("contract_downloads.download.pending", release_type: release_type.titleize))
2020-05-31 22:38:19 +02:00
end
2020-09-06 21:42:50 +02:00
GenerateContractsZipJob.perform_later(@project, download, release_type, release_ids, search_query, type_filter)
2020-05-31 22:38:19 +02:00
end
private
2020-09-06 21:42:50 +02:00
def release_type
params[:release_type]
end
def search_query
params[:search_query]
end
def type_filter
params[:type_filter]
end
def release_ids
JSON.parse(params[:release_ids])
rescue StandardError
[]
2020-05-31 22:38:19 +02:00
end
2020-09-06 21:42:50 +02:00
def release_name(release_type)
release_type.constantize.model_name.plural
2020-05-31 22:38:19 +02:00
end
end