Upstream sync
This commit is contained in:
@@ -106,7 +106,7 @@ class MaterialReleasesController < ApplicationController
|
||||
:term_id, :term_text,
|
||||
:restriction_id, :restriction_text,
|
||||
:description,
|
||||
:contract, { photos: [] }
|
||||
:contract, files: []
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ class Public::MaterialReleasesController < Public::BaseController
|
||||
params.require(:material_release).permit(person_params, guardian_params, second_guardian_params, :minor,
|
||||
:name, :address_street1, :address_street2, :address_city, :address_state, :address_zip, :address_country,
|
||||
:signature_base64,
|
||||
:locale, :contract_template, :description, photos: []
|
||||
:locale, :contract_template, :description, files: []
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@@ -15,7 +15,8 @@ class AcquiredMediaRelease < ApplicationRecord
|
||||
include SecondGuardianPhotoable
|
||||
include GuardianName
|
||||
include SecondGuardianName
|
||||
|
||||
include FilesFilterable
|
||||
|
||||
class << self
|
||||
def custom_csv_exportable_headers
|
||||
%i[name files_count owner_info]
|
||||
@@ -106,16 +107,4 @@ class AcquiredMediaRelease < ApplicationRecord
|
||||
def files_count
|
||||
files.any? ? files.size : I18n.t('acquired_media_releases.acquired_media_release.no_media')
|
||||
end
|
||||
|
||||
def image_files
|
||||
files_blobs.where("content_type ILIKE ?", "%image%")
|
||||
end
|
||||
|
||||
def video_files
|
||||
files_blobs.where("content_type ILIKE ?", "%video%")
|
||||
end
|
||||
|
||||
def other_files
|
||||
files_blobs.where("NOT content_type ILIKE ANY (array[?])", ["%image%", "%video%"])
|
||||
end
|
||||
end
|
||||
|
||||
17
app/models/concerns/files_filterable.rb
Normal file
17
app/models/concerns/files_filterable.rb
Normal file
@@ -0,0 +1,17 @@
|
||||
module FilesFilterable
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
def image_files
|
||||
files_blobs.where("content_type ILIKE ?", "%image%")
|
||||
end
|
||||
|
||||
def video_files
|
||||
files_blobs.where("content_type ILIKE ?", "%video%")
|
||||
end
|
||||
|
||||
def other_files
|
||||
files_blobs.where("NOT content_type ILIKE ANY (array[?])", ["%image%", "%video%"])
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -3,7 +3,7 @@ class MaterialRelease < ApplicationRecord
|
||||
include Contractable
|
||||
include Exploitable
|
||||
include Notable
|
||||
include Photoable
|
||||
include Photoable # This association needs to be removed after changing the API. Removing it right now will cause failure in API specs.
|
||||
include Releasable
|
||||
include Searchable
|
||||
include Signable
|
||||
@@ -16,11 +16,11 @@ class MaterialRelease < ApplicationRecord
|
||||
include SecondGuardianPhotoable
|
||||
include GuardianName
|
||||
include SecondGuardianName
|
||||
|
||||
include FilesFilterable
|
||||
|
||||
class << self
|
||||
def custom_csv_exportable_headers
|
||||
%i[name owner_info]
|
||||
%i[name owner_info files_count]
|
||||
end
|
||||
end
|
||||
|
||||
@@ -56,6 +56,8 @@ class MaterialRelease < ApplicationRecord
|
||||
%w[guardian_2_address_zip zip],
|
||||
%w[guardian_2_address_country country]
|
||||
]
|
||||
|
||||
has_many_attached :files
|
||||
|
||||
# We don't care for the argument but method WILL receive option name
|
||||
# when called from inside with_option block, hence * argument
|
||||
@@ -92,4 +94,8 @@ class MaterialRelease < ApplicationRecord
|
||||
def uses_edl?
|
||||
true
|
||||
end
|
||||
|
||||
def files_count
|
||||
files.any? ? files.size : I18n.t('material_releases.material_release.no_media')
|
||||
end
|
||||
end
|
||||
|
||||
@@ -19,12 +19,16 @@ class MaterialReleasePolicy < ReleasePolicy
|
||||
user.manager? || user.account_manager?
|
||||
end
|
||||
|
||||
def edit_photos?
|
||||
def edit_files?
|
||||
true
|
||||
end
|
||||
|
||||
def update_files?
|
||||
edit_files?
|
||||
end
|
||||
|
||||
def update_photos?
|
||||
edit_photos?
|
||||
edit_files?
|
||||
end
|
||||
|
||||
def tag_multiple?
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
<%= javascript_tag nonce: true do %>
|
||||
new Clappr.Player({
|
||||
parentId: '#broadcast_video',
|
||||
source: "<%= @broadcast.stream_playback_url %>",
|
||||
source: "<%= @broadcast.full_live_stream_playback_url %>",
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
mute: true,
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<% if releasable.class == AcquiredMediaRelease %>
|
||||
<% if releasable.respond_to?(:image_files) %>
|
||||
<div class="page">
|
||||
<%= render "contracts/files", release: releasable, preview: preview %>
|
||||
</div>
|
||||
|
||||
@@ -57,8 +57,8 @@
|
||||
|
||||
<hr>
|
||||
|
||||
<%= field_set_tag content_tag(:span, t(".photos.heading"), class: "h6 text-muted text-uppercase") do %>
|
||||
<%= render "shared/photos_dropzone_fields", form: form, release: material_release %>
|
||||
<%= field_set_tag content_tag(:span, t(".files.heading"), class: "h6 text-muted text-uppercase") do %>
|
||||
<%= render "shared/releasable_files_dropzone", form: form, releasable: material_release %>
|
||||
|
||||
<div class="<%= class_string("collapse" => !material_release.minor?) %>" data-ujs-target="guardian-fields">
|
||||
<br>
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
<% end %>
|
||||
</td>
|
||||
<td>
|
||||
<% if material_release.photo.attached? %>
|
||||
<%= image_tag medium_variant(material_release.photo), class: "img-fluid" %>
|
||||
<% if material_release.files.any? %>
|
||||
<%= material_release.files.size %>
|
||||
<% else %>
|
||||
<%= fa_icon("warning", text: t(".no_photos"), class: "text-danger") %>
|
||||
<%= fa_icon("warning", text: t(".no_media"), class: "text-danger") %>
|
||||
<% end %>
|
||||
</td>
|
||||
<td>
|
||||
@@ -41,8 +41,8 @@
|
||||
<% if policy(material_release.tags).new? %>
|
||||
<%= link_to fa_icon("tags fw", text: "Tags"), [:new, material_release, :acts_as_taggable_on_tag], class: "dropdown-item", remote: true %>
|
||||
<% end %>
|
||||
<% if policy(material_release).edit_photos? %>
|
||||
<%= link_to fa_icon("picture-o fw", text: "Photos"), [:edit, material_release, :photos], class: "dropdown-item" %>
|
||||
<% if policy(material_release).edit_files? %>
|
||||
<%= link_to fa_icon("file-o fw", text: "Add Media"), [:edit, material_release, :files], class: "dropdown-item" %>
|
||||
<% end %>
|
||||
<% if policy(Contract).show? && (material_release.contract.attached? || material_release.contract_template.present?) %>
|
||||
<%= link_to fa_icon("download fw", text: "Download"), [material_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<tr>
|
||||
<th data-behavior="all-selectable"><%= check_box_tag "material_release_ids[]", false, false %></th>
|
||||
<th><%= t '.table_headers.approved'%></th>
|
||||
<th></th>
|
||||
<th><%= t(".table_headers.files_count") %></th>
|
||||
<th><%= MaterialRelease.human_attribute_name(:name) %></th>
|
||||
<th><%= t(".table_headers.owner_info") %>
|
||||
<th><%= t(".table_headers.notes") %></th>
|
||||
|
||||
@@ -45,8 +45,8 @@
|
||||
<%= render "shared/address_fields", form: form, subject: "person", required: true %>
|
||||
<% end %>
|
||||
|
||||
<%= card_field_set_tag t(".photo.heading") do %>
|
||||
<%= render "shared/photos_dropzone_fields", form: form, release: @material_release %>
|
||||
<%= card_field_set_tag t(".files.heading") do %>
|
||||
<%= render "shared/releasable_files_dropzone", form: form, releasable: @material_release %>
|
||||
<% end %>
|
||||
|
||||
<hr>
|
||||
|
||||
Reference in New Issue
Block a user