<% if policy(TalentRelease).new? %>
- <%= link_to fa_icon("plus", text: t(".actions.new")), [:new, @project, :talent_release], class: "btn btn-primary mr-2 mb-2" %>
+
+ <%= link_to fa_icon("plus", text: t(".actions.new")), [:new, @project, :talent_release], class: "btn btn-primary mr-2 mb-2" %>
+
<% end %>
<% if @talent_releases.any? && policy(TalentRelease).tag_multiple? %>
@@ -10,7 +13,7 @@
<% end %>
<% if @talent_releases.any? && policy(TalentRelease).download_multiple? %>
- <%= link_to "Download All", [@project, :contract_downloads, release_type: @talent_releases.name], method: :post, remote: true, class: "btn btn-light border ml-auto mr-2 mb-2", data: {
+ <%= button_to "Download", [@project, :contract_downloads, release_type: @talent_releases.name], id: "download_releases", method: :post, remote: true, class: "btn btn-light border mr-2 mb-2", data: {
disable_with: "Please wait..." } %>
<% end %>
diff --git a/app/views/talent_releases/index.js.erb b/app/views/talent_releases/index.js.erb
index e396385..76e549f 100644
--- a/app/views/talent_releases/index.js.erb
+++ b/app/views/talent_releases/index.js.erb
@@ -1,3 +1,5 @@
$("#talent_releases").html("<%= j render(@talent_releases) %>");
$("form input[type='search']").val("<%= params[:query] %>");
$("#talent_releases_pagination").html("<%= j will_paginate(@talent_releases) %>");
+$("#selected_releases_form").attr('data-releasable-ids', JSON.stringify([]));
+$("#total_entries").val(<%= @talent_releases.total_entries %>);
\ No newline at end of file
diff --git a/spec/features/user_managing_medical_releases_spec.rb b/spec/features/user_managing_medical_releases_spec.rb
index 7c43ddc..fa25a4e 100644
--- a/spec/features/user_managing_medical_releases_spec.rb
+++ b/spec/features/user_managing_medical_releases_spec.rb
@@ -197,13 +197,13 @@ feature "User managing medical releases" do
expect(page).to have_css('i.fa.fa-check-circle.fa-2x', count: 1)
end
- scenario "Download All is visible" do
+ scenario "Download button is visible" do
create(:medical_release_with_contract_template, :native, project: project)
create(:medical_release_with_contract_template, :non_native, project: project)
visit project_medical_releases_path(project)
- expect(page).to have_content download_all_button
+ expect(page).to have_content download_button
end
scenario "Download action in Manage menu is visible" do
@@ -264,7 +264,7 @@ feature "User managing medical releases" do
visit project_medical_releases_path(project)
- expect(page).not_to have_content download_all_button
+ expect(page).not_to have_content download_button
end
scenario "Download action in Manage menu is not visible" do
@@ -308,7 +308,7 @@ feature "User managing medical releases" do
visit project_medical_releases_path(project)
- expect(page).not_to have_content download_all_button
+ expect(page).not_to have_content download_button
end
scenario "Download action in Manage menu is not visible" do
@@ -341,8 +341,8 @@ feature "User managing medical releases" do
private
- def download_all_button
- 'Download All'
+ def download_button
+ 'Download'
end
def download_action
diff --git a/spec/features/user_managing_misc_releases_spec.rb b/spec/features/user_managing_misc_releases_spec.rb
index 81beb63..ba6a56b 100644
--- a/spec/features/user_managing_misc_releases_spec.rb
+++ b/spec/features/user_managing_misc_releases_spec.rb
@@ -62,12 +62,12 @@ feature "User managing misc releases" do
sign_in current_user
end
- scenario "Download All is visible" do
+ scenario "Download is visible" do
create(:misc_release_with_contract_template, :native, project: project)
visit project_misc_releases_path(project)
- expect(page).to have_content download_all_button
+ expect(page).to have_content download_button
end
scenario "Downloading PDF of native misc release is possible" do
@@ -145,8 +145,8 @@ feature "User managing misc releases" do
private
- def download_all_button
- 'Download All'
+ def download_button
+ 'Download'
end
def view_release_pdf_link_for(release)
diff --git a/spec/jobs/generate_contracts_zip_job_spec.rb b/spec/jobs/generate_contracts_zip_job_spec.rb
index 48e9cfc..74d1e80 100644
--- a/spec/jobs/generate_contracts_zip_job_spec.rb
+++ b/spec/jobs/generate_contracts_zip_job_spec.rb
@@ -86,34 +86,36 @@ describe GenerateContractsZipJob do
end
it "generates ZIP containing CSV file with all filtered releases data for filtered releases" do
- lowercase_plural = subject.constantize.model_name.plural
- GenerateContractsZipJob.perform_now(project, download, subject, [], '', 'complete')
+ if subject.respond_to?(:complete) && subject.respond_to?(:incomplete)
+ lowercase_plural = subject.constantize.model_name.plural
+ GenerateContractsZipJob.perform_now(project, download, subject, [], '', 'complete')
- complete_releases = project.public_send(lowercase_plural).complete
- incomplete_releases = project.public_send(lowercase_plural).incomplete
+ complete_releases = project.public_send(lowercase_plural).complete
+ incomplete_releases = project.public_send(lowercase_plural).incomplete
- generated_zip = download.file.blob.download
- csv_file_name = "#{project.name.parameterize}_#{lowercase_plural.gsub('_', '-')}.csv"
- Zip::InputStream.open(StringIO.new(generated_zip)) do |io|
- while entry = io.get_next_entry
- next unless entry.name == csv_file_name
+ generated_zip = download.file.blob.download
+ csv_file_name = "#{project.name.parameterize}_#{lowercase_plural.gsub('_', '-')}.csv"
+ Zip::InputStream.open(StringIO.new(generated_zip)) do |io|
+ while entry = io.get_next_entry
+ next unless entry.name == csv_file_name
- csv_file = entry.get_input_stream.read
+ csv_file = entry.get_input_stream.read
- release_class = Object.const_get subject
- release_headers = release_class.csv_headers
+ release_class = Object.const_get subject
+ release_headers = release_class.csv_headers
- release_headers.each do |header|
- expect(csv_file).to match header
- expect(csv_file).not_to match translation_missing
- end
+ release_headers.each do |header|
+ expect(csv_file).to match header
+ expect(csv_file).not_to match translation_missing
+ end
- complete_releases.each do |release|
- expect(csv_file).to match release.person_first_name
- end
+ complete_releases.each do |release|
+ expect(csv_file).to match release.person_first_name
+ end
- incomplete_releases.each do |release|
- expect(csv_file).not_to match release.person_first_name
+ incomplete_releases.each do |release|
+ expect(csv_file).not_to match release.person_first_name
+ end
end
end
end
@@ -164,16 +166,19 @@ describe GenerateContractsZipJob do
end
context "generates ZIP for acquired media releases" do
- let(:release) { create(:acquired_media_release_with_contract_template, :native, project: project) }
+ let(:release) { create(:acquired_media_release_with_contract_template, :native, project: project, name: "John Doe") }
+ let(:release2) { create(:acquired_media_release_with_contract_template, :native, project: project, name: "Jane Doe") }
+ let(:release3) { create(:acquired_media_release_with_contract_template, :native, project: project, name: "Brad Doe") }
subject { 'AcquiredMediaRelease' }
it_behaves_like "generates ZIP containig CSV file with all releases data"
+ it_behaves_like "generates ZIP containig CSV file with specific releases data"
end
context "generates ZIP for appearance releases" do
- let(:release) { create(:appearance_release_with_contract_template, :native, project: project, person_name: "John Doe") }
- let(:incomplete_release) { create(:appearance_release_with_contract_template, project: project, person_name: "Jane Doe") }
- let(:complete_release) { create(:appearance_release_with_contract_template, :non_native, project: project, person_name: "Brad Doe") }
+ let(:release) { create(:appearance_release_with_contract_template, :native, project: project, person_name: "John") }
+ let(:incomplete_release) { create(:appearance_release_with_contract_template, project: project, person_name: "Jane") }
+ let(:complete_release) { create(:appearance_release_with_contract_template, :non_native, project: project, person_name: "Brad") }
subject { 'AppearanceRelease' }
it_behaves_like "generates ZIP containig CSV file with all releases data"
@@ -181,45 +186,63 @@ describe GenerateContractsZipJob do
end
context "generates ZIP for location releases" do
- let(:release) { create(:location_release_with_contract_template, :native, project: project) }
+ let(:release) { create(:location_release_with_contract_template, :native, project: project, name: "John") }
+ let(:release2) { create(:location_release_with_contract_template, :native, project: project, name: "Jane") }
+ let(:release3) { create(:location_release_with_contract_template, :native, project: project, name: "Brad") }
subject { 'LocationRelease' }
it_behaves_like "generates ZIP containig CSV file with all releases data"
+ it_behaves_like "generates ZIP containig CSV file with specific releases data"
end
context "generates ZIP for material releases" do
- let(:release) { create(:material_release_with_contract_template, :native, project: project) }
+ let(:release) { create(:material_release_with_contract_template, :native, project: project, name: "John") }
+ let(:release2) { create(:material_release_with_contract_template, :native, project: project, name: "Jane") }
+ let(:release3) { create(:material_release_with_contract_template, :native, project: project, name: "Brad") }
subject { 'MaterialRelease' }
it_behaves_like "generates ZIP containig CSV file with all releases data"
+ it_behaves_like "generates ZIP containig CSV file with specific releases data"
end
context "generates ZIP for medical releases" do
- let(:release) { create(:medical_release_with_contract_template, :native, project: project) }
+ let(:release) { create(:medical_release_with_contract_template, :native, project: project, person_name: "John Doe") }
+ let(:release2) { create(:medical_release_with_contract_template, :native, project: project, person_name: "Jane Doe") }
+ let(:release3) { create(:medical_release_with_contract_template, :native, project: project, person_name: "Brad Doe") }
subject { 'MedicalRelease' }
it_behaves_like "generates ZIP containig CSV file with all releases data"
+ it_behaves_like "generates ZIP containig CSV file with specific releases data"
end
context "generates ZIP for misc releases" do
- let(:release) { create(:misc_release_with_contract_template, :native, project: project) }
+ let(:release) { create(:misc_release_with_contract_template, :native, project: project, person_name: "John Doe") }
+ let(:release2) { create(:misc_release_with_contract_template, :native, project: project, person_name: "Jane Doe") }
+ let(:release3) { create(:misc_release_with_contract_template, :native, project: project, person_name: "Brad Doe") }
subject { 'MiscRelease' }
it_behaves_like "generates ZIP containig CSV file with all releases data"
+ it_behaves_like "generates ZIP containig CSV file with specific releases data"
end
context "generates ZIP for music releases" do
- let(:release) { create(:music_release_with_contract_template, project: project) }
+ let(:release) { create(:music_release_with_contract_template, project: project, name: "John") }
+ let(:release2) { create(:music_release_with_contract_template, project: project, name: "Jane") }
+ let(:release3) { create(:music_release_with_contract_template, project: project, name: "Brad") }
subject { 'MusicRelease' }
it_behaves_like "generates ZIP containig CSV file with all releases data"
+ it_behaves_like "generates ZIP containig CSV file with specific releases data"
end
context "generates ZIP for talent releases" do
- let(:release) { create(:talent_release_with_contract_template, :native, project: project) }
+ let(:release) { create(:talent_release_with_contract_template, :native, project: project, person_name: "John Doe") }
+ let(:release2) { create(:talent_release_with_contract_template, :native, project: project, person_name: "Jane Doe") }
+ let(:release3) { create(:talent_release_with_contract_template, :native, project: project, person_name: "Brad Doe") }
subject { 'TalentRelease' }
it_behaves_like "generates ZIP containig CSV file with all releases data"
+ it_behaves_like "generates ZIP containig CSV file with specific releases data"
end
context "When there are errors" do