fix MR comments
This commit is contained in:
@@ -21,7 +21,7 @@ class GenerateContractsZipJob < ApplicationJob
|
||||
zipfile.add(attachment, File.join("#{dir}/", attachment))
|
||||
end
|
||||
|
||||
if Object.const_get(@release_type).include?(CsvExportable)
|
||||
if @release_type.constantize.include?(CsvExportable)
|
||||
csv_file = generate_csv releases
|
||||
zipfile.get_output_stream("#{@folder_name}.csv") { |f| f.puts(csv_file) }
|
||||
end
|
||||
@@ -49,7 +49,7 @@ class GenerateContractsZipJob < ApplicationJob
|
||||
private
|
||||
|
||||
def generate_csv(releases)
|
||||
release_class = Object.const_get @release_type
|
||||
release_class = @release_type.constantize
|
||||
headers = release_class.csv_headers
|
||||
|
||||
CSV.generate(headers: true) do |csv|
|
||||
|
||||
@@ -11,6 +11,12 @@ class AcquiredMediaRelease < ApplicationRecord
|
||||
include PersonName
|
||||
include CsvExportable
|
||||
|
||||
class << self
|
||||
def custom_csv_exportable_headers
|
||||
%i[name file_infos_count]
|
||||
end
|
||||
end
|
||||
|
||||
has_many :file_infos, as: :releasable, dependent: :destroy
|
||||
|
||||
accepts_nested_attributes_for :file_infos
|
||||
@@ -58,4 +64,8 @@ class AcquiredMediaRelease < ApplicationRecord
|
||||
def uses_edl?
|
||||
true
|
||||
end
|
||||
|
||||
def file_infos_count
|
||||
file_infos.any? ? file_infos.size : I18n.t('acquired_media_releases.acquired_media_release.no_media')
|
||||
end
|
||||
end
|
||||
|
||||
@@ -17,6 +17,12 @@ class AppearanceRelease < ApplicationRecord
|
||||
include SecondGuardianName
|
||||
include CsvExportable
|
||||
|
||||
class << self
|
||||
def custom_csv_exportable_headers
|
||||
%i[name contact_info]
|
||||
end
|
||||
end
|
||||
|
||||
has_one_attached :person_photo
|
||||
|
||||
composed_of :person_address,
|
||||
|
||||
@@ -6,64 +6,29 @@ module CsvExportable
|
||||
COMMON_HEADERS = %i[notes tags signed_at].freeze
|
||||
COMMON_VALUES = %w[clean_notes clean_tags signed_on].freeze
|
||||
|
||||
HEADERS = {
|
||||
acquired_media_release: %i[name file_infos_count] + COMMON_HEADERS,
|
||||
appearance_release: %i[name contact_info] + COMMON_HEADERS,
|
||||
location_release: %i[name address] + COMMON_HEADERS,
|
||||
material_release: %i[name] + COMMON_HEADERS,
|
||||
medical_release: %i[approved name contact_info] + COMMON_HEADERS,
|
||||
misc_release: %i[name contact_info] + COMMON_HEADERS,
|
||||
music_release: %i[name file_infos_count composers_count publishers_count] + COMMON_HEADERS,
|
||||
talent_release: %i[name phone email] + COMMON_HEADERS
|
||||
}.freeze
|
||||
|
||||
VALUES = {
|
||||
acquired_media_release: %w[name file_count] + COMMON_VALUES,
|
||||
appearance_release: %w[name contact_info] + COMMON_VALUES,
|
||||
location_release: %w[name address] + COMMON_VALUES,
|
||||
material_release: %w[name] + COMMON_VALUES,
|
||||
medical_release: %w[approved? name contact_info] + COMMON_VALUES,
|
||||
misc_release: %w[name contact_info] + COMMON_VALUES,
|
||||
music_release: %w[name music_file_count music_composers_count music_publishers_count] + COMMON_VALUES,
|
||||
talent_release: %w[name person_phone person_email] + COMMON_VALUES
|
||||
}.freeze
|
||||
|
||||
included do
|
||||
class << self
|
||||
def custom_csv_exportable_headers
|
||||
[]
|
||||
end
|
||||
|
||||
def csv_headers
|
||||
plural_class_name = self.name.underscore.pluralize
|
||||
headers = HEADERS[self.name.underscore.to_sym]
|
||||
headers = custom_csv_exportable_headers + COMMON_HEADERS
|
||||
|
||||
headers.map do |header|
|
||||
I18n.t("#{plural_class_name}.index.table_headers.#{header}")
|
||||
I18n.t("#{model_name.plural}.index.table_headers.#{header}")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def to_csv_row
|
||||
VALUES[self.class.name.underscore.to_sym].map do |function|
|
||||
(self.class.custom_csv_exportable_headers + COMMON_VALUES).map do |function|
|
||||
send(function)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def file_count
|
||||
self.file_infos.any? ? self.file_infos.size : I18n.t('acquired_media_releases.acquired_media_release.no_media')
|
||||
end
|
||||
|
||||
def music_file_count
|
||||
file_infos.size
|
||||
end
|
||||
|
||||
def music_composers_count
|
||||
composers.size
|
||||
end
|
||||
|
||||
def music_publishers_count
|
||||
publishers.size
|
||||
end
|
||||
|
||||
def contact_info
|
||||
contact_info = ''
|
||||
contact_info += "#{person_address}; " if person_address.present?
|
||||
|
||||
@@ -12,6 +12,12 @@ class LocationRelease < ApplicationRecord
|
||||
include PersonName
|
||||
include CsvExportable
|
||||
|
||||
class << self
|
||||
def custom_csv_exportable_headers
|
||||
%i[name address]
|
||||
end
|
||||
end
|
||||
|
||||
composed_of :address,
|
||||
mapping: [
|
||||
%w(address_street1 street1),
|
||||
|
||||
@@ -11,8 +11,14 @@ class MaterialRelease < ApplicationRecord
|
||||
include Taggable
|
||||
include PersonName
|
||||
include CsvExportable
|
||||
|
||||
composed_of :person_address,
|
||||
|
||||
class << self
|
||||
def custom_csv_exportable_headers
|
||||
%i[name]
|
||||
end
|
||||
end
|
||||
|
||||
composed_of :person_address,
|
||||
class_name: "Address",
|
||||
mapping: [
|
||||
%w(person_address_street1 street1),
|
||||
@@ -31,15 +37,15 @@ class MaterialRelease < ApplicationRecord
|
||||
validates :signature, attached: true
|
||||
end
|
||||
|
||||
searchable_on %i[
|
||||
name
|
||||
searchable_on %i[
|
||||
name
|
||||
person_address_street1 person_address_street2 person_address_city person_address_state person_address_zip person_address_country
|
||||
]
|
||||
|
||||
def contact_person
|
||||
@contact_person ||= Contact.new(person_name, person_address, person_email, person_phone)
|
||||
end
|
||||
|
||||
|
||||
def minor?
|
||||
false
|
||||
end
|
||||
|
||||
@@ -13,6 +13,12 @@ class MedicalRelease < ApplicationRecord
|
||||
include SecondGuardianName
|
||||
include CsvExportable
|
||||
|
||||
class << self
|
||||
def custom_csv_exportable_headers
|
||||
%i[approved? name contact_info]
|
||||
end
|
||||
end
|
||||
|
||||
NUMBER_OF_CUSTOM_FIELDS = 15
|
||||
|
||||
composed_of :person_address,
|
||||
|
||||
@@ -11,6 +11,12 @@ class MiscRelease < ApplicationRecord
|
||||
include GuardianPhotoable
|
||||
include CsvExportable
|
||||
|
||||
class << self
|
||||
def custom_csv_exportable_headers
|
||||
%i[name contact_info]
|
||||
end
|
||||
end
|
||||
|
||||
NUMBER_OF_CUSTOM_FIELDS = 15
|
||||
|
||||
composed_of :person_address,
|
||||
|
||||
@@ -8,7 +8,13 @@ class MusicRelease < ApplicationRecord
|
||||
include Taggable
|
||||
include PersonName
|
||||
include CsvExportable
|
||||
|
||||
|
||||
class << self
|
||||
def custom_csv_exportable_headers
|
||||
%i[name file_infos_count composers_count publishers_count]
|
||||
end
|
||||
end
|
||||
|
||||
has_many :file_infos, as: :releasable, dependent: :destroy
|
||||
has_many :composers, dependent: :destroy
|
||||
has_many :publishers, dependent: :destroy
|
||||
@@ -73,6 +79,18 @@ class MusicRelease < ApplicationRecord
|
||||
false
|
||||
end
|
||||
|
||||
def file_infos_count
|
||||
file_infos.size
|
||||
end
|
||||
|
||||
def composers_count
|
||||
composers.size
|
||||
end
|
||||
|
||||
def publishers_count
|
||||
publishers.size
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def publisher_percentages_add_up_to_100
|
||||
|
||||
@@ -16,6 +16,12 @@ class TalentRelease < ApplicationRecord
|
||||
include SecondGuardianName
|
||||
include CsvExportable
|
||||
|
||||
class << self
|
||||
def custom_csv_exportable_headers
|
||||
%i[name phone email]
|
||||
end
|
||||
end
|
||||
|
||||
composed_of :person_address,
|
||||
class_name: "Address",
|
||||
mapping: [
|
||||
@@ -87,6 +93,14 @@ class TalentRelease < ApplicationRecord
|
||||
person_name
|
||||
end
|
||||
|
||||
def phone
|
||||
person_phone
|
||||
end
|
||||
|
||||
def email
|
||||
person_email
|
||||
end
|
||||
|
||||
def filename_suffix
|
||||
"#{person_last_name} #{person_first_name}"
|
||||
end
|
||||
|
||||
@@ -803,6 +803,7 @@ en:
|
||||
empty: Medical releases will appear here
|
||||
table_headers:
|
||||
approved: Approved
|
||||
approved?: Approved
|
||||
contact_info: Contact info
|
||||
name: Person name
|
||||
notes: Notes
|
||||
|
||||
@@ -334,6 +334,7 @@ es:
|
||||
index:
|
||||
table_headers:
|
||||
approved: Approved (ES)
|
||||
approved?: Approved (ES)
|
||||
contact_info: Contact info (ES)
|
||||
name: Person name (ES)
|
||||
notes: Notes (ES)
|
||||
|
||||
@@ -65,9 +65,6 @@ describe GenerateContractsZipJob do
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
context "When there are errors" do
|
||||
|
||||
Reference in New Issue
Block a user