Compare commits
10 Commits
implement-
...
task-me-mv
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
71ad502cc1 | ||
|
|
1cd125382f | ||
|
|
749aad3467 | ||
|
|
c167889ea3 | ||
|
|
3e917c29f0 | ||
|
|
8ad89371b8 | ||
|
|
9d7e2c044a | ||
|
|
88836e937e | ||
|
|
e3d4d22a34 | ||
|
|
3690268f83 |
4
Gemfile
4
Gemfile
@@ -30,9 +30,9 @@ gem "active_storage_base64", "~> 1.0.0"
|
|||||||
gem "image_processing", "~> 1.2"
|
gem "image_processing", "~> 1.2"
|
||||||
|
|
||||||
# Use Amazon Web Services S3 for file uploads in production
|
# Use Amazon Web Services S3 for file uploads in production
|
||||||
gem "aws-sdk-s3", "~> 1.48", require: false, group: [:production, :review]
|
gem "aws-sdk-s3", "~> 1.31.0", require: false, group: [:production, :review]
|
||||||
# Allow AWS API requests to be signed using IAM credentials
|
# Allow AWS API requests to be signed using IAM credentials
|
||||||
gem "aws-sigv4", "~> 1.1"
|
gem "aws-sigv4", "~> 1.0.2"
|
||||||
|
|
||||||
# Reduces boot times through caching; required in config/boot.rb
|
# Reduces boot times through caching; required in config/boot.rb
|
||||||
gem "bootsnap", ">= 1.1.0", require: false
|
gem "bootsnap", ">= 1.1.0", require: false
|
||||||
|
|||||||
31
Gemfile.lock
31
Gemfile.lock
@@ -117,22 +117,21 @@ GEM
|
|||||||
ast (2.4.0)
|
ast (2.4.0)
|
||||||
autoprefixer-rails (9.7.3)
|
autoprefixer-rails (9.7.3)
|
||||||
execjs
|
execjs
|
||||||
aws-eventstream (1.1.0)
|
aws-eventstream (1.0.3)
|
||||||
aws-partitions (1.337.0)
|
aws-partitions (1.210.0)
|
||||||
aws-sdk-core (3.102.1)
|
aws-sdk-core (3.46.2)
|
||||||
aws-eventstream (~> 1, >= 1.0.2)
|
aws-eventstream (~> 1.0)
|
||||||
aws-partitions (~> 1, >= 1.239.0)
|
aws-partitions (~> 1.0)
|
||||||
aws-sigv4 (~> 1.1)
|
aws-sigv4 (~> 1.0)
|
||||||
jmespath (~> 1.0)
|
jmespath (~> 1.0)
|
||||||
aws-sdk-kms (1.35.0)
|
aws-sdk-kms (1.13.0)
|
||||||
aws-sdk-core (~> 3, >= 3.99.0)
|
aws-sdk-core (~> 3, >= 3.39.0)
|
||||||
aws-sigv4 (~> 1.1)
|
aws-sigv4 (~> 1.0)
|
||||||
aws-sdk-s3 (1.72.0)
|
aws-sdk-s3 (1.31.0)
|
||||||
aws-sdk-core (~> 3, >= 3.102.1)
|
aws-sdk-core (~> 3, >= 3.39.0)
|
||||||
aws-sdk-kms (~> 1)
|
aws-sdk-kms (~> 1)
|
||||||
aws-sigv4 (~> 1.1)
|
aws-sigv4 (~> 1.0)
|
||||||
aws-sigv4 (1.2.1)
|
aws-sigv4 (1.0.3)
|
||||||
aws-eventstream (~> 1, >= 1.0.2)
|
|
||||||
axlsx (3.0.0.pre)
|
axlsx (3.0.0.pre)
|
||||||
htmlentities (~> 4.3, >= 4.3.4)
|
htmlentities (~> 4.3, >= 4.3.4)
|
||||||
mimemagic (~> 0.3)
|
mimemagic (~> 0.3)
|
||||||
@@ -515,8 +514,8 @@ DEPENDENCIES
|
|||||||
activeresource (= 5.1.0)
|
activeresource (= 5.1.0)
|
||||||
acts-as-taggable-on!
|
acts-as-taggable-on!
|
||||||
analytics-ruby
|
analytics-ruby
|
||||||
aws-sdk-s3 (~> 1.48)
|
aws-sdk-s3 (~> 1.31.0)
|
||||||
aws-sigv4 (~> 1.1)
|
aws-sigv4 (~> 1.0.2)
|
||||||
axlsx (~> 3.0.0.pre)
|
axlsx (~> 3.0.0.pre)
|
||||||
axlsx_rails (~> 0.5.2)
|
axlsx_rails (~> 0.5.2)
|
||||||
axlsx_styler (~> 0.2.0)
|
axlsx_styler (~> 0.2.0)
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
$(document).on("turbolinks:load", function() {
|
|
||||||
$("[data-behavior=update-required-status]").click(function(e) {
|
|
||||||
const required = !!($(this)[0] && $(this)[0].checked);
|
|
||||||
|
|
||||||
|
|
||||||
$("[data-required-tag=guardian]").each(function(index, element) {
|
|
||||||
const labelForField = element.previousSibling;
|
|
||||||
|
|
||||||
element.required = required;
|
|
||||||
labelForField.classList.add("required");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@@ -17,7 +17,7 @@ class AccountsController < ApplicationController
|
|||||||
|
|
||||||
if sign_in(user)
|
if sign_in(user)
|
||||||
TrackAnalyticsJob.perform_later(user, user.primary_account, :track_guest_sign_up, user_agent: request.user_agent, user_ip: request.remote_ip)
|
TrackAnalyticsJob.perform_later(user, user.primary_account, :track_guest_sign_up, user_agent: request.user_agent, user_ip: request.remote_ip)
|
||||||
SubmitHubspotFormJob.perform_later(user.first_name, user.last_name, user.email, account.name, i_m_interested_in: user.interested_product_name)
|
SubmitHubspotFormJob.perform_later(user.email, account.name, i_m_interested_in: user.interested_product_name)
|
||||||
redirect_to signed_in_root_path
|
redirect_to signed_in_root_path
|
||||||
else
|
else
|
||||||
redirect_to new_session_path, alert: t(".notice")
|
redirect_to new_session_path, alert: t(".notice")
|
||||||
|
|||||||
@@ -17,9 +17,7 @@ class Api::ApiController < ActionController::Base
|
|||||||
def return_error(exception)
|
def return_error(exception)
|
||||||
raise exception if Rails.env.test?
|
raise exception if Rails.env.test?
|
||||||
|
|
||||||
Raven.capture_exception(exception)
|
logger.error "==Handled======="
|
||||||
|
|
||||||
logger.error "==Handled======"
|
|
||||||
logger.error exception.message
|
logger.error exception.message
|
||||||
logger.error exception.backtrace.join("\n")
|
logger.error exception.backtrace.join("\n")
|
||||||
logger.error "==Handled======="
|
logger.error "==Handled======="
|
||||||
|
|||||||
@@ -19,11 +19,5 @@ class Api::AppearanceReleasesController < Api::ReleasesController
|
|||||||
guardian_photo[:io] = StringIO.new(Base64.decode64(guardian_photo[:io]))
|
guardian_photo[:io] = StringIO.new(Base64.decode64(guardian_photo[:io]))
|
||||||
release.guardian_photo.attach(io: guardian_photo[:io], filename: guardian_photo[:filename])
|
release.guardian_photo.attach(io: guardian_photo[:io], filename: guardian_photo[:filename])
|
||||||
end
|
end
|
||||||
|
|
||||||
guardian_2_photo = release_create_params[:guardian_2_photo]
|
|
||||||
if guardian_2_photo
|
|
||||||
guardian_2_photo[:io] = StringIO.new(Base64.decode64(guardian_2_photo[:io]))
|
|
||||||
release.guardian_2_photo.attach(io: guardian_2_photo[:io], filename: guardian_2_photo[:filename])
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
class Api::MedicalReleasesController < Api::ReleasesController
|
|
||||||
deserializable_resource :medical_release, only: [:create, :update]
|
|
||||||
|
|
||||||
def model_name
|
|
||||||
"medical_release"
|
|
||||||
end
|
|
||||||
|
|
||||||
def attributes_for_index
|
|
||||||
[:name]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
class Api::MiscReleasesController < Api::ReleasesController
|
|
||||||
deserializable_resource :misc_release, only: [:create, :update]
|
|
||||||
|
|
||||||
def model_name
|
|
||||||
"misc_release"
|
|
||||||
end
|
|
||||||
|
|
||||||
def attributes_for_index
|
|
||||||
[:name]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -103,16 +103,10 @@ class Api::ReleasesController < Api::ApiController
|
|||||||
if ["appearance_release", "talent_release"].include?(name)
|
if ["appearance_release", "talent_release"].include?(name)
|
||||||
has_many :guardian_photos do
|
has_many :guardian_photos do
|
||||||
data do
|
data do
|
||||||
[
|
[@object.guardian_photo.try(:attachment)].compact
|
||||||
@object.guardian_photo.try(:attachment),
|
|
||||||
@object.guardian_2_photo.try(:attachment)
|
|
||||||
].compact
|
|
||||||
end
|
end
|
||||||
meta do
|
meta do
|
||||||
{ count:
|
{ count: @object.try(:guardian_photo).try(:attached?) ? 1 : 0 }
|
||||||
(@object.try(:guardian_photo).try(:attached?) ? 1 : 0) +
|
|
||||||
(@object.try(:guardian_2_photo).try(:attached?) ? 1 : 0)
|
|
||||||
}
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -176,7 +170,7 @@ class Api::ReleasesController < Api::ApiController
|
|||||||
|
|
||||||
def release_create_params
|
def release_create_params
|
||||||
parameters = params.require(model_name).permit!
|
parameters = params.require(model_name).permit!
|
||||||
keys = model_constant.new.attributes.keys + [:guardian_photo, :guardian_2_photo, :person_photo, :photos, :signature, :signature_base64, :file_infos_attributes]
|
keys = model_constant.new.attributes.keys + [:guardian_photo, :person_photo, :photos, :signature, :signature_base64, :file_infos_attributes]
|
||||||
parameters[:signature_base64] = parameters[:signature]
|
parameters[:signature_base64] = parameters[:signature]
|
||||||
parameters = parameters.slice(*keys).except(:created_at, :updated_at, :id, :user_id, :signature)
|
parameters = parameters.slice(*keys).except(:created_at, :updated_at, :id, :user_id, :signature)
|
||||||
parameters
|
parameters
|
||||||
|
|||||||
@@ -10,10 +10,8 @@ class Api::SyncController < Api::ApiController
|
|||||||
@appearance_releases = (AppearanceRelease.where(project: accessible_projects))
|
@appearance_releases = (AppearanceRelease.where(project: accessible_projects))
|
||||||
@location_releases = (LocationRelease.where(project: accessible_projects))
|
@location_releases = (LocationRelease.where(project: accessible_projects))
|
||||||
@material_releases = (MaterialRelease.where(project: accessible_projects))
|
@material_releases = (MaterialRelease.where(project: accessible_projects))
|
||||||
@medical_releases = MedicalRelease.where(project: accessible_projects)
|
|
||||||
@misc_releases = MiscRelease.where(project: accessible_projects)
|
|
||||||
@talent_releases = (TalentRelease.where(project: accessible_projects))
|
@talent_releases = (TalentRelease.where(project: accessible_projects))
|
||||||
@notes = notes_query(Note.where(notable: @appearance_releases + @location_releases + @material_releases + @medical_releases + @misc_releases + @talent_releases + @acquired_media_releases ))
|
@notes = notes_query(Note.where(notable: @appearance_releases + @location_releases + @material_releases + @talent_releases + @acquired_media_releases ))
|
||||||
|
|
||||||
render json: {
|
render json: {
|
||||||
data: {
|
data: {
|
||||||
@@ -24,8 +22,6 @@ class Api::SyncController < Api::ApiController
|
|||||||
appearance_releases: releases_query(@appearance_releases),
|
appearance_releases: releases_query(@appearance_releases),
|
||||||
location_releases: releases_query(@location_releases),
|
location_releases: releases_query(@location_releases),
|
||||||
material_releases: releases_query(@material_releases),
|
material_releases: releases_query(@material_releases),
|
||||||
medical_releases: releases_query(@medical_releases),
|
|
||||||
misc_releases: releases_query(@misc_releases),
|
|
||||||
talent_releases: releases_query(@talent_releases),
|
talent_releases: releases_query(@talent_releases),
|
||||||
notes: @notes
|
notes: @notes
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,11 +17,5 @@ class Api::TalentReleasesController < Api::ReleasesController
|
|||||||
guardian_photo[:io] = StringIO.new(Base64.decode64(guardian_photo[:io]))
|
guardian_photo[:io] = StringIO.new(Base64.decode64(guardian_photo[:io]))
|
||||||
release.guardian_photo.attach(io: guardian_photo[:io], filename: guardian_photo[:filename])
|
release.guardian_photo.attach(io: guardian_photo[:io], filename: guardian_photo[:filename])
|
||||||
end
|
end
|
||||||
|
|
||||||
guardian_2_photo = release_create_params[:guardian_2_photo]
|
|
||||||
if guardian_2_photo
|
|
||||||
guardian_2_photo[:io] = StringIO.new(Base64.decode64(guardian_2_photo[:io]))
|
|
||||||
release.guardian_2_photo.attach(io: guardian_2_photo[:io], filename: guardian_2_photo[:filename])
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -5,8 +5,6 @@ class Api::UserTokenController < Knock::AuthTokenController
|
|||||||
|
|
||||||
# Catch exception and return JSON-formatted error
|
# Catch exception and return JSON-formatted error
|
||||||
def return_error(exception)
|
def return_error(exception)
|
||||||
Raven.capture_exception(exception)
|
|
||||||
|
|
||||||
logger.error "==Handled======="
|
logger.error "==Handled======="
|
||||||
logger.error exception.message
|
logger.error exception.message
|
||||||
logger.error exception.backtrace.join("\n")
|
logger.error exception.backtrace.join("\n")
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
class ApprovalsController < ApplicationController
|
|
||||||
include MedicalReleaseContext
|
|
||||||
|
|
||||||
before_action :set_medical_release
|
|
||||||
before_action :set_project
|
|
||||||
|
|
||||||
layout "project"
|
|
||||||
|
|
||||||
def create
|
|
||||||
@medical_release.approve_by(current_user)
|
|
||||||
if @medical_release.save
|
|
||||||
redirect_to [@project, :medical_releases], notice: t('.release_approved')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def set_project
|
|
||||||
@project = @medical_release.project
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -5,7 +5,6 @@ class BroadcastsController < ApplicationController
|
|||||||
before_action :build_broadcast, only: [:new, :create]
|
before_action :build_broadcast, only: [:new, :create]
|
||||||
before_action :set_broadcast, only: [:show, :destroy, :update]
|
before_action :set_broadcast, only: [:show, :destroy, :update]
|
||||||
before_action :set_multi_view_broadcasts, only: [:show]
|
before_action :set_multi_view_broadcasts, only: [:show]
|
||||||
before_action :show_splash_screen, only: :index
|
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@broadcasts = filtered_broadcasts.order_by_recent.paginate(page: params[:page])
|
@broadcasts = filtered_broadcasts.order_by_recent.paginate(page: params[:page])
|
||||||
@@ -50,10 +49,6 @@ class BroadcastsController < ApplicationController
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def show_splash_screen
|
|
||||||
render :splash if broadcasts.count.zero?
|
|
||||||
end
|
|
||||||
|
|
||||||
def broadcast_params
|
def broadcast_params
|
||||||
params.require(:broadcast).permit(:name, files: [])
|
params.require(:broadcast).permit(:name, files: [])
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
class ContractTemplates::DuplicatesController < ApplicationController
|
|
||||||
before_action :set_contract_template
|
|
||||||
|
|
||||||
def create
|
|
||||||
authorize(ContractTemplate)
|
|
||||||
new_contract_template = @contract_template.dup
|
|
||||||
new_contract_template.name = I18n.t('contract_templates.duplicate.name_prefix', template_name: @contract_template.name)
|
|
||||||
|
|
||||||
# Duplicate rich text fields
|
|
||||||
|
|
||||||
new_contract_template.body = @contract_template.body
|
|
||||||
new_contract_template.guardian_clause = @contract_template.guardian_clause
|
|
||||||
new_contract_template.signature_legal_text = @contract_template.signature_legal_text
|
|
||||||
|
|
||||||
if new_contract_template.save
|
|
||||||
redirect_to [:edit, new_contract_template]
|
|
||||||
else
|
|
||||||
redirect_to [@contract_template.project, :contract_templates], alert: t('.error')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def contract_templates
|
|
||||||
policy_scope(ContractTemplate)
|
|
||||||
end
|
|
||||||
|
|
||||||
def set_contract_template
|
|
||||||
@contract_template = contract_templates.find(params[:contract_template_id])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -5,10 +5,8 @@ class ContractTemplatesController < ApplicationController
|
|||||||
|
|
||||||
layout 'project'
|
layout 'project'
|
||||||
|
|
||||||
before_action :set_project, except: [:destroy, :edit, :update]
|
before_action :set_project, except: [:destroy]
|
||||||
before_action :set_contract_template, only: [:destroy, :edit, :update]
|
before_action :set_contract_template, only: [:destroy]
|
||||||
before_action :set_project_from_contract_template, only: [:edit, :update]
|
|
||||||
before_action :show_splash_screen, only: :index
|
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@contract_templates = contract_templates.non_archived.order_by_name.paginate(page: params[:page])
|
@contract_templates = contract_templates.non_archived.order_by_name.paginate(page: params[:page])
|
||||||
@@ -33,20 +31,6 @@ class ContractTemplatesController < ApplicationController
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def edit
|
|
||||||
@release_type = @contract_template.release_type
|
|
||||||
end
|
|
||||||
|
|
||||||
def update
|
|
||||||
@contract_template.attributes = contract_template_params
|
|
||||||
|
|
||||||
if @contract_template.save
|
|
||||||
redirect_to [@project, :contract_templates], notice: t('.notice')
|
|
||||||
else
|
|
||||||
render :edit
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
@contract_template.archive
|
@contract_template.archive
|
||||||
redirect_to [@contract_template.project, :contract_templates], alert: t('.archived_notice')
|
redirect_to [@contract_template.project, :contract_templates], alert: t('.archived_notice')
|
||||||
@@ -54,14 +38,6 @@ class ContractTemplatesController < ApplicationController
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def set_project_from_contract_template
|
|
||||||
@project = @contract_template.project
|
|
||||||
end
|
|
||||||
|
|
||||||
def show_splash_screen
|
|
||||||
render :splash if contract_templates.non_archived.count.zero?
|
|
||||||
end
|
|
||||||
|
|
||||||
def set_contract_template
|
def set_contract_template
|
||||||
@contract_template = authorize contract_templates.find(params[:id])
|
@contract_template = authorize contract_templates.find(params[:id])
|
||||||
end
|
end
|
||||||
@@ -81,11 +57,10 @@ class ContractTemplatesController < ApplicationController
|
|||||||
def contract_template_params
|
def contract_template_params
|
||||||
params
|
params
|
||||||
.require(:contract_template)
|
.require(:contract_template)
|
||||||
.permit(:name, :release_type, :body, :guardian_clause,
|
.permit(:name, :release_type, :body, :guardian_clause, :fee,
|
||||||
:signature_legal_text, :fee,
|
|
||||||
:applicable_medium_id, :applicable_medium_text,
|
:applicable_medium_id, :applicable_medium_text,
|
||||||
:territory_id, :territory_text,
|
:territory_id, :territory_text,
|
||||||
:term_id, :term_text, :accessibility,
|
:term_id, :term_text,
|
||||||
:restriction_id, :restriction_text,
|
:restriction_id, :restriction_text,
|
||||||
:question_1_text, :question_2_text,
|
:question_1_text, :question_2_text,
|
||||||
:question_3_text, :question_4_text,
|
:question_3_text, :question_4_text,
|
||||||
|
|||||||
@@ -46,7 +46,6 @@ class Public::MiscReleasesController < Public::BaseController
|
|||||||
.permit(
|
.permit(
|
||||||
person_params,
|
person_params,
|
||||||
guardian_params,
|
guardian_params,
|
||||||
questionnaire_params,
|
|
||||||
:signature_base64,
|
:signature_base64,
|
||||||
:locale,
|
:locale,
|
||||||
:contract_template,
|
:contract_template,
|
||||||
@@ -86,26 +85,6 @@ class Public::MiscReleasesController < Public::BaseController
|
|||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
def questionnaire_params
|
|
||||||
[
|
|
||||||
:question_1_answer,
|
|
||||||
:question_2_answer,
|
|
||||||
:question_3_answer,
|
|
||||||
:question_4_answer,
|
|
||||||
:question_5_answer,
|
|
||||||
:question_6_answer,
|
|
||||||
:question_7_answer,
|
|
||||||
:question_8_answer,
|
|
||||||
:question_9_answer,
|
|
||||||
:question_10_answer,
|
|
||||||
:question_11_answer,
|
|
||||||
:question_12_answer,
|
|
||||||
:question_13_answer,
|
|
||||||
:question_14_answer,
|
|
||||||
:question_15_answer,
|
|
||||||
]
|
|
||||||
end
|
|
||||||
|
|
||||||
def misc_release_params_with_locale
|
def misc_release_params_with_locale
|
||||||
misc_release_params.merge(locale: I18n.locale)
|
misc_release_params.merge(locale: I18n.locale)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -28,9 +28,8 @@ class StreamNotificationsController < ApplicationController
|
|||||||
asset_uid = notification.dig(:object, :id)
|
asset_uid = notification.dig(:object, :id)
|
||||||
playback_uid = notification.dig(:data, :playback_ids, 0, :id)
|
playback_uid = notification.dig(:data, :playback_ids, 0, :id)
|
||||||
file_name = notification.dig(:data, :static_renditions, :files, -1, :name)
|
file_name = notification.dig(:data, :static_renditions, :files, -1, :name)
|
||||||
duration = notification.dig(:data, :duration)
|
|
||||||
|
|
||||||
recording = @broadcast.broadcast_recordings.create!(asset_uid: asset_uid, asset_playback_uid: playback_uid, file_name: file_name, duration: duration)
|
recording = @broadcast.broadcast_recordings.create!(asset_uid: asset_uid, asset_playback_uid: playback_uid, file_name: file_name)
|
||||||
recordings = @broadcast.broadcast_recordings.order_by_recent.paginate(page: params[:page])
|
recordings = @broadcast.broadcast_recordings.order_by_recent.paginate(page: params[:page])
|
||||||
|
|
||||||
link = helpers.link_to(recording.broadcast_name.titleize, recording.download_url, target: "_blank")
|
link = helpers.link_to(recording.broadcast_name.titleize, recording.download_url, target: "_blank")
|
||||||
@@ -61,14 +60,9 @@ class StreamNotificationsController < ApplicationController
|
|||||||
def set_broadcast
|
def set_broadcast
|
||||||
if notification_type == "video.asset.static_renditions.ready"
|
if notification_type == "video.asset.static_renditions.ready"
|
||||||
live_stream_id = notification.dig(:stream_notification, :data, :live_stream_id)
|
live_stream_id = notification.dig(:stream_notification, :data, :live_stream_id)
|
||||||
@broadcast = Broadcast.find_by(stream_uid: live_stream_id)
|
@broadcast = Broadcast.find_by!(stream_uid: live_stream_id)
|
||||||
else
|
else
|
||||||
@broadcast = Broadcast.find_by(stream_uid: notification_object_id)
|
@broadcast = Broadcast.find_by!(stream_uid: notification_object_id)
|
||||||
end
|
|
||||||
|
|
||||||
if @broadcast.nil?
|
|
||||||
logger.info "Ignoring broadcast from other environment. Type = #{notification_type}. Id = #{live_stream_id} / #{notification_object_id}"
|
|
||||||
head :ok
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ class TaskRequestsController < ApplicationController
|
|||||||
before_action :set_project
|
before_action :set_project
|
||||||
before_action :build_task_request, only: [:new, :create]
|
before_action :build_task_request, only: [:new, :create]
|
||||||
before_action :set_task_request, only: [:show, :edit, :update, :cancel]
|
before_action :set_task_request, only: [:show, :edit, :update, :cancel]
|
||||||
before_action :show_splash_screen, only: :index
|
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@task_requests = task_requests.order_by_recent.paginate(page: params[:page])
|
@task_requests = task_requests.order_by_recent.paginate(page: params[:page])
|
||||||
@@ -47,10 +46,6 @@ class TaskRequestsController < ApplicationController
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def show_splash_screen
|
|
||||||
render :splash if task_requests.count.zero?
|
|
||||||
end
|
|
||||||
|
|
||||||
def task_request_params
|
def task_request_params
|
||||||
params.require(:task_request).permit(:description, :deadline, :time_allowed, :additional_notes, files: [])
|
params.require(:task_request).permit(:description, :deadline, :time_allowed, :additional_notes, files: [])
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ class VideosController < ApplicationController
|
|||||||
|
|
||||||
before_action :set_project, only: [:index, :new, :create, :landing]
|
before_action :set_project, only: [:index, :new, :create, :landing]
|
||||||
before_action :set_video, only: [:edit, :update]
|
before_action :set_video, only: [:edit, :update]
|
||||||
before_action :show_splash_screen, only: :index
|
|
||||||
|
|
||||||
def landing
|
def landing
|
||||||
authorize Video, :new?
|
authorize Video, :new?
|
||||||
@@ -61,10 +60,6 @@ class VideosController < ApplicationController
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def show_splash_screen
|
|
||||||
render :splash if videos.count.zero?
|
|
||||||
end
|
|
||||||
|
|
||||||
def set_project
|
def set_project
|
||||||
@project = policy_scope(Project).find(params[:project_id])
|
@project = policy_scope(Project).find(params[:project_id])
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -5,12 +5,4 @@ module TooltipHelper
|
|||||||
concat tag.div(class: "tooltip-inner")
|
concat tag.div(class: "tooltip-inner")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_approval_data_for_medical_release(medical_release)
|
|
||||||
if medical_release.approved_by_user_name.present?
|
|
||||||
"#{medical_release.approved_by_user_name} [#{medical_release.approved_by_user_email}]"
|
|
||||||
else
|
|
||||||
medical_release.approved_by_user_email
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -13,13 +13,10 @@ module WordmarkHelper
|
|||||||
css += options[:class].to_s
|
css += options[:class].to_s
|
||||||
|
|
||||||
content_tag(:div, class: css) do
|
content_tag(:div, class: css) do
|
||||||
elements = [
|
safe_join [
|
||||||
content_tag(:span, t("shared.#{product_name}")),
|
content_tag(:span, t("shared.#{product_name}")),
|
||||||
content_tag(:span, t("shared.me"))
|
content_tag(:span, t("shared.me"))
|
||||||
]
|
]
|
||||||
prefix = options[:prefix]
|
|
||||||
elements.unshift content_tag(:span, "#{prefix} ") unless prefix.blank?
|
|
||||||
safe_join elements
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ class GenerateContractsZipJob < ApplicationJob
|
|||||||
before_perform do |job|
|
before_perform do |job|
|
||||||
@project = job.arguments.first
|
@project = job.arguments.first
|
||||||
@download = job.arguments.second
|
@download = job.arguments.second
|
||||||
@release_type = job.arguments.third
|
release_type = job.arguments.third
|
||||||
@folder_name = "#{@project.name.parameterize}_#{get_release_name(@release_type).gsub('_', '-')}"
|
@folder_name = "#{@project.name.parameterize}_#{get_release_name(release_type).gsub('_', '-')}"
|
||||||
@download.update!(name: @folder_name, status: :pending)
|
@download.update!(name: @folder_name, status: :pending)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -20,14 +20,9 @@ class GenerateContractsZipJob < ApplicationJob
|
|||||||
files.each do |attachment|
|
files.each do |attachment|
|
||||||
zipfile.add(attachment, File.join("#{dir}/", attachment))
|
zipfile.add(attachment, File.join("#{dir}/", attachment))
|
||||||
end
|
end
|
||||||
|
|
||||||
if @release_type.constantize.include?(CsvExportable)
|
|
||||||
csv_file = generate_csv releases
|
|
||||||
zipfile.get_output_stream("#{@folder_name}.csv") { |f| f.puts(csv_file) }
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
@download.file.attach(io: File.open(zipfile_name), filename: "#{@folder_name}.zip")
|
@download.file.attach(io: File.open(zipfile_name), filename: @folder_name)
|
||||||
end
|
end
|
||||||
rescue StandardError => e
|
rescue StandardError => e
|
||||||
Rails.logger.error("Failed to generate download for project (##{project.id}) with release type #{release_type}\n" + e.message)
|
Rails.logger.error("Failed to generate download for project (##{project.id}) with release type #{release_type}\n" + e.message)
|
||||||
@@ -48,19 +43,6 @@ class GenerateContractsZipJob < ApplicationJob
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def generate_csv(releases)
|
|
||||||
release_class = @release_type.constantize
|
|
||||||
headers = release_class.csv_headers
|
|
||||||
|
|
||||||
CSV.generate(headers: true) do |csv|
|
|
||||||
csv << headers
|
|
||||||
releases.each do |release|
|
|
||||||
csv_row_data = release.to_csv_row
|
|
||||||
csv << csv_row_data
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def get_release_name(release_type)
|
def get_release_name(release_type)
|
||||||
release_type.constantize.model_name.plural
|
release_type.constantize.model_name.plural
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,13 +1,11 @@
|
|||||||
class SubmitHubspotFormJob < ApplicationJob
|
class SubmitHubspotFormJob < ApplicationJob
|
||||||
queue_as :default
|
queue_as :default
|
||||||
|
|
||||||
def perform(first_name, last_name, email, company_name, additional_params = {})
|
def perform(email, company_name, additional_params = {})
|
||||||
hubspot_form_guid = ENV["HUBSPOT_FORM_GUID"]
|
hubspot_form_guid = ENV["HUBSPOT_FORM_GUID"]
|
||||||
return unless hubspot_form_guid.present?
|
return unless hubspot_form_guid.present?
|
||||||
|
|
||||||
submission_params = {
|
submission_params = {
|
||||||
first_name: first_name,
|
|
||||||
last_name: last_name,
|
|
||||||
email: email,
|
email: email,
|
||||||
company: company_name
|
company: company_name
|
||||||
}.merge(additional_params)
|
}.merge(additional_params)
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ class Account < ApplicationRecord
|
|||||||
end
|
end
|
||||||
|
|
||||||
def taskme_enabled?
|
def taskme_enabled?
|
||||||
ENV["TASKME_ENABLED"] && (plan_uid.to_s == "me_suite" || plan_uid.to_s == "taskme")
|
plan_uid.to_s == "me_suite" || plan_uid.to_s == "taskme"
|
||||||
end
|
end
|
||||||
|
|
||||||
def plan_name
|
def plan_name
|
||||||
|
|||||||
@@ -9,13 +9,6 @@ class AcquiredMediaRelease < ApplicationRecord
|
|||||||
include Signable
|
include Signable
|
||||||
include Syncable
|
include Syncable
|
||||||
include PersonName
|
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
|
has_many :file_infos, as: :releasable, dependent: :destroy
|
||||||
|
|
||||||
@@ -64,8 +57,4 @@ class AcquiredMediaRelease < ApplicationRecord
|
|||||||
def uses_edl?
|
def uses_edl?
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
def file_infos_count
|
|
||||||
file_infos.any? ? file_infos.size : I18n.t('acquired_media_releases.acquired_media_release.no_media')
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -15,13 +15,6 @@ class AppearanceRelease < ApplicationRecord
|
|||||||
include SecondGuardianPhotoable
|
include SecondGuardianPhotoable
|
||||||
include GuardianName
|
include GuardianName
|
||||||
include SecondGuardianName
|
include SecondGuardianName
|
||||||
include CsvExportable
|
|
||||||
|
|
||||||
class << self
|
|
||||||
def custom_csv_exportable_headers
|
|
||||||
%i[name contact_info]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
has_one_attached :person_photo
|
has_one_attached :person_photo
|
||||||
|
|
||||||
|
|||||||
@@ -1,56 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
module CsvExportable
|
|
||||||
extend ActiveSupport::Concern
|
|
||||||
|
|
||||||
COMMON_HEADERS = %i[notes tags signed_at].freeze
|
|
||||||
COMMON_VALUES = %w[clean_notes clean_tags signed_on].freeze
|
|
||||||
|
|
||||||
included do
|
|
||||||
class << self
|
|
||||||
def custom_csv_exportable_headers
|
|
||||||
[]
|
|
||||||
end
|
|
||||||
|
|
||||||
def csv_headers
|
|
||||||
headers = custom_csv_exportable_headers + COMMON_HEADERS
|
|
||||||
|
|
||||||
headers.map do |header|
|
|
||||||
I18n.t("#{model_name.plural}.index.table_headers.#{header}")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def to_csv_row
|
|
||||||
(self.class.custom_csv_exportable_headers + COMMON_VALUES).map do |function|
|
|
||||||
send(function)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def contact_info
|
|
||||||
contact_info = ''
|
|
||||||
contact_info += "#{person_address}; " if person_address.present?
|
|
||||||
contact_info += "P: #{person_phone}; " if person_phone.present?
|
|
||||||
contact_info += "E: #{person_email}" if person_email.present?
|
|
||||||
contact_info.delete_suffix '; '
|
|
||||||
end
|
|
||||||
|
|
||||||
def clean_notes
|
|
||||||
notes = ''
|
|
||||||
self.notes.order_by_recent.each do |note|
|
|
||||||
notes += "#{note.content}(#{note.email}), "
|
|
||||||
end
|
|
||||||
notes.delete_suffix ', '
|
|
||||||
end
|
|
||||||
|
|
||||||
def clean_tags
|
|
||||||
tags = ''
|
|
||||||
self.tags.each do |tag|
|
|
||||||
tags += "#{tag.name}, "
|
|
||||||
end
|
|
||||||
tags.delete_suffix ', '
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -5,8 +5,6 @@ class ContractTemplate < ApplicationRecord
|
|||||||
include Syncable
|
include Syncable
|
||||||
include PgSearch
|
include PgSearch
|
||||||
|
|
||||||
NUMBER_OF_CUSTOM_FIELDS = 15
|
|
||||||
|
|
||||||
belongs_to :project
|
belongs_to :project
|
||||||
belongs_to :parent, class_name: 'ContractTemplate', optional: true
|
belongs_to :parent, class_name: 'ContractTemplate', optional: true
|
||||||
has_many :duplicates, class_name: 'ContractTemplate', foreign_key: 'parent_id'
|
has_many :duplicates, class_name: 'ContractTemplate', foreign_key: 'parent_id'
|
||||||
@@ -21,7 +19,6 @@ class ContractTemplate < ApplicationRecord
|
|||||||
monetize :fee_cents
|
monetize :fee_cents
|
||||||
has_rich_text :body
|
has_rich_text :body
|
||||||
has_rich_text :guardian_clause
|
has_rich_text :guardian_clause
|
||||||
has_rich_text :signature_legal_text
|
|
||||||
|
|
||||||
validates :name, presence: true
|
validates :name, presence: true
|
||||||
validates :release_type, presence: true
|
validates :release_type, presence: true
|
||||||
@@ -43,8 +40,6 @@ class ContractTemplate < ApplicationRecord
|
|||||||
scope :non_archived, -> { where(archived_at: nil) }
|
scope :non_archived, -> { where(archived_at: nil) }
|
||||||
scope :order_by_name, -> { order(:name) }
|
scope :order_by_name, -> { order(:name) }
|
||||||
|
|
||||||
enum accessibility: [:public_template, :private_template]
|
|
||||||
|
|
||||||
def fee?
|
def fee?
|
||||||
!fee.zero?
|
!fee.zero?
|
||||||
end
|
end
|
||||||
@@ -64,18 +59,4 @@ class ContractTemplate < ApplicationRecord
|
|||||||
def archive
|
def archive
|
||||||
update(archived_at: Time.zone.now)
|
update(archived_at: Time.zone.now)
|
||||||
end
|
end
|
||||||
|
|
||||||
def has_questionnaire?
|
|
||||||
(1..NUMBER_OF_CUSTOM_FIELDS).any? { |n| public_send("question_#{n}_text").presence }
|
|
||||||
end
|
|
||||||
|
|
||||||
def editable?
|
|
||||||
releases.size.zero?
|
|
||||||
end
|
|
||||||
|
|
||||||
def attributes
|
|
||||||
result = super()
|
|
||||||
result[:signature_legal_text] = signature_legal_text.as_json
|
|
||||||
result
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -10,13 +10,6 @@ class LocationRelease < ApplicationRecord
|
|||||||
include Syncable
|
include Syncable
|
||||||
include Taggable
|
include Taggable
|
||||||
include PersonName
|
include PersonName
|
||||||
include CsvExportable
|
|
||||||
|
|
||||||
class << self
|
|
||||||
def custom_csv_exportable_headers
|
|
||||||
%i[name address]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
composed_of :address,
|
composed_of :address,
|
||||||
mapping: [
|
mapping: [
|
||||||
|
|||||||
@@ -10,13 +10,6 @@ class MaterialRelease < ApplicationRecord
|
|||||||
include Syncable
|
include Syncable
|
||||||
include Taggable
|
include Taggable
|
||||||
include PersonName
|
include PersonName
|
||||||
include CsvExportable
|
|
||||||
|
|
||||||
class << self
|
|
||||||
def custom_csv_exportable_headers
|
|
||||||
%i[name]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
composed_of :person_address,
|
composed_of :person_address,
|
||||||
class_name: "Address",
|
class_name: "Address",
|
||||||
|
|||||||
@@ -11,47 +11,18 @@ class MedicalRelease < ApplicationRecord
|
|||||||
include SecondGuardianPhotoable
|
include SecondGuardianPhotoable
|
||||||
include GuardianName
|
include GuardianName
|
||||||
include SecondGuardianName
|
include SecondGuardianName
|
||||||
include CsvExportable
|
|
||||||
|
|
||||||
class << self
|
|
||||||
def custom_csv_exportable_headers
|
|
||||||
%i[approved? name contact_info]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
NUMBER_OF_CUSTOM_FIELDS = 15
|
NUMBER_OF_CUSTOM_FIELDS = 15
|
||||||
|
|
||||||
composed_of :person_address,
|
composed_of :person_address,
|
||||||
class_name: "Address",
|
class_name: "Address",
|
||||||
mapping: [
|
mapping: [
|
||||||
%w[person_address_street1 street1],
|
%w(person_address_street1 street1),
|
||||||
%w[person_address_street2 street2],
|
%w(person_address_street2 street2),
|
||||||
%w[person_address_city city],
|
%w(person_address_city city),
|
||||||
%w[person_address_state state],
|
%w(person_address_state state),
|
||||||
%w[person_address_zip zip],
|
%w(person_address_zip zip),
|
||||||
%w[person_address_country country]
|
%w(person_address_country country)
|
||||||
]
|
|
||||||
|
|
||||||
composed_of :guardian_address,
|
|
||||||
class_name: 'Address',
|
|
||||||
mapping: [
|
|
||||||
%w[guardian_address_street1 street1],
|
|
||||||
%w[guardian_address_street2 street2],
|
|
||||||
%w[guardian_address_city city],
|
|
||||||
%w[guardian_address_state state],
|
|
||||||
%w[guardian_address_zip zip],
|
|
||||||
%w[guardian_address_country country]
|
|
||||||
]
|
|
||||||
|
|
||||||
composed_of :guardian_2_address,
|
|
||||||
class_name: 'Address',
|
|
||||||
mapping: [
|
|
||||||
%w[guardian_2_address_street1 street1],
|
|
||||||
%w[guardian_2_address_street2 street2],
|
|
||||||
%w[guardian_2_address_city city],
|
|
||||||
%w[guardian_2_address_state state],
|
|
||||||
%w[guardian_2_address_zip zip],
|
|
||||||
%w[guardian_2_address_country country]
|
|
||||||
]
|
]
|
||||||
|
|
||||||
def self.face_photo_acceptable_content_types
|
def self.face_photo_acceptable_content_types
|
||||||
@@ -61,7 +32,6 @@ class MedicalRelease < ApplicationRecord
|
|||||||
# These validations apply to all releases
|
# These validations apply to all releases
|
||||||
validates :person_first_name, :person_last_name, presence: true
|
validates :person_first_name, :person_last_name, presence: true
|
||||||
validates :person_email, email: true, allow_blank: true
|
validates :person_email, email: true, allow_blank: true
|
||||||
validate :valid_answers
|
|
||||||
|
|
||||||
acts_as_taggable_on :internal_tags, :tags
|
acts_as_taggable_on :internal_tags, :tags
|
||||||
|
|
||||||
@@ -106,27 +76,4 @@ class MedicalRelease < ApplicationRecord
|
|||||||
def contract_file_name
|
def contract_file_name
|
||||||
"#{project.name.parameterize}_#{contract_template.release_type}_#{(signed_at || created_at).strftime("%Y.%m.%d")}_#{release_number}_#{filename_suffix.parameterize}"
|
"#{project.name.parameterize}_#{contract_template.release_type}_#{(signed_at || created_at).strftime("%Y.%m.%d")}_#{release_number}_#{filename_suffix.parameterize}"
|
||||||
end
|
end
|
||||||
|
|
||||||
def approve_by(user)
|
|
||||||
return unless approved_at.nil?
|
|
||||||
|
|
||||||
self.approved_by_user_name = user.full_name
|
|
||||||
self.approved_by_user_email = user.email
|
|
||||||
self.approved_at = Time.zone.now
|
|
||||||
end
|
|
||||||
|
|
||||||
def approved?
|
|
||||||
approved_at.present?
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def valid_answers
|
|
||||||
(1..ContractTemplate::NUMBER_OF_CUSTOM_FIELDS).each do |index|
|
|
||||||
if contract_template && contract_template["question_#{index}_text"].present? &&
|
|
||||||
public_send("question_#{index}_answer").blank?
|
|
||||||
errors.add("question_#{index}", I18n.t('medical_releases.custom_validation_errors.question_answer_is_required'))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -9,15 +9,6 @@ class MiscRelease < ApplicationRecord
|
|||||||
include PersonName
|
include PersonName
|
||||||
include GuardianName
|
include GuardianName
|
||||||
include GuardianPhotoable
|
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,
|
composed_of :person_address,
|
||||||
class_name: "Address",
|
class_name: "Address",
|
||||||
|
|||||||
@@ -7,13 +7,6 @@ class MusicRelease < ApplicationRecord
|
|||||||
include Searchable
|
include Searchable
|
||||||
include Taggable
|
include Taggable
|
||||||
include PersonName
|
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 :file_infos, as: :releasable, dependent: :destroy
|
||||||
has_many :composers, dependent: :destroy
|
has_many :composers, dependent: :destroy
|
||||||
@@ -79,18 +72,6 @@ class MusicRelease < ApplicationRecord
|
|||||||
false
|
false
|
||||||
end
|
end
|
||||||
|
|
||||||
def file_infos_count
|
|
||||||
file_infos.size
|
|
||||||
end
|
|
||||||
|
|
||||||
def composers_count
|
|
||||||
composers.size
|
|
||||||
end
|
|
||||||
|
|
||||||
def publishers_count
|
|
||||||
publishers.size
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def publisher_percentages_add_up_to_100
|
def publisher_percentages_add_up_to_100
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ class QrCode
|
|||||||
url = Rails.application.routes.url_helpers.url_for(route)
|
url = Rails.application.routes.url_helpers.url_for(route)
|
||||||
filename = [contract_template.project.name, contract_template.name].map(&:parameterize).join("_")
|
filename = [contract_template.project.name, contract_template.name].map(&:parameterize).join("_")
|
||||||
|
|
||||||
new(url, "#{filename}.png")
|
new(url, filename)
|
||||||
end
|
end
|
||||||
|
|
||||||
def initialize(url, filename = "qrcode.png")
|
def initialize(url, filename = "qrcode.png")
|
||||||
|
|||||||
@@ -14,13 +14,6 @@ class TalentRelease < ApplicationRecord
|
|||||||
include SecondGuardianPhotoable
|
include SecondGuardianPhotoable
|
||||||
include GuardianName
|
include GuardianName
|
||||||
include SecondGuardianName
|
include SecondGuardianName
|
||||||
include CsvExportable
|
|
||||||
|
|
||||||
class << self
|
|
||||||
def custom_csv_exportable_headers
|
|
||||||
%i[name phone email]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
composed_of :person_address,
|
composed_of :person_address,
|
||||||
class_name: "Address",
|
class_name: "Address",
|
||||||
@@ -93,14 +86,6 @@ class TalentRelease < ApplicationRecord
|
|||||||
person_name
|
person_name
|
||||||
end
|
end
|
||||||
|
|
||||||
def phone
|
|
||||||
person_phone
|
|
||||||
end
|
|
||||||
|
|
||||||
def email
|
|
||||||
person_email
|
|
||||||
end
|
|
||||||
|
|
||||||
def filename_suffix
|
def filename_suffix
|
||||||
"#{person_last_name} #{person_first_name}"
|
"#{person_last_name} #{person_first_name}"
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -3,10 +3,8 @@ class ContractTemplatePolicy < ApplicationPolicy
|
|||||||
def resolve
|
def resolve
|
||||||
if user.account_manager?
|
if user.account_manager?
|
||||||
scope.left_outer_joins(:project).where(projects: {account: user.account})
|
scope.left_outer_joins(:project).where(projects: {account: user.account})
|
||||||
elsif user.manager?
|
|
||||||
scope.left_outer_joins(project: :project_memberships).where(project_memberships: { user_id: user.id })
|
|
||||||
else
|
else
|
||||||
scope.public_template.left_outer_joins(project: :project_memberships).where(project_memberships: { user_id: user.id })
|
scope.left_outer_joins(project: :project_memberships).where(project_memberships: { user_id: user.id })
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -23,18 +21,6 @@ class ContractTemplatePolicy < ApplicationPolicy
|
|||||||
create?
|
create?
|
||||||
end
|
end
|
||||||
|
|
||||||
def edit?
|
|
||||||
record.editable? && create?
|
|
||||||
end
|
|
||||||
|
|
||||||
def update?
|
|
||||||
edit?
|
|
||||||
end
|
|
||||||
|
|
||||||
def duplicate?
|
|
||||||
create?
|
|
||||||
end
|
|
||||||
|
|
||||||
def import?
|
def import?
|
||||||
if user.account_manager?
|
if user.account_manager?
|
||||||
record.project.account = user.account
|
record.project.account = user.account
|
||||||
|
|||||||
@@ -15,14 +15,6 @@ class MedicalReleasePolicy < ReleasePolicy
|
|||||||
user.manager? || user.account_manager?
|
user.manager? || user.account_manager?
|
||||||
end
|
end
|
||||||
|
|
||||||
def review?
|
|
||||||
user.account_manager?
|
|
||||||
end
|
|
||||||
|
|
||||||
def approve?
|
|
||||||
review?
|
|
||||||
end
|
|
||||||
|
|
||||||
def edit_photos?
|
def edit_photos?
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -11,14 +11,12 @@
|
|||||||
<hr class="divider-light mx-n4">
|
<hr class="divider-light mx-n4">
|
||||||
<nav>
|
<nav>
|
||||||
<ul class="nav nav-pills nav-pills-dark flex-column">
|
<ul class="nav nav-pills nav-pills-dark flex-column">
|
||||||
<% if Current.account.taskme_enabled? %>
|
<li class="nav-item">
|
||||||
<li class="nav-item">
|
<%= link_to [project, :task_requests], class: class_string("nav-link", "active" => controller_name == "task_requests") do %>
|
||||||
<%= link_to [project, :task_requests], class: class_string("nav-link", "active" => controller_name == "task_requests") do %>
|
<%= lock_icon_for(Current.account, :taskme) %>
|
||||||
<%= lock_icon_for(Current.account, :taskme) %>
|
<%= product_wordmark :task_me, class: class_string("d-inline-block", "disabled" => !Current.account.taskme_enabled?) %>
|
||||||
<%= product_wordmark :task_me, class: class_string("d-inline-block", "disabled" => !Current.account.taskme_enabled?) %>
|
<% end %>
|
||||||
<% end %>
|
</li>
|
||||||
</li>
|
|
||||||
<% end %>
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<%= link_to [project, :contract_templates], class: class_string("nav-link", "active" => %w(contract_templates release_template_imports).include?(controller_name)) do %>
|
<%= link_to [project, :contract_templates], class: class_string("nav-link", "active" => %w(contract_templates release_template_imports).include?(controller_name)) do %>
|
||||||
<%= lock_icon_for Current.account, :releaseme %>
|
<%= lock_icon_for Current.account, :releaseme %>
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
<div class="card shadow-sm">
|
|
||||||
<%= card_header text: t(".heading"), close_action_path: [@project, :medical_releases] %>
|
|
||||||
<div class="card-body">
|
|
||||||
<embed class="embeded-contract-preview" type="application/pdf" src="<%= url_for [@medical_release, :contracts, format: "pdf"] %>" width="90%" height="1200" />
|
|
||||||
|
|
||||||
<%= bootstrap_form_with model: @medical_release, method: :post, url: medical_release_approvals_path(@medical_release), local: true do |form| %>
|
|
||||||
<div class="row align-items-center text-center mt-4">
|
|
||||||
<%= link_to t("shared.cancel"), [@medical_release.project, :medical_releases], class: "col-3 text-reset" %>
|
|
||||||
<div class="col-9">
|
|
||||||
<%= form.button t('.actions.approve'), id: "approve_release", class: class_string("btn btn-block btn-success btn-primary"), data: { disable_with: t("shared.disable_with") } %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
<div class="d-flex flex-row">
|
|
||||||
<div class="d-flex flex-column">
|
|
||||||
<%= product_wordmark :direct_me, prefix: t('.headings.welcome'), class: "h2" %>
|
|
||||||
<p class="text-muted"><%= t '.headings.subtitle' %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<%= link_to t(".actions.book_demo"), 'https://meetings.hubspot.com/bray2', class: "btn btn-primary border align-self-center h-50 ml-auto mr-2 pb-2", target: '_blank' %>
|
|
||||||
<% if policy(Broadcast).new? %>
|
|
||||||
<%= link_to t(".actions.create_stream"), [:new, @project, :broadcast], class: "btn btn-success border align-self-center h-50 pb-2" %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<div class="pt-2">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<div class="card-body p-0">
|
|
||||||
<div class="embed-responsive embed-responsive-16by9">
|
|
||||||
<div class="embed-responsive-item">
|
|
||||||
<div style="padding:56.25% 0 0 0;position:relative;"><iframe src="https://player.vimeo.com/video/435943632" style="position:absolute;top:0;left:0;width:100%;height:100%;" frameborder="0" allow="autoplay; fullscreen" allowfullscreen></iframe></div><script src="https://player.vimeo.com/api/player.js"></script>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<h3><%= t '.headings.how_it_works' %></h3>
|
|
||||||
<ol>
|
|
||||||
<li><%= t '.list_items.create_stream' %></li>
|
|
||||||
<li><%= t '.list_items.share_stream' %></li>
|
|
||||||
<li><%= t '.list_items.launch_video_conference' %></li>
|
|
||||||
<li><%= t '.list_items.share_files' %></li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<h3><%= t '.headings.benefits' %></h3>
|
|
||||||
<ul class="fa-ul ml-5">
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.stream_from_mobile_app'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.direct_shoots_anywhere'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.share_live_stream'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.stream_multiple_cameras'))) %>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -15,16 +15,10 @@
|
|||||||
<td>
|
<td>
|
||||||
<%= contract_template.releases.size %>
|
<%= contract_template.releases.size %>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-right" nowrap>
|
<td class="text-right">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<%= button_tag t(".actions.manage"), class: "btn btn-light btn-sm dropdown-toggle border", data: { toggle: "dropdown", boundary: "window" }, aria: { haspopup: true, expanded: false } %>
|
<%= button_tag t(".actions.manage"), class: "btn btn-light btn-sm dropdown-toggle border", data: { toggle: "dropdown", boundary: "window" }, aria: { haspopup: true, expanded: false } %>
|
||||||
<div class="dropdown-menu dropdown-menu-right">
|
<div class="dropdown-menu dropdown-menu-right">
|
||||||
<% if policy(contract_template).edit? %>
|
|
||||||
<%= link_to fa_icon("pencil fw", text: t(".actions.edit")), [:edit, contract_template], class: "dropdown-item" %>
|
|
||||||
<% end %>
|
|
||||||
<% if policy(ContractTemplate).duplicate? %>
|
|
||||||
<%= link_to fa_icon("clone fw", text: t(".actions.duplicate")), contract_template_duplicates_path(contract_template), method: :post, class: "dropdown-item" %>
|
|
||||||
<% end %>
|
|
||||||
<% if policy(QrCode).show? %>
|
<% if policy(QrCode).show? %>
|
||||||
<%= link_to fa_icon("qrcode", text: t(".actions.qr_code")), [contract_template, :qr_codes], class: "dropdown-item", target: :_blank %>
|
<%= link_to fa_icon("qrcode", text: t(".actions.qr_code")), [contract_template, :qr_codes], class: "dropdown-item", target: :_blank %>
|
||||||
<% end %>
|
<% end %>
|
||||||
@@ -33,7 +27,7 @@
|
|||||||
<%= link_to fa_icon("print", text: "Print"), [:new, contract_template, :blank_contracts], class: "dropdown-item", target: :_blank %>
|
<%= link_to fa_icon("print", text: "Print"), [:new, contract_template, :blank_contracts], class: "dropdown-item", target: :_blank %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if policy(contract_template).destroy? %>
|
<% if policy(contract_template).destroy? %>
|
||||||
<%= link_to fa_icon("trash", text: "Delete"), contract_template, class: "dropdown-item", method: :delete, data: { confirm: "Are you sure?" } %>
|
<%= link_to fa_icon("archive", text: "Archive"), contract_template, class: "dropdown-item", method: :delete, data: { confirm: "Are you sure?" } %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,12 +1,8 @@
|
|||||||
<%= bootstrap_form_with model: model, local: true do |form| %>
|
<%= bootstrap_form_with model: [project, contract_template], local: true do |form| %>
|
||||||
<%= field_set_tag content_tag(:span, t(".release_info.heading"), class: "h6 text-muted text-uppercase") do %>
|
<%= field_set_tag content_tag(:span, t(".release_info.heading"), class: "h6 text-muted text-uppercase") do %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :name, wrapper_class: "col-sm-6" %>
|
<%= form.text_field :name, wrapper_class: "col-sm-6" %>
|
||||||
<%= form.select :release_type, options_for_release_type_select(project, @release_type), { wrapper_class: "col-sm-6" }, data: { toggle: "collapse-select", target_show_values_mapping: { "#guardian_clause": %w(appearance talent misc medical), "#fee_field": %w(appearance talent location material acquired_media), "#exploitable_rights_fields": %w(appearance talent location material acquired_media), "#custom_fields": %w(medical misc) } }, class: "form-control custom-select" %>
|
<%= form.select :release_type, options_for_release_type_select(project, @release_type), { wrapper_class: "col-sm-6" }, data: { toggle: "collapse-select", target_show_values_mapping: { "#guardian_clause": %w(appearance talent misc medical), "#fee_field": %w(appearance talent location material acquired_media), "#exploitable_rights_fields": %w(appearance talent location material acquired_media), "#custom_fields": %w(medical) } }, class: "form-control custom-select" %>
|
||||||
</div>
|
|
||||||
<div class="form-row mb-3">
|
|
||||||
<%= form.radio_button :accessibility, :public_template, label: "Public", wrapper_class: "mr-3" %>
|
|
||||||
<%= form.radio_button :accessibility, :private_template, label: "Private" %>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-row" id="fee_field">
|
<div class="form-row" id="fee_field">
|
||||||
<%= form.number_field :fee, min:"0", max:"99999999", step: "0.01", prepend: "$", wrapper_class: "col-sm-6" %>
|
<%= form.number_field :fee, min:"0", max:"99999999", step: "0.01", prepend: "$", wrapper_class: "col-sm-6" %>
|
||||||
@@ -29,11 +25,6 @@
|
|||||||
<%= form.rich_text_area :guardian_clause %>
|
<%= form.rich_text_area :guardian_clause %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<div id="signature_legal_text">
|
|
||||||
<%= form.form_group do %>
|
|
||||||
<%= form.rich_text_area :signature_legal_text %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= field_set_tag content_tag(:span, t(".custom_fields.heading"), class: "h6 text-muted text-uppercase"), id: "custom_fields", style: "display: none;" do %>
|
<%= field_set_tag content_tag(:span, t(".custom_fields.heading"), class: "h6 text-muted text-uppercase"), id: "custom_fields", style: "display: none;" do %>
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
<div class="card shadow-sm">
|
|
||||||
<%= card_header text: t(".heading"), close_action_path: [@project, :contract_templates] %>
|
|
||||||
<div class="card-body">
|
|
||||||
<%= render "form", model: @contract_template, project: @project, contract_template: @contract_template %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<div class="card shadow-sm">
|
<div class="card shadow-sm">
|
||||||
<%= card_header text: t(".heading"), close_action_path: [@project, :contract_templates] %>
|
<%= card_header text: t(".heading"), close_action_path: [@project, :contract_templates] %>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<%= render "form", model: [@project, @contract_template], project: @project, contract_template: @contract_template %>
|
<%= render "form", project: @project, contract_template: @contract_template %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,50 +0,0 @@
|
|||||||
<div class="d-flex flex-row">
|
|
||||||
<div class="d-flex flex-column">
|
|
||||||
<%= product_wordmark :release_me, prefix: t('.headings.welcome'), class: "h2" %>
|
|
||||||
<p class="text-muted"><%= t '.headings.subtitle' %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<%= link_to t(".actions.book_demo"), 'https://meetings.hubspot.com/bray2', class: "btn btn-primary border align-self-center h-50 ml-auto mr-2 pb-2", target: '_blank' %>
|
|
||||||
<% if policy(ContractTemplate).new? %>
|
|
||||||
<%= link_to t(".actions.create_template"), [:new, @project, :contract_template], class: "btn btn-success border align-self-center h-50 pb-2" %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<div class="pt-2">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<div class="card-body p-0">
|
|
||||||
<div class="embed-responsive embed-responsive-16by9">
|
|
||||||
<div class="embed-responsive-item">
|
|
||||||
<div style="padding:56.25% 0 0 0;position:relative;"><iframe src="https://player.vimeo.com/video/435942851" style="position:absolute;top:0;left:0;width:100%;height:100%;" frameborder="0" allow="autoplay; fullscreen" allowfullscreen></iframe></div><script src="https://player.vimeo.com/api/player.js"></script>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<h3><%= t '.headings.how_it_works' %></h3>
|
|
||||||
<ol>
|
|
||||||
<li><%= t '.list_items.create_releases' %></li>
|
|
||||||
<li><%= t '.list_items.download_mobile_app' %></li>
|
|
||||||
<li><%= t '.list_items.print_QR_code' %></li>
|
|
||||||
<li><%= t '.list_items.releases_automatically_organized' %></li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<h3><%= t '.headings.benefits' %></h3>
|
|
||||||
<ul class="fa-ul ml-5">
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.all_releases_available'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.manage_large_audience'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.add_tags_and_notes'))) %>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
<% if preview %>
|
|
||||||
<h1>PREVIEW ONLY</h1>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<p class="heading"><strong><u><%= t '.heading' %></u></strong></p>
|
|
||||||
|
|
||||||
<dl>
|
|
||||||
<%= description_list_pair t('.description_labels.producer'), releasable.project.account.name %>
|
|
||||||
<%= description_list_pair t('.description_labels.production'), releasable.project.name %>
|
|
||||||
<%= description_list_pair t('.description_labels.employee_issued_to'), releasable.name %>
|
|
||||||
<%= description_list_pair t('.description_labels.issued_by'), releasable.approved_by_user_name %>
|
|
||||||
<%= description_list_pair t('.description_labels.date_issued'), releasable.approved_at %>
|
|
||||||
</dl>
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<p class="heading"><strong><u><%= t ".heading.#{releasable.model_name.param_key}" %></u></strong></p>
|
<p class="heading"><strong><u><%= t ".heading" %></u></strong></p>
|
||||||
|
|
||||||
<% (1..releasable.class::NUMBER_OF_CUSTOM_FIELDS).each do |n| %>
|
<% (1..MedicalRelease::NUMBER_OF_CUSTOM_FIELDS).each do |n| %>
|
||||||
<% if contract_template.public_send("question_#{n}_text").present? %>
|
<% if contract_template.public_send("question_#{n}_text").present? %>
|
||||||
<p><strong><%= contract_template.public_send("question_#{n}_text") %></strong></p>
|
<p><strong><%= contract_template.public_send("question_#{n}_text") %></strong></p>
|
||||||
<p><%= releasable.public_send("question_#{n}_answer") %></p>
|
<p><%= releasable.public_send("question_#{n}_answer") %></p>
|
||||||
@@ -16,22 +16,15 @@
|
|||||||
<%= contract_template.guardian_clause %>
|
<%= contract_template.guardian_clause %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<% if releasable.model_name.in? %w(MedicalRelease MiscRelease) %>
|
<% if releasable.model_name == "MedicalRelease" %>
|
||||||
<div class="page">
|
<div class="page">
|
||||||
<%= render "contracts/questionnaire", releasable: releasable, contract_template: contract_template, preview: preview %>
|
<%= render "contracts/medical_questionnaire", releasable: releasable, contract_template: contract_template, preview: preview %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="page">
|
<div class="page">
|
||||||
<%= render "contracts/signature_page", releasable: releasable, contract_template: contract_template, preview: preview %>
|
<%= render "contracts/signature_page", releasable: releasable, contract_template: contract_template, preview: preview %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<% if releasable.class == MedicalRelease && releasable.approved? %>
|
|
||||||
<div class="page">
|
|
||||||
<%= render "contracts/for_office_use_only", releasable: releasable, preview: preview %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<% if releasable.class == AcquiredMediaRelease %>
|
<% if releasable.class == AcquiredMediaRelease %>
|
||||||
<div class="page">
|
<div class="page">
|
||||||
<%= render "contracts/files", release: releasable, preview: preview %>
|
<%= render "contracts/files", release: releasable, preview: preview %>
|
||||||
|
|||||||
@@ -1,13 +1,5 @@
|
|||||||
<tr id="<%= dom_id(medical_release) %>">
|
<tr id="<%= dom_id(medical_release) %>">
|
||||||
<td data-behavior="select"><%= check_box_tag "medical_release_ids[]", medical_release.id, false %></td>
|
<td data-behavior="select"><%= check_box_tag "medical_release_ids[]", medical_release.id, false %></td>
|
||||||
<td class="text-center">
|
|
||||||
<% if medical_release.approved? %>
|
|
||||||
<% tooltip_user_data = get_approval_data_for_medical_release(medical_release) %>
|
|
||||||
<i class="fa fa-check-circle fa-2x text-success"
|
|
||||||
data-toggle="tooltip"
|
|
||||||
title="<%= t '.messages.approved_tooltip', user: tooltip_user_data, timestamp: medical_release.approved_at %>"></i>
|
|
||||||
<% end %>
|
|
||||||
</td>
|
|
||||||
<td>
|
<td>
|
||||||
<% if medical_release.photo.attached? %>
|
<% if medical_release.photo.attached? %>
|
||||||
<%= image_tag medium_variant(medical_release.photo), class: "img-fluid" %>
|
<%= image_tag medium_variant(medical_release.photo), class: "img-fluid" %>
|
||||||
@@ -45,9 +37,6 @@
|
|||||||
<% if policy(medical_release.tags).new? %>
|
<% if policy(medical_release.tags).new? %>
|
||||||
<%= link_to fa_icon("tags fw", text: "Tags"), [:new, medical_release, :acts_as_taggable_on_tag], class: "dropdown-item", remote: true %>
|
<%= link_to fa_icon("tags fw", text: "Tags"), [:new, medical_release, :acts_as_taggable_on_tag], class: "dropdown-item", remote: true %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if policy(MedicalRelease).review? %>
|
|
||||||
<%= link_to fa_icon("search fw", text: t('.actions.review')), new_medical_release_approvals_path(medical_release), class: "dropdown-item" %>
|
|
||||||
<% end %>
|
|
||||||
<% if policy(MedicalRelease).download_single? && policy(Contract).show? && (medical_release.contract.attached? || medical_release.contract_template.present?) %>
|
<% if policy(MedicalRelease).download_single? && policy(Contract).show? && (medical_release.contract.attached? || medical_release.contract_template.present?) %>
|
||||||
<%= link_to fa_icon("download fw", text: "Download"), [medical_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %>
|
<%= link_to fa_icon("download fw", text: "Download"), [medical_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -22,7 +22,6 @@
|
|||||||
<thead class="thead-light">
|
<thead class="thead-light">
|
||||||
<tr>
|
<tr>
|
||||||
<th data-behavior="all-selectable"><%= check_box_tag "medical_release_ids[]", false, false %></th>
|
<th data-behavior="all-selectable"><%= check_box_tag "medical_release_ids[]", false, false %></th>
|
||||||
<th><%= t '.table_headers.approved'%></th>
|
|
||||||
<th></th>
|
<th></th>
|
||||||
<th><%= MedicalRelease.human_attribute_name(:person_name) %></th>
|
<th><%= MedicalRelease.human_attribute_name(:person_name) %></th>
|
||||||
<th><%= MedicalRelease.human_attribute_name(:contact_info) %></th>
|
<th><%= MedicalRelease.human_attribute_name(:contact_info) %></th>
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
<div class="card shadow-sm">
|
|
||||||
<%= card_header text: t(".heading"), close_action_path: [@project, :medical_releases] %>
|
|
||||||
<div class="card-body">
|
|
||||||
<embed class="embeded-contract-preview" type="application/pdf" src="<%= url_for [@medical_release, :contracts, format: "pdf"] %>" width="90%" height="1200" />
|
|
||||||
|
|
||||||
<%= bootstrap_form_with model: @medical_release, method: :patch, url: [:approve, @medical_release], local: true do |form| %>
|
|
||||||
<div class="row align-items-center text-center mt-4">
|
|
||||||
<%= link_to t("shared.cancel"), [@medical_release.project, :medical_releases], class: "col-3 text-reset" %>
|
|
||||||
<div class="col-9">
|
|
||||||
<%= form.button t('.actions.approve'), id: "approve_release", class: class_string("btn btn-block btn-success btn-primary"), data: { disable_with: t("shared.disable_with") } %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".signature.heading") do %>
|
<%= card_field_set_tag t(".signature.heading") do %>
|
||||||
<%= render "shared/signature_fields", form: form, signature_legal_text: @contract_template.signature_legal_text %>
|
<%= render "shared/signature_fields", form: form %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="mt-5">
|
<div class="mt-5">
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<% unless @contract_template.guardian_clause.blank? %>
|
<% unless @contract_template.guardian_clause.blank? %>
|
||||||
<%= form.form_group :minor do %>
|
<%= form.form_group :minor do %>
|
||||||
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { behavior: "update-required-status", target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
||||||
@@ -72,12 +72,12 @@
|
|||||||
<div class="<%= class_string("collapse" => !@appearance_release.minor?) %>" data-ujs-target="guardian-fields">
|
<div class="<%= class_string("collapse" => !@appearance_release.minor?) %>" data-ujs-target="guardian-fields">
|
||||||
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :guardian_first_name, required: @appearance_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_first_name, required: @appearance_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
<%= form.text_field :guardian_last_name, required: @appearance_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_last_name, required: @appearance_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
<%= form.phone_field :guardian_phone, required: @appearance_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
<%= form.phone_field :guardian_phone, required: @appearance_release.minor?, wrapper_class: "col-sm-6" %>
|
||||||
<%= form.text_field :guardian_email, required: @appearance_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_email, required: @appearance_release.minor?, wrapper_class: "col-sm-6" %>
|
||||||
</div>
|
</div>
|
||||||
<%= render "shared/address_fields", form: form, subject: "guardian", required: @appearance_release.minor?, data: { required_tag: "guardian" } %>
|
<%= render "shared/address_fields", form: form, subject: "guardian", required: @appearance_release.minor? %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
@@ -156,7 +156,7 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".signature.heading") do %>
|
<%= card_field_set_tag t(".signature.heading") do %>
|
||||||
<%= render "shared/signature_fields", form: form, signature_legal_text: @contract_template.signature_legal_text %>
|
<%= render "shared/signature_fields", form: form %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="mt-5">
|
<div class="mt-5">
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".signature.heading") do %>
|
<%= card_field_set_tag t(".signature.heading") do %>
|
||||||
<%= render "shared/signature_fields", form: form, instruction: 'An Authorized Signatory', signature_legal_text: @contract_template.signature_legal_text %>
|
<%= render "shared/signature_fields", form: form, instruction: 'An Authorized Signatory' %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="mt-5">
|
<div class="mt-5">
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".signature.heading") do %>
|
<%= card_field_set_tag t(".signature.heading") do %>
|
||||||
<%= render "shared/signature_fields", form: form, instruction: 'For Owner or Authorized Signatory', signature_legal_text: @contract_template.signature_legal_text %>
|
<%= render "shared/signature_fields", form: form, instruction: 'For Owner or Authorized Signatory' %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="mt-5">
|
<div class="mt-5">
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<% unless @contract_template.guardian_clause.blank? %>
|
<% unless @contract_template.guardian_clause.blank? %>
|
||||||
<%= form.form_group :minor do %>
|
<%= form.form_group :minor do %>
|
||||||
<%= form.check_box :minor, label: t("helpers.label.medical_release.minor"), data: { behavior: "update-required-status", target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
<%= form.check_box :minor, label: t("helpers.label.medical_release.minor"), data: { target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
<% (1..MedicalRelease::NUMBER_OF_CUSTOM_FIELDS).each do |n| %>
|
<% (1..MedicalRelease::NUMBER_OF_CUSTOM_FIELDS).each do |n| %>
|
||||||
<% if @contract_template.public_send("question_#{n}_text").present? %>
|
<% if @contract_template.public_send("question_#{n}_text").present? %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_area "question_#{n}_answer", required: true, wrapper_class: "col-sm-12", label: @contract_template.public_send("question_#{n}_text") %>
|
<%= form.text_area "question_#{n}_answer", wrapper_class: "col-sm-12", label: @contract_template.public_send("question_#{n}_text") %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
@@ -59,12 +59,14 @@
|
|||||||
<div class="<%= class_string("collapse" => !@medical_release.minor?) %>" data-ujs-target="guardian-fields">
|
<div class="<%= class_string("collapse" => !@medical_release.minor?) %>" data-ujs-target="guardian-fields">
|
||||||
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :guardian_first_name, required: @medical_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_first_name, required: @medical_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
<%= form.text_field :guardian_last_name, required: @medical_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_last_name, required: @medical_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
<%= form.phone_field :guardian_phone, required: @medical_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
<%= form.phone_field :guardian_phone, required: @medical_release.minor?, wrapper_class: "col-sm-6" %>
|
||||||
<%= form.text_field :guardian_email, required: @medical_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
|
||||||
</div>
|
</div>
|
||||||
<%= render "shared/address_fields", form: form, subject: "guardian", required: @medical_release.minor?, data: { required_tag: "guardian" } %>
|
<div class="form-row">
|
||||||
|
<%= form.text_field :guardian_email, required: @medical_release.minor?, wrapper_class: "col-sm-6" %>
|
||||||
|
</div>
|
||||||
|
<%= render "shared/address_fields", form: form, subject: "guardian", required: @medical_release.minor? %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
@@ -145,7 +147,7 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".signature.heading") do %>
|
<%= card_field_set_tag t(".signature.heading") do %>
|
||||||
<%= render "shared/signature_fields", form: form, signature_legal_text: @contract_template.signature_legal_text %>
|
<%= render "shared/signature_fields", form: form %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="mt-5">
|
<div class="mt-5">
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
<% unless @contract_template.guardian_clause.blank? %>
|
<% unless @contract_template.guardian_clause.blank? %>
|
||||||
<%= form.form_group :minor do %>
|
<%= form.form_group :minor do %>
|
||||||
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { behavior: "update-required-status", target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
||||||
@@ -20,26 +20,15 @@
|
|||||||
<hr>
|
<hr>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<% if @contract_template.has_questionnaire? %>
|
|
||||||
<%= card_field_set_tag t(".questionnaire.heading") do %>
|
|
||||||
<% (1..MiscRelease::NUMBER_OF_CUSTOM_FIELDS).each do |n| %>
|
|
||||||
<% if @contract_template.public_send("question_#{n}_text").present? %>
|
|
||||||
<div class="form-row">
|
|
||||||
<%= form.text_area "question_#{n}_answer", wrapper_class: "col-sm-12", label: @contract_template.public_send("question_#{n}_text") %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
<% end %>
|
|
||||||
<% end %>
|
|
||||||
<hr>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<%= card_field_set_tag t(".personal_info.heading") do %>
|
<%= card_field_set_tag t(".personal_info.heading") do %>
|
||||||
<div class="alert alert-warning font-weight-bold"><%= t ".personal_info.instructions" %></div>
|
<div class="alert alert-warning font-weight-bold"><%= t ".personal_info.instructions" %></div>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :person_first_name, required: true, wrapper_class: "col-sm-6" %>
|
<%= form.text_field :person_first_name, required: true, wrapper_class: "col-sm-6" %>
|
||||||
<%= form.text_field :person_last_name, required: true, wrapper_class: "col-sm-6" %>
|
<%= form.text_field :person_last_name, required: true, wrapper_class: "col-sm-6" %>
|
||||||
<%= form.phone_field :person_phone, wrapper_class: "col-sm-6" %>
|
<%= form.phone_field :person_phone, wrapper_class: "col-sm-6" %>
|
||||||
<%= form.email_field :person_email, required: true, wrapper_class: "col-sm-6" %>
|
</div>
|
||||||
|
<div class="form-row">
|
||||||
|
<%= form.email_field :person_email, wrapper_class: "col-sm-6" %>
|
||||||
</div>
|
</div>
|
||||||
<%= render "shared/address_fields", form: form, subject: "person" %>
|
<%= render "shared/address_fields", form: form, subject: "person" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
@@ -54,12 +43,14 @@
|
|||||||
<div class="<%= class_string("collapse" => !@misc_release.minor?) %>" data-ujs-target="guardian-fields">
|
<div class="<%= class_string("collapse" => !@misc_release.minor?) %>" data-ujs-target="guardian-fields">
|
||||||
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :guardian_first_name, required: @misc_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_first_name, required: @misc_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
<%= form.text_field :guardian_last_name, required: @misc_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_last_name, required: @misc_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
<%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
<%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6" %>
|
||||||
<%= form.text_field :guardian_email, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
|
||||||
</div>
|
</div>
|
||||||
<%= render "shared/address_fields", form: form, subject: "guardian", data: { required_tag: "guardian" } %>
|
<div class="form-row">
|
||||||
|
<%= form.text_field :guardian_email, wrapper_class: "col-sm-6" %>
|
||||||
|
</div>
|
||||||
|
<%= render "shared/address_fields", form: form, subject: "guardian" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
@@ -95,7 +86,7 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".signature.heading") do %>
|
<%= card_field_set_tag t(".signature.heading") do %>
|
||||||
<%= render "shared/signature_fields", form: form, signature_legal_text: @contract_template.signature_legal_text %>
|
<%= render "shared/signature_fields", form: form %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="mt-5">
|
<div class="mt-5">
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<% unless @contract_template.guardian_clause.blank? %>
|
<% unless @contract_template.guardian_clause.blank? %>
|
||||||
<%= form.form_group :minor do %>
|
<%= form.form_group :minor do %>
|
||||||
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { behavior: "update-required-status", target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
<%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
<%= card_field_set_tag t(".guardian_clause.heading") do %>
|
||||||
@@ -46,12 +46,12 @@
|
|||||||
<div class="<%= class_string("collapse" => !@talent_release.minor?) %>" data-ujs-target="guardian-fields">
|
<div class="<%= class_string("collapse" => !@talent_release.minor?) %>" data-ujs-target="guardian-fields">
|
||||||
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
<%= card_field_set_tag t(".guardian_info.heading") do %>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field :guardian_first_name, required: @talent_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_first_name, required: @talent_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
<%= form.text_field :guardian_last_name, required: @talent_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_last_name, required: @talent_release.minor?, wrapper_class: "col-sm-3" %>
|
||||||
<%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
<%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6" %>
|
||||||
<%= form.text_field :guardian_email, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %>
|
<%= form.text_field :guardian_email, wrapper_class: "col-sm-6" %>
|
||||||
</div>
|
</div>
|
||||||
<%= render "shared/address_fields", form: form, subject: "guardian", data: { required_tag: "guardian" } %>
|
<%= render "shared/address_fields", form: form, subject: "guardian" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
@@ -131,7 +131,7 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= card_field_set_tag t(".signature.heading") do %>
|
<%= card_field_set_tag t(".signature.heading") do %>
|
||||||
<%= render "shared/signature_fields", form: form, signature_legal_text: @contract_template.signature_legal_text %>
|
<%= render "shared/signature_fields", form: form %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div class="mt-5">
|
<div class="mt-5">
|
||||||
|
|||||||
@@ -1,15 +1,14 @@
|
|||||||
<% field_name_prefix = subject.present? ? "#{subject}_" : "" %>
|
<% field_name_prefix = subject.present? ? "#{subject}_" : "" %>
|
||||||
<% required = required || false %>
|
<% required = required || false %>
|
||||||
<% data = data || nil %>
|
|
||||||
|
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field "#{field_name_prefix}address_street1", required: required, wrapper_class: "col-sm-6", data: data %>
|
<%= form.text_field "#{field_name_prefix}address_street1", required: required, wrapper_class: "col-sm-6" %>
|
||||||
<%= form.text_field "#{field_name_prefix}address_street2", wrapper_class: "col-sm-6" %>
|
<%= form.text_field "#{field_name_prefix}address_street2", wrapper_class: "col-sm-6" %>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<%= form.text_field "#{field_name_prefix}address_city", required: required, wrapper_class: "col-sm-6", data: data %>
|
<%= form.text_field "#{field_name_prefix}address_city", required: required, wrapper_class: "col-sm-6" %>
|
||||||
<%= form.text_field "#{field_name_prefix}address_state", required: required, wrapper_class: "col-sm-3", data: data %>
|
<%= form.text_field "#{field_name_prefix}address_state", required: required, wrapper_class: "col-sm-3" %>
|
||||||
<%= form.text_field "#{field_name_prefix}address_zip", required: required, wrapper_class: "col-sm-3", data: data %>
|
<%= form.text_field "#{field_name_prefix}address_zip", required: required, wrapper_class: "col-sm-3" %>
|
||||||
</div>
|
</div>
|
||||||
<%= form.form_group "#{field_name_prefix}address_country" do %>
|
<%= form.form_group "#{field_name_prefix}address_country" do %>
|
||||||
<%= form.label "#{field_name_prefix}address_country" %>
|
<%= form.label "#{field_name_prefix}address_country" %>
|
||||||
|
|||||||
@@ -12,8 +12,4 @@
|
|||||||
<%= fa_icon "refresh" %> <%= t "shared.clear" %>
|
<%= fa_icon "refresh" %> <%= t "shared.clear" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<br>
|
|
||||||
|
|
||||||
<% if local_assigns[:signature_legal_text] && signature_legal_text.present? %>
|
|
||||||
<div class="alert alert-warning font-weight-bold"><%= signature_legal_text %></div>
|
|
||||||
<% end %>
|
|
||||||
@@ -13,4 +13,3 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<p class="alert alert-success p-3 lead text-center"><%= t '.success_message' %></p>
|
<p class="alert alert-success p-3 lead text-center"><%= t '.success_message' %></p>
|
||||||
<%= link_to fa_icon("arrow-left", text: "Back"), [@project, :task_requests], class: "btn btn-primary" %>
|
|
||||||
|
|||||||
@@ -1,58 +0,0 @@
|
|||||||
<div class="d-flex flex-row">
|
|
||||||
<div class="d-flex flex-column">
|
|
||||||
<%= product_wordmark :task_me, prefix: t('.headings.welcome'), class: "h2" %>
|
|
||||||
<p class="text-muted"><%= t '.headings.subtitle' %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<%= link_to t(".actions.book_demo"), 'https://meetings.hubspot.com/bray2', class: "btn btn-primary border align-self-center h-50 ml-auto mr-2 pb-2", target: '_blank' %>
|
|
||||||
<% if policy(TaskRequest).new? %>
|
|
||||||
<%= link_to t(".actions.create_task_request"), [:new, @project, :task_request], class: "btn btn-success border align-self-center h-50 pb-2" %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<div class="pt-2">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<div class="card-body p-0">
|
|
||||||
<div class="embed-responsive embed-responsive-16by9">
|
|
||||||
<div class="embed-responsive-item">
|
|
||||||
<table class="w-100 h-100 bg-secondary">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center align-middle text-white">
|
|
||||||
Video tutorial will be available soon
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<h3><%= t '.headings.how_it_works' %></h3>
|
|
||||||
<ol>
|
|
||||||
<li><%= t '.list_items.enter_task_request' %></li>
|
|
||||||
<li><%= t '.list_items.state_deadline' %></li>
|
|
||||||
<li><%= t '.list_items.enter_number_of_hours' %></li>
|
|
||||||
<li><%= t '.list_items.virtual_assistant_delivers_task' %></li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<h3><%= t '.headings.benefits' %></h3>
|
|
||||||
<ul class="fa-ul ml-5">
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.reduces_need_for_full_time_staff'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.reduces_workload'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.spend_per_task'))) %>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
<div class="d-flex flex-row">
|
|
||||||
<div class="d-flex flex-column">
|
|
||||||
<%= product_wordmark :deliver_me, prefix: t('.headings.welcome'), class: "h2" %>
|
|
||||||
<p class="text-muted"><%= t '.headings.subtitle' %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<%= link_to t(".actions.book_demo"), 'https://meetings.hubspot.com/bray2', class: "btn btn-primary border align-self-center h-50 ml-auto mr-2 pb-2", target: '_blank' %>
|
|
||||||
<% if policy(Video).new? %>
|
|
||||||
<%= link_to t(".actions.upload_video"), [:landing, @project, :videos], class: "btn btn-success border align-self-center h-50 pb-2" %>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<div class="pt-2">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<div class="card-body p-0">
|
|
||||||
<div class="embed-responsive embed-responsive-16by9">
|
|
||||||
<div class="embed-responsive-item">
|
|
||||||
<div style="padding:56.25% 0 0 0;position:relative;"><iframe src="https://player.vimeo.com/video/435943995" style="position:absolute;top:0;left:0;width:100%;height:100%;" frameborder="0" allow="autoplay; fullscreen" allowfullscreen></iframe></div><script src="https://player.vimeo.com/api/player.js"></script>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<h3><%= t '.headings.how_it_works' %></h3>
|
|
||||||
<ol>
|
|
||||||
<li><%= t '.list_items.import_video' %></li>
|
|
||||||
<li><%= t '.list_items.import_EDLs' %></li>
|
|
||||||
<li><%= t '.list_items.AI_generates_documents' %></li>
|
|
||||||
<li><%= t '.list_items.download_documents' %></li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<h3><%= t '.headings.benefits' %></h3>
|
|
||||||
<ul class="fa-ul ml-5">
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.reduces_labor_cost'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.more_accurate'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.simplifies_cue_sheets'))) %>
|
|
||||||
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.production_elements_logs'))) %>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -50,7 +50,6 @@ en:
|
|||||||
empty: Acquired Media Releases will appear here
|
empty: Acquired Media Releases will appear here
|
||||||
table_headers:
|
table_headers:
|
||||||
file_infos_count: No. Files
|
file_infos_count: No. Files
|
||||||
name: Name
|
|
||||||
notes: Notes
|
notes: Notes
|
||||||
signed_at: Date Signed
|
signed_at: Date Signed
|
||||||
tags: Tags
|
tags: Tags
|
||||||
@@ -152,8 +151,6 @@ en:
|
|||||||
empty: Appearance Releases will appear here
|
empty: Appearance Releases will appear here
|
||||||
imported_appearance_release_missing_attachment: Person photo or contract missing for imported appearance release
|
imported_appearance_release_missing_attachment: Person photo or contract missing for imported appearance release
|
||||||
table_headers:
|
table_headers:
|
||||||
contact_info: Contact info
|
|
||||||
name: Name
|
|
||||||
notes: Notes
|
notes: Notes
|
||||||
signed_at: Date Signed
|
signed_at: Date Signed
|
||||||
tags: Tags
|
tags: Tags
|
||||||
@@ -174,13 +171,6 @@ en:
|
|||||||
sidebar:
|
sidebar:
|
||||||
files: Files
|
files: Files
|
||||||
team_member: Team Member
|
team_member: Team Member
|
||||||
approvals:
|
|
||||||
create:
|
|
||||||
release_approved: Medical release has been approved
|
|
||||||
new:
|
|
||||||
actions:
|
|
||||||
approve: Approve
|
|
||||||
heading: Review Medical Release
|
|
||||||
blank_contracts:
|
blank_contracts:
|
||||||
new:
|
new:
|
||||||
number_of_copies_label: Number of copies
|
number_of_copies_label: Number of copies
|
||||||
@@ -217,24 +207,6 @@ en:
|
|||||||
new:
|
new:
|
||||||
heading:
|
heading:
|
||||||
Create Live Stream
|
Create Live Stream
|
||||||
splash:
|
|
||||||
actions:
|
|
||||||
book_demo: Schedule a Demo
|
|
||||||
create_stream: Create New Live Stream
|
|
||||||
headings:
|
|
||||||
benefits: Benefits
|
|
||||||
how_it_works: How It Works
|
|
||||||
subtitle: Remote directing and video village solution
|
|
||||||
welcome: Welcome to
|
|
||||||
list_items:
|
|
||||||
create_stream: Create a live stream
|
|
||||||
direct_shoots_anywhere: Direct shoots anywhere around the world
|
|
||||||
launch_video_conference: Launch Video Conference using plugin
|
|
||||||
share_files: Share files via the ME Suite mobile app
|
|
||||||
share_live_stream: Share live stream with clients all over the the world
|
|
||||||
share_stream: Share live stream link with clients
|
|
||||||
stream_from_mobile_app: Stream from ME Suite Mobile app, or via a professional camera
|
|
||||||
stream_multiple_cameras: Stream multiple cameras at one time
|
|
||||||
bulk_taggings:
|
bulk_taggings:
|
||||||
new_bulk_tag_modal:
|
new_bulk_tag_modal:
|
||||||
submit: Add
|
submit: Add
|
||||||
@@ -250,8 +222,6 @@ en:
|
|||||||
contract_template:
|
contract_template:
|
||||||
actions:
|
actions:
|
||||||
copy_url: Copy Release URL
|
copy_url: Copy Release URL
|
||||||
duplicate: Duplicate
|
|
||||||
edit: Edit
|
|
||||||
manage: Manage
|
manage: Manage
|
||||||
qr_code: QR Code
|
qr_code: QR Code
|
||||||
sign: Sign
|
sign: Sign
|
||||||
@@ -261,16 +231,9 @@ en:
|
|||||||
destroy:
|
destroy:
|
||||||
archived_failure: Failed to archive the release template
|
archived_failure: Failed to archive the release template
|
||||||
archived_notice: The release template has been archived
|
archived_notice: The release template has been archived
|
||||||
duplicate:
|
|
||||||
name_prefix: Copy of %{template_name}
|
|
||||||
duplicates:
|
|
||||||
create:
|
|
||||||
error: Failed to duplicate release template
|
|
||||||
edit:
|
|
||||||
heading: Edit Contract Template
|
|
||||||
form:
|
form:
|
||||||
custom_fields:
|
custom_fields:
|
||||||
heading: Questionnaire
|
heading: Medical Questionnaire
|
||||||
instructions: Please list the questions you wish the signer to answer. Any unused question fields will be hidden.
|
instructions: Please list the questions you wish the signer to answer. Any unused question fields will be hidden.
|
||||||
exploitable_rights:
|
exploitable_rights:
|
||||||
heading: Exploitable Rights
|
heading: Exploitable Rights
|
||||||
@@ -289,34 +252,9 @@ en:
|
|||||||
signed_release_count: No. Signed Releases
|
signed_release_count: No. Signed Releases
|
||||||
new:
|
new:
|
||||||
heading: New Release Template
|
heading: New Release Template
|
||||||
splash:
|
|
||||||
actions:
|
|
||||||
book_demo: Schedule a Demo
|
|
||||||
create_template: Create New Release Template
|
|
||||||
headings:
|
|
||||||
benefits: Benefits
|
|
||||||
how_it_works: How It Works
|
|
||||||
subtitle: The easiest way to create and manage releases.
|
|
||||||
welcome: Welcome to
|
|
||||||
list_items:
|
|
||||||
add_tags_and_notes: Add tags and notes to releases for added organization and searchability
|
|
||||||
all_releases_available: All release types available including Covid Medical, Appearance, Location and more
|
|
||||||
create_releases: Create releases for your video shoot
|
|
||||||
download_mobile_app: Download the ME Suite mobile app
|
|
||||||
manage_large_audience: Easily manage large audiences with the crowd control feature
|
|
||||||
print_QR_code: Print out release QR codes
|
|
||||||
releases_automatically_organized: Releases are automatically organized as they’re submitted
|
|
||||||
update:
|
|
||||||
notice: The release template has been updated
|
|
||||||
contracts:
|
contracts:
|
||||||
for_office_use_only:
|
medical_questionnaire:
|
||||||
description_labels:
|
heading: Medical Questionnaire
|
||||||
date_issued: Date Issued
|
|
||||||
employee_issued_to: Employee Issued To
|
|
||||||
issued_by: Issued By
|
|
||||||
producer: Producer
|
|
||||||
production: Production
|
|
||||||
heading: For Office Use Only
|
|
||||||
photos:
|
photos:
|
||||||
guardian_2_photo_heading: Second guardian photo
|
guardian_2_photo_heading: Second guardian photo
|
||||||
guardian_photo_heading: Guardian photo
|
guardian_photo_heading: Guardian photo
|
||||||
@@ -326,10 +264,6 @@ en:
|
|||||||
minor_photos_heading:
|
minor_photos_heading:
|
||||||
one: Minor photo
|
one: Minor photo
|
||||||
other: Minor photos
|
other: Minor photos
|
||||||
questionnaire:
|
|
||||||
heading:
|
|
||||||
medical_release: Medical Questionnaire
|
|
||||||
misc_release: Questionnaire
|
|
||||||
signature_page:
|
signature_page:
|
||||||
heading: Signature Page
|
heading: Signature Page
|
||||||
instructions: "By signing this signature page, as of the date listed below, I hereby agree, acknowledge and accept the terms and conditions listed in this %{releasable_name}."
|
instructions: "By signing this signature page, as of the date listed below, I hereby agree, acknowledge and accept the terms and conditions listed in this %{releasable_name}."
|
||||||
@@ -390,12 +324,11 @@ en:
|
|||||||
notice: The release has been updated
|
notice: The release has been updated
|
||||||
helpers:
|
helpers:
|
||||||
help:
|
help:
|
||||||
|
task_request:
|
||||||
|
time_allowed: Minimum of 2 hours, no partial hours allowed
|
||||||
contract_template:
|
contract_template:
|
||||||
fee: Leave at $0.00 for no-fee
|
fee: Leave at $0.00 for no-fee
|
||||||
guardian_clause: Leave blank if not required for this contract
|
guardian_clause: Leave blank if not required for this contract
|
||||||
signature_legal_text: Leave blank if not required for this contract
|
|
||||||
task_request:
|
|
||||||
time_allowed: Minimum of 2 hours, no partial hours allowed
|
|
||||||
video:
|
video:
|
||||||
audio_only_edl_file: If you do not upload an Audio Only EDL, the software will not generate a BiG Music Cue Sheet.
|
audio_only_edl_file: If you do not upload an Audio Only EDL, the software will not generate a BiG Music Cue Sheet.
|
||||||
edl_file: Please follow our directions on exporting the All Tracks EDL. Failure to do so could result in inaccurate and incomplete reporting.
|
edl_file: Please follow our directions on exporting the All Tracks EDL. Failure to do so could result in inaccurate and incomplete reporting.
|
||||||
@@ -518,30 +451,6 @@ en:
|
|||||||
person_last_name: Last name
|
person_last_name: Last name
|
||||||
person_name: Name
|
person_name: Name
|
||||||
person_phone: Phone number
|
person_phone: Phone number
|
||||||
misc_release:
|
|
||||||
guardian_address_city: Guardian city
|
|
||||||
guardian_address_country: Guardian country
|
|
||||||
guardian_address_state: Guardian state
|
|
||||||
guardian_address_street1: Guardian address
|
|
||||||
guardian_address_street2: Guardian address (Line 2)
|
|
||||||
guardian_address_zip: Guardian zip code
|
|
||||||
guardian_email: Guardian email
|
|
||||||
guardian_first_name: Guardian first name
|
|
||||||
guardian_last_name: Guardian last name
|
|
||||||
guardian_phone: Guardian phone
|
|
||||||
minor: Is the person a minor?
|
|
||||||
person_address_city: City
|
|
||||||
person_address_country: Country
|
|
||||||
person_address_state: State
|
|
||||||
person_address_street1: Address
|
|
||||||
person_address_street2: Address (Line 2)
|
|
||||||
person_address_zip: Zip code
|
|
||||||
person_date_of_birth: Date of birth
|
|
||||||
person_email: Email address
|
|
||||||
person_first_name: First name
|
|
||||||
person_last_name: Last name
|
|
||||||
person_name: Name
|
|
||||||
person_phone: Phone number
|
|
||||||
music_release:
|
music_release:
|
||||||
person_address: Address
|
person_address: Address
|
||||||
person_address_city: City
|
person_address_city: City
|
||||||
@@ -700,7 +609,6 @@ en:
|
|||||||
update: Save Changes
|
update: Save Changes
|
||||||
contract_template:
|
contract_template:
|
||||||
create: Create Release Template
|
create: Create Release Template
|
||||||
update: Save Changes
|
|
||||||
directory:
|
directory:
|
||||||
create: Create Folder
|
create: Create Folder
|
||||||
new_file: Upload Files
|
new_file: Upload Files
|
||||||
@@ -757,7 +665,6 @@ en:
|
|||||||
empty: Location Releases will appear here
|
empty: Location Releases will appear here
|
||||||
table_headers:
|
table_headers:
|
||||||
address: Address
|
address: Address
|
||||||
name: Name
|
|
||||||
notes: Notes
|
notes: Notes
|
||||||
signed_at: Date Signed
|
signed_at: Date Signed
|
||||||
tags: Tags
|
tags: Tags
|
||||||
@@ -792,7 +699,6 @@ en:
|
|||||||
search: Search
|
search: Search
|
||||||
empty: Material Releases will appear here
|
empty: Material Releases will appear here
|
||||||
table_headers:
|
table_headers:
|
||||||
name: Name
|
|
||||||
notes: Notes
|
notes: Notes
|
||||||
signed_at: Date Signed
|
signed_at: Date Signed
|
||||||
tags: Tags
|
tags: Tags
|
||||||
@@ -805,8 +711,6 @@ en:
|
|||||||
update:
|
update:
|
||||||
notice: The material release has been updated
|
notice: The material release has been updated
|
||||||
medical_releases:
|
medical_releases:
|
||||||
custom_validation_errors:
|
|
||||||
question_answer_is_required: answer is required
|
|
||||||
destroy:
|
destroy:
|
||||||
alert: The medical release has been deleted
|
alert: The medical release has been deleted
|
||||||
index:
|
index:
|
||||||
@@ -814,19 +718,12 @@ en:
|
|||||||
search: Search
|
search: Search
|
||||||
empty: Medical releases will appear here
|
empty: Medical releases will appear here
|
||||||
table_headers:
|
table_headers:
|
||||||
approved: Approved
|
|
||||||
approved?: Approved
|
|
||||||
contact_info: Contact info
|
|
||||||
name: Person name
|
|
||||||
notes: Notes
|
notes: Notes
|
||||||
signed_at: Date Signed
|
signed_at: Date Signed
|
||||||
tags: Tags
|
tags: Tags
|
||||||
medical_release:
|
medical_release:
|
||||||
actions:
|
actions:
|
||||||
manage: Manage
|
manage: Manage
|
||||||
review: Review
|
|
||||||
messages:
|
|
||||||
approved_tooltip: Approved by %{user} on %{timestamp}
|
|
||||||
misc_releases:
|
misc_releases:
|
||||||
destroy:
|
destroy:
|
||||||
alert: The misc release has been deleted
|
alert: The misc release has been deleted
|
||||||
@@ -835,8 +732,6 @@ en:
|
|||||||
search: Search
|
search: Search
|
||||||
empty: Misc Releases will appear here
|
empty: Misc Releases will appear here
|
||||||
table_headers:
|
table_headers:
|
||||||
contact_info: Contact info
|
|
||||||
name: Person name
|
|
||||||
notes: Notes
|
notes: Notes
|
||||||
signed_at: Date Signed
|
signed_at: Date Signed
|
||||||
tags: Tags
|
tags: Tags
|
||||||
@@ -871,7 +766,6 @@ en:
|
|||||||
table_headers:
|
table_headers:
|
||||||
composers_count: No. Composers
|
composers_count: No. Composers
|
||||||
file_infos_count: No. Files
|
file_infos_count: No. Files
|
||||||
name: Name
|
|
||||||
notes: Notes
|
notes: Notes
|
||||||
publishers_count: No. Publishers
|
publishers_count: No. Publishers
|
||||||
signed_at: Date Signed
|
signed_at: Date Signed
|
||||||
@@ -1130,8 +1024,6 @@ en:
|
|||||||
instructions: Now, enter your personal information.
|
instructions: Now, enter your personal information.
|
||||||
photo:
|
photo:
|
||||||
heading: Photos
|
heading: Photos
|
||||||
questionnaire:
|
|
||||||
heading: Questionnaire
|
|
||||||
signature:
|
signature:
|
||||||
heading: Signature
|
heading: Signature
|
||||||
talent_releases:
|
talent_releases:
|
||||||
@@ -1268,10 +1160,7 @@ en:
|
|||||||
search: Search
|
search: Search
|
||||||
empty: Talent Releases will appear here
|
empty: Talent Releases will appear here
|
||||||
table_headers:
|
table_headers:
|
||||||
email: Email
|
|
||||||
name: Name
|
|
||||||
notes: Notes
|
notes: Notes
|
||||||
phone: Phone
|
|
||||||
signed_at: Date Signed
|
signed_at: Date Signed
|
||||||
tags: Tags
|
tags: Tags
|
||||||
new:
|
new:
|
||||||
@@ -1313,23 +1202,6 @@ en:
|
|||||||
heading: New Task Request
|
heading: New Task Request
|
||||||
show:
|
show:
|
||||||
empty: Attached files will appear here.
|
empty: Attached files will appear here.
|
||||||
splash:
|
|
||||||
actions:
|
|
||||||
book_demo: Schedule a Demo
|
|
||||||
create_task_request: Create Task Request
|
|
||||||
headings:
|
|
||||||
benefits: Benefits
|
|
||||||
how_it_works: How It Works
|
|
||||||
subtitle: Pay-by-the-hour, digitally-enabled remote assistants
|
|
||||||
welcome: Welcome to
|
|
||||||
list_items:
|
|
||||||
enter_number_of_hours: Enter the number of hours you want the task worked on
|
|
||||||
enter_task_request: Enter your task request
|
|
||||||
reduces_need_for_full_time_staff: Reduces need to hire full-time staff
|
|
||||||
reduces_workload: Reduces workload for current staff
|
|
||||||
spend_per_task: Spend as little as $60 per task
|
|
||||||
state_deadline: State your deadline
|
|
||||||
virtual_assistant_delivers_task: Virtual assistant delivers task via TaskME portal
|
|
||||||
task_request:
|
task_request:
|
||||||
actions:
|
actions:
|
||||||
manage: Manage
|
manage: Manage
|
||||||
@@ -1401,24 +1273,6 @@ en:
|
|||||||
new:
|
new:
|
||||||
heading: Upload Video
|
heading: Upload Video
|
||||||
subheading: 2 of 2 Files
|
subheading: 2 of 2 Files
|
||||||
splash:
|
|
||||||
actions:
|
|
||||||
book_demo: Schedule a Demo
|
|
||||||
upload_video: Upload New Video
|
|
||||||
headings:
|
|
||||||
benefits: Benefits
|
|
||||||
how_it_works: How It Works
|
|
||||||
subtitle: Automate your deliverable documents
|
|
||||||
welcome: Welcome to
|
|
||||||
list_items:
|
|
||||||
AI_generates_documents: AI generates deliverable documents
|
|
||||||
download_documents: Download deliverable documents
|
|
||||||
import_EDLs: Import your EDLs
|
|
||||||
import_video: Import your video
|
|
||||||
more_accurate: More accurate than human-generated reports
|
|
||||||
production_elements_logs: Production Elements Logs, and more
|
|
||||||
reduces_labor_cost: Reduces labor costs
|
|
||||||
simplifies_cue_sheets: Simplifies Music Cue Sheets, Graphic Cue Sheets
|
|
||||||
update:
|
update:
|
||||||
notice: The video has been updated
|
notice: The video has been updated
|
||||||
video:
|
video:
|
||||||
|
|||||||
@@ -1,14 +1,4 @@
|
|||||||
es:
|
es:
|
||||||
acquired_media_releases:
|
|
||||||
acquired_media_release:
|
|
||||||
no_media: No Media (ES)
|
|
||||||
index:
|
|
||||||
table_headers:
|
|
||||||
file_infos_count: No. Files (ES)
|
|
||||||
name: Name (ES)
|
|
||||||
notes: Notes (ES)
|
|
||||||
signed_at: Date Signed (ES)
|
|
||||||
tags: Tags (ES)
|
|
||||||
activerecord:
|
activerecord:
|
||||||
attributes:
|
attributes:
|
||||||
appearance_release:
|
appearance_release:
|
||||||
@@ -51,12 +41,6 @@ es:
|
|||||||
heading: Person Photo (ES)
|
heading: Person Photo (ES)
|
||||||
index:
|
index:
|
||||||
imported_appearance_release_missing_attachment: Person photo or contract missing for imported appearance release (ES)
|
imported_appearance_release_missing_attachment: Person photo or contract missing for imported appearance release (ES)
|
||||||
table_headers:
|
|
||||||
contact_info: ""
|
|
||||||
name: ""
|
|
||||||
notes: ""
|
|
||||||
signed_at: ""
|
|
||||||
tags: ""
|
|
||||||
shared:
|
shared:
|
||||||
imported_appearance_release_contract_name: Contrato Importado
|
imported_appearance_release_contract_name: Contrato Importado
|
||||||
imported_appearance_release_headshot_name: Retrato Importado
|
imported_appearance_release_headshot_name: Retrato Importado
|
||||||
@@ -66,13 +50,6 @@ es:
|
|||||||
all_releases: All Releases (ES)
|
all_releases: All Releases (ES)
|
||||||
complete_releases: Complete Releases (ES)
|
complete_releases: Complete Releases (ES)
|
||||||
incomplete_releases: Incomplete Releases (ES)
|
incomplete_releases: Incomplete Releases (ES)
|
||||||
approvals:
|
|
||||||
create:
|
|
||||||
release_approved: Medical release has been approved (ES)
|
|
||||||
new:
|
|
||||||
actions:
|
|
||||||
approve: Approve (ES)
|
|
||||||
heading: Review Medical Release (ES)
|
|
||||||
blank_contracts:
|
blank_contracts:
|
||||||
new:
|
new:
|
||||||
number_of_copies_label: Number of copies (ES)
|
number_of_copies_label: Number of copies (ES)
|
||||||
@@ -80,40 +57,10 @@ es:
|
|||||||
pdf:
|
pdf:
|
||||||
do_not_copy_warning: "Do not copy (ES)"
|
do_not_copy_warning: "Do not copy (ES)"
|
||||||
serial_number_label: "Serial Number (ES)"
|
serial_number_label: "Serial Number (ES)"
|
||||||
broadcasts:
|
|
||||||
splash:
|
|
||||||
actions:
|
|
||||||
book_demo: Schedule a Demo
|
|
||||||
create_stream: Create New Live Stream
|
|
||||||
headings:
|
|
||||||
benefits: Benefits
|
|
||||||
how_it_works: How It Works
|
|
||||||
subtitle: Remote directing and video village solution
|
|
||||||
welcome: Welcome to
|
|
||||||
list_items:
|
|
||||||
create_stream: Create a live stream
|
|
||||||
direct_shoots_anywhere: Direct shoots anywhere around the world
|
|
||||||
launch_video_conference: Launch Video Conference using plugin
|
|
||||||
share_files: Share files via the ME Suite mobile app
|
|
||||||
share_live_stream: Share live stream with clients all over the the world
|
|
||||||
share_stream: Share live stream link with clients
|
|
||||||
stream_from_mobile_app: Stream from ME Suite Mobile app, or via a professional camera
|
|
||||||
stream_multiple_cameras: Stream multiple cameras at one time
|
|
||||||
contract_templates:
|
contract_templates:
|
||||||
blank_contracts:
|
blank_contracts:
|
||||||
create:
|
create:
|
||||||
number_of_copies_invalid_notice: Please enter valid number greater than 0 (ES)
|
number_of_copies_invalid_notice: Please enter valid number greater than 0 (ES)
|
||||||
contract_template:
|
|
||||||
actions:
|
|
||||||
duplicate: Duplicate (ES)
|
|
||||||
edit: Edit (ES)
|
|
||||||
duplicate:
|
|
||||||
name_prefix: Copy of %{template_name} (ES)
|
|
||||||
duplicates:
|
|
||||||
create:
|
|
||||||
error: Failed to duplicate release template (ES)
|
|
||||||
edit:
|
|
||||||
heading: Edit Contract Template (ES)
|
|
||||||
form:
|
form:
|
||||||
custom_fields:
|
custom_fields:
|
||||||
heading: Medical Questionnaire (ES)
|
heading: Medical Questionnaire (ES)
|
||||||
@@ -123,34 +70,7 @@ es:
|
|||||||
heading: Legal (ES)
|
heading: Legal (ES)
|
||||||
release_info:
|
release_info:
|
||||||
heading: Release Info (ES)
|
heading: Release Info (ES)
|
||||||
splash:
|
|
||||||
actions:
|
|
||||||
book_demo: Schedule a Demo (ES)
|
|
||||||
create_template: Create New Release Template (ES)
|
|
||||||
headings:
|
|
||||||
benefits: ""
|
|
||||||
how_it_works: How It Works (ES)
|
|
||||||
subtitle: The easiest way to create and manage releases. (ES)
|
|
||||||
welcome: Welcome to (ES)
|
|
||||||
list_items:
|
|
||||||
add_tags_and_notes: Add tags and notes to releases for added organization and searchability (ES)
|
|
||||||
all_releases_available: All release types available including Covid Medical, Appearance, Location and more (ES)
|
|
||||||
create_releases: Create releases for your video shoot (ES)
|
|
||||||
download_mobile_app: Download the ME Suite mobile app (ES)
|
|
||||||
manage_large_audience: Easily manage large audiences with the crowd control feature (ES)
|
|
||||||
print_QR_code: Print out release QR codes (ES)
|
|
||||||
releases_automatically_organized: Releases are automatically organized as they’re submitted (ES)
|
|
||||||
update:
|
|
||||||
notice: The release template has been updated (ES)
|
|
||||||
contracts:
|
contracts:
|
||||||
for_office_use_only:
|
|
||||||
description_labels:
|
|
||||||
date_issued: Date Issued (ES)
|
|
||||||
employee_issued_to: Employee Issued To (ES)
|
|
||||||
issued_by: Issued By (ES)
|
|
||||||
producer: Producer (ES)
|
|
||||||
production: Production (ES)
|
|
||||||
heading: For Office Use Only (ES)
|
|
||||||
photos:
|
photos:
|
||||||
guardian_2_photo_heading: Second guardian photo (ES)
|
guardian_2_photo_heading: Second guardian photo (ES)
|
||||||
guardian_photo_heading: Guardian photo (ES)
|
guardian_photo_heading: Guardian photo (ES)
|
||||||
@@ -204,7 +124,6 @@ es:
|
|||||||
contract_template:
|
contract_template:
|
||||||
fee: Leave at $0.00 for no-fee (ES)
|
fee: Leave at $0.00 for no-fee (ES)
|
||||||
guardian_clause: Leave blank if not required for this contract (ES)
|
guardian_clause: Leave blank if not required for this contract (ES)
|
||||||
signature_legal_text: Leave blank if not required for this contract (ES)
|
|
||||||
label:
|
label:
|
||||||
appearance_release:
|
appearance_release:
|
||||||
guardian_2_address_city: Guardian 2 city (ES)
|
guardian_2_address_city: Guardian 2 city (ES)
|
||||||
@@ -317,67 +236,16 @@ es:
|
|||||||
broadcast:
|
broadcast:
|
||||||
create: Create Live Stream (ES)
|
create: Create Live Stream (ES)
|
||||||
update: Save Changes (ES)
|
update: Save Changes (ES)
|
||||||
contract_template:
|
|
||||||
update: Save changes (ES)
|
|
||||||
create: 'Crear %{model}'
|
create: 'Crear %{model}'
|
||||||
medical_release:
|
|
||||||
update: Approve (ES)
|
|
||||||
update: 'Actualizar %{model}'
|
update: 'Actualizar %{model}'
|
||||||
location_releases:
|
location_releases:
|
||||||
form:
|
form:
|
||||||
photos:
|
photos:
|
||||||
dropzone_label: Tap to take a photo of the Property (optional) (ES)
|
dropzone_label: Tap to take a photo of the Property (optional) (ES)
|
||||||
index:
|
|
||||||
table_headers:
|
|
||||||
address: Address (ES)
|
|
||||||
notes: Notes (ES)
|
|
||||||
signed_at: Date Signed (ES)
|
|
||||||
tags: Tags (ES)
|
|
||||||
material_releases:
|
material_releases:
|
||||||
form:
|
form:
|
||||||
photos:
|
photos:
|
||||||
dropzone_label: Tap to take a photo of Licensed Material (optional) (ES)
|
dropzone_label: Tap to take a photo of Licensed Material (optional) (ES)
|
||||||
index:
|
|
||||||
table_headers:
|
|
||||||
name: Name (ES)
|
|
||||||
notes: Notes (ES)
|
|
||||||
signed_at: Date Signed (ES)
|
|
||||||
tags: Tags (ES)
|
|
||||||
medical_releases:
|
|
||||||
custom_validation_errors:
|
|
||||||
question_answer_is_required: answer is required (ES)
|
|
||||||
index:
|
|
||||||
table_headers:
|
|
||||||
approved: Approved (ES)
|
|
||||||
approved?: Approved (ES)
|
|
||||||
contact_info: Contact info (ES)
|
|
||||||
name: Person name (ES)
|
|
||||||
notes: Notes (ES)
|
|
||||||
signed_at: Date Signed (ES)
|
|
||||||
tags: Tags (ES)
|
|
||||||
medical_release:
|
|
||||||
actions:
|
|
||||||
review: Review (ES)
|
|
||||||
messages:
|
|
||||||
approved_tooltip: ""
|
|
||||||
misc_releases:
|
|
||||||
index:
|
|
||||||
table_headers:
|
|
||||||
contact_info: Contact info (ES)
|
|
||||||
name: Person name (ES)
|
|
||||||
notes: Notes (ES)
|
|
||||||
signed_at: Date Signed (ES)
|
|
||||||
tags: Tags (ES)
|
|
||||||
music_releases:
|
|
||||||
index:
|
|
||||||
table_headers:
|
|
||||||
composers_count: No. Composers (ES)
|
|
||||||
file_infos_count: No. Files (ES)
|
|
||||||
name: Name (ES)
|
|
||||||
notes: Notes (ES)
|
|
||||||
publishers_count: No. Publishers (ES)
|
|
||||||
signed_at: Date Signed (ES)
|
|
||||||
tags: Tags (ES)
|
|
||||||
public:
|
public:
|
||||||
appearance_releases:
|
appearance_releases:
|
||||||
create:
|
create:
|
||||||
@@ -482,14 +350,6 @@ es:
|
|||||||
heading: Second Guardian Photo (ES)
|
heading: Second Guardian Photo (ES)
|
||||||
guardian_photo:
|
guardian_photo:
|
||||||
heading: Guardian Photo (ES)
|
heading: Guardian Photo (ES)
|
||||||
index:
|
|
||||||
table_headers:
|
|
||||||
email: Email (ES)
|
|
||||||
name: Name (ES)
|
|
||||||
notes: Notes (ES)
|
|
||||||
phone: Phone (ES)
|
|
||||||
signed_at: Date Signed (ES)
|
|
||||||
tags: Tags (ES)
|
|
||||||
task_requests:
|
task_requests:
|
||||||
create:
|
create:
|
||||||
success_message: Your task request was successfully submitted. Thank you. A chat window will pop up on the lower right in a few seconds. (ES)
|
success_message: Your task request was successfully submitted. Thank you. A chat window will pop up on the lower right in a few seconds. (ES)
|
||||||
@@ -498,44 +358,8 @@ es:
|
|||||||
index:
|
index:
|
||||||
table_headers:
|
table_headers:
|
||||||
task_request_description: Description (ES)
|
task_request_description: Description (ES)
|
||||||
splash:
|
|
||||||
actions:
|
|
||||||
book_demo: Schedule a Demo (ES)
|
|
||||||
create_task_request: Create Task Request
|
|
||||||
headings:
|
|
||||||
benefits: Benefits (ES)
|
|
||||||
how_it_works: How It Works (ES)
|
|
||||||
subtitle: Pay-by-the-hour, digitally-enabled remote assistants (ES)
|
|
||||||
welcome: Welcome to (ES)
|
|
||||||
list_items:
|
|
||||||
enter_number_of_hours: Enter the number of hours you want the task worked on (ES)
|
|
||||||
enter_task_request: Enter your task request (ES)
|
|
||||||
reduces_need_for_full_time_staff: Reduces need to hire full-time staff (ES)
|
|
||||||
reduces_workload: Reduces workload for current staff (ES)
|
|
||||||
spend_per_task: Spend as little as $60 per task (ES)
|
|
||||||
state_deadline: State your deadline (ES)
|
|
||||||
virtual_assistant_delivers_task: Virtual assistant delivers task via TaskME portal (ES)
|
|
||||||
task_request:
|
task_request:
|
||||||
actions:
|
actions:
|
||||||
manage: Manage (ES)
|
manage: Manage (ES)
|
||||||
open_deliverable: Open Deliverable (ES)
|
open_deliverable: Open Deliverable (ES)
|
||||||
read_more: read more (ES)
|
read_more: read more (ES)
|
||||||
videos:
|
|
||||||
splash:
|
|
||||||
actions:
|
|
||||||
book_demo: Schedule a Demo (ES)
|
|
||||||
upload_video: Upload New Video (ES)
|
|
||||||
headings:
|
|
||||||
benefits: Benefits (ES)
|
|
||||||
how_it_works: How It Works (ES)
|
|
||||||
subtitle: Automate your deliverable documents (ES)
|
|
||||||
welcome: Welcome to (ES)
|
|
||||||
list_items:
|
|
||||||
AI_generates_documents: AI generates deliverable documents (ES)
|
|
||||||
download_documents: Download deliverable documents (ES)
|
|
||||||
import_EDLs: Import your EDLs (ES)
|
|
||||||
import_video: Import your video (ES)
|
|
||||||
more_accurate: More accurate than human-generated reports (ES)
|
|
||||||
production_elements_logs: Production Elements Logs, and more (ES)
|
|
||||||
reduces_labor_cost: Reduces labor costs (ES)
|
|
||||||
simplifies_cue_sheets: Simplifies Music Cue Sheets, Graphic Cue Sheets (ES)
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ require 'oath/constraints/signed_in'
|
|||||||
require 'sidekiq/web'
|
require 'sidekiq/web'
|
||||||
|
|
||||||
Rails.application.routes.draw do
|
Rails.application.routes.draw do
|
||||||
AVAILABLE_LOCALES_REGEX = /#{I18n.available_locales.join("|")}/.freeze
|
AVAILABLE_LOCALES_REGEX = /#{I18n.available_locales.join("|")}/
|
||||||
|
|
||||||
concern :confirmable do
|
concern :confirmable do
|
||||||
resources :video_release_confirmations, only: [:new, :create, :destroy]
|
resources :video_release_confirmations, only: [:new, :create, :destroy]
|
||||||
@@ -56,10 +56,9 @@ Rails.application.routes.draw do
|
|||||||
resources :talent_releases, except: [:show], concerns: [:contractable, :notable, :photoable]
|
resources :talent_releases, except: [:show], concerns: [:contractable, :notable, :photoable]
|
||||||
resources :medical_releases, except: [:show], concerns: [:contractable, :notable, :photoable]
|
resources :medical_releases, except: [:show], concerns: [:contractable, :notable, :photoable]
|
||||||
resources :misc_releases, except: [:show], concerns: [:contractable, :notable, :photoable]
|
resources :misc_releases, except: [:show], concerns: [:contractable, :notable, :photoable]
|
||||||
resources :contract_templates, only: [:index, :new, :create, :edit, :update, :destroy] do
|
resources :contract_templates, only: [:index, :new, :create, :destroy] do
|
||||||
resource :qr_codes, only: [:show], controller: "contract_templates/qr_codes"
|
resource :qr_codes, only: [:show], controller: "contract_templates/qr_codes"
|
||||||
resource :blank_contracts, only: [:show, :new, :create], controller: "contract_templates/blank_contracts"
|
resource :blank_contracts, only: [:show, :new, :create], controller: "contract_templates/blank_contracts"
|
||||||
resource :duplicates, only: [:create], controller: "contract_templates/duplicates"
|
|
||||||
end
|
end
|
||||||
resource :release_template_imports, only: [:new, :create]
|
resource :release_template_imports, only: [:new, :create]
|
||||||
resources :project_memberships, only: [:index, :create, :destroy]
|
resources :project_memberships, only: [:index, :create, :destroy]
|
||||||
@@ -137,18 +136,13 @@ Rails.application.routes.draw do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
RELEASES = [:acquired_media_releases, :appearance_releases, :talent_releases, :material_releases, :medical_releases, :misc_releases, :location_releases].freeze
|
RELEASES = [:acquired_media_releases, :appearance_releases, :talent_releases, :material_releases, :location_releases]
|
||||||
ALL_RELEASES = RELEASES + [:music_releases]
|
ALL_RELEASES = RELEASES + [:music_releases, :medical_releases, :misc_releases]
|
||||||
|
|
||||||
ALL_RELEASES.each do |release|
|
ALL_RELEASES.each do |release|
|
||||||
resources release, only: [], concerns: :taggable
|
resources release, only: [], concerns: :taggable
|
||||||
end
|
end
|
||||||
|
|
||||||
# Customization for medical releases
|
|
||||||
resources :medical_releases, only: [], concerns: :taggable do
|
|
||||||
resource :approvals, only: [:new, :create]
|
|
||||||
end
|
|
||||||
|
|
||||||
resources :bulk_taggings, only: [:new, :create]
|
resources :bulk_taggings, only: [:new, :create]
|
||||||
|
|
||||||
namespace :api do
|
namespace :api do
|
||||||
@@ -164,7 +158,7 @@ Rails.application.routes.draw do
|
|||||||
resources :contract_templates, only: [:index]
|
resources :contract_templates, only: [:index]
|
||||||
end
|
end
|
||||||
resources :contract_templates, only: [:show] do
|
resources :contract_templates, only: [:show] do
|
||||||
(RELEASES - [:misc_releases, :medical_releases]).each do |release|
|
RELEASES.each do |release|
|
||||||
resources release, controller: release, only: [:create]
|
resources release, controller: release, only: [:create]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
class AddDurationToBroadcastRecordings < ActiveRecord::DataMigration
|
|
||||||
def up
|
|
||||||
recordings = BroadcastRecording.where(duration: nil)
|
|
||||||
client = MuxRuby::AssetsApi.new
|
|
||||||
|
|
||||||
recordings.each do |recording|
|
|
||||||
begin
|
|
||||||
response = client.get_asset(recording.asset_uid)
|
|
||||||
duration = response.data.duration
|
|
||||||
recording.update(duration: duration)
|
|
||||||
rescue MuxRuby::ApiError => e
|
|
||||||
Rails.logger.error("Failed to update duration for broadcast recording with id #{recording.id}\n" + e.message)
|
|
||||||
end
|
|
||||||
|
|
||||||
sleep(1)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
class AddQuestionAnswersToMiscReleases < ActiveRecord::Migration[6.0]
|
|
||||||
def change
|
|
||||||
add_column :misc_releases, :question_1_answer, :text
|
|
||||||
add_column :misc_releases, :question_2_answer, :text
|
|
||||||
add_column :misc_releases, :question_3_answer, :text
|
|
||||||
add_column :misc_releases, :question_4_answer, :text
|
|
||||||
add_column :misc_releases, :question_5_answer, :text
|
|
||||||
add_column :misc_releases, :question_6_answer, :text
|
|
||||||
add_column :misc_releases, :question_7_answer, :text
|
|
||||||
add_column :misc_releases, :question_8_answer, :text
|
|
||||||
add_column :misc_releases, :question_9_answer, :text
|
|
||||||
add_column :misc_releases, :question_10_answer, :text
|
|
||||||
add_column :misc_releases, :question_11_answer, :text
|
|
||||||
add_column :misc_releases, :question_12_answer, :text
|
|
||||||
add_column :misc_releases, :question_13_answer, :text
|
|
||||||
add_column :misc_releases, :question_14_answer, :text
|
|
||||||
add_column :misc_releases, :question_15_answer, :text
|
|
||||||
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
class AddApprovalInfoColumnsToMedicalReleases < ActiveRecord::Migration[6.0]
|
|
||||||
def change
|
|
||||||
add_column :medical_releases, :approved_by_user_name, :text
|
|
||||||
add_column :medical_releases, :approved_by_user_email, :text
|
|
||||||
add_column :medical_releases, :approved_at, :timestamp
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
class AddAccessibilityToContractTemplates < ActiveRecord::Migration[6.0]
|
|
||||||
def change
|
|
||||||
add_column :contract_templates, :accessibility, :integer, default: 0
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
class AddDurationToBroadcastRecordings < ActiveRecord::Migration[6.0]
|
|
||||||
def change
|
|
||||||
add_column :broadcast_recordings, :duration, :float
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -9,6 +9,20 @@ SET xmloption = content;
|
|||||||
SET client_min_messages = warning;
|
SET client_min_messages = warning;
|
||||||
SET row_security = off;
|
SET row_security = off;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: fuzzystrmatch; Type: EXTENSION; Schema: -; Owner: -
|
-- Name: fuzzystrmatch; Type: EXTENSION; Schema: -; Owner: -
|
||||||
--
|
--
|
||||||
@@ -317,8 +331,8 @@ CREATE TABLE public.appearance_releases (
|
|||||||
person_last_name character varying,
|
person_last_name character varying,
|
||||||
guardian_first_name character varying,
|
guardian_first_name character varying,
|
||||||
guardian_last_name character varying,
|
guardian_last_name character varying,
|
||||||
identifier character varying,
|
|
||||||
guardian_email character varying,
|
guardian_email character varying,
|
||||||
|
identifier character varying,
|
||||||
person_address_street2 character varying,
|
person_address_street2 character varying,
|
||||||
person_address_city character varying,
|
person_address_city character varying,
|
||||||
person_address_state character varying,
|
person_address_state character varying,
|
||||||
@@ -494,8 +508,7 @@ CREATE TABLE public.broadcast_recordings (
|
|||||||
asset_playback_uid character varying NOT NULL,
|
asset_playback_uid character varying NOT NULL,
|
||||||
file_name character varying NOT NULL,
|
file_name character varying NOT NULL,
|
||||||
created_at timestamp(6) without time zone NOT NULL,
|
created_at timestamp(6) without time zone NOT NULL,
|
||||||
updated_at timestamp(6) without time zone NOT NULL,
|
updated_at timestamp(6) without time zone NOT NULL
|
||||||
duration double precision
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@@ -630,8 +643,7 @@ CREATE TABLE public.contract_templates (
|
|||||||
question_12_text text,
|
question_12_text text,
|
||||||
question_13_text text,
|
question_13_text text,
|
||||||
question_14_text text,
|
question_14_text text,
|
||||||
question_15_text text,
|
question_15_text text
|
||||||
accessibility integer DEFAULT 0
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@@ -654,6 +666,15 @@ CREATE SEQUENCE public.contract_templates_id_seq
|
|||||||
ALTER SEQUENCE public.contract_templates_id_seq OWNED BY public.contract_templates.id;
|
ALTER SEQUENCE public.contract_templates_id_seq OWNED BY public.contract_templates.id;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: data_migrations; Type: TABLE; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE TABLE public.data_migrations (
|
||||||
|
version character varying NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: directories; Type: TABLE; Schema: public; Owner: -
|
-- Name: directories; Type: TABLE; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@@ -1047,10 +1068,7 @@ CREATE TABLE public.medical_releases (
|
|||||||
guardian_2_address_city character varying,
|
guardian_2_address_city character varying,
|
||||||
guardian_2_address_state character varying,
|
guardian_2_address_state character varying,
|
||||||
guardian_2_address_zip character varying,
|
guardian_2_address_zip character varying,
|
||||||
guardian_2_address_country character varying,
|
guardian_2_address_country character varying
|
||||||
approved_by_user_name text,
|
|
||||||
approved_by_user_email text,
|
|
||||||
approved_at timestamp without time zone
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@@ -1106,22 +1124,7 @@ CREATE TABLE public.misc_releases (
|
|||||||
signed_at timestamp without time zone,
|
signed_at timestamp without time zone,
|
||||||
minor boolean DEFAULT false,
|
minor boolean DEFAULT false,
|
||||||
created_at timestamp(6) without time zone NOT NULL,
|
created_at timestamp(6) without time zone NOT NULL,
|
||||||
updated_at timestamp(6) without time zone NOT NULL,
|
updated_at timestamp(6) without time zone NOT NULL
|
||||||
question_1_answer text,
|
|
||||||
question_2_answer text,
|
|
||||||
question_3_answer text,
|
|
||||||
question_4_answer text,
|
|
||||||
question_5_answer text,
|
|
||||||
question_6_answer text,
|
|
||||||
question_7_answer text,
|
|
||||||
question_8_answer text,
|
|
||||||
question_9_answer text,
|
|
||||||
question_10_answer text,
|
|
||||||
question_11_answer text,
|
|
||||||
question_12_answer text,
|
|
||||||
question_13_answer text,
|
|
||||||
question_14_answer text,
|
|
||||||
question_15_answer text
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@@ -1398,7 +1401,6 @@ CREATE TABLE public.settings (
|
|||||||
--
|
--
|
||||||
|
|
||||||
CREATE SEQUENCE public.settings_id_seq
|
CREATE SEQUENCE public.settings_id_seq
|
||||||
AS integer
|
|
||||||
START WITH 1
|
START WITH 1
|
||||||
INCREMENT BY 1
|
INCREMENT BY 1
|
||||||
NO MINVALUE
|
NO MINVALUE
|
||||||
@@ -1434,7 +1436,6 @@ CREATE TABLE public.taggings (
|
|||||||
--
|
--
|
||||||
|
|
||||||
CREATE SEQUENCE public.taggings_id_seq
|
CREATE SEQUENCE public.taggings_id_seq
|
||||||
AS integer
|
|
||||||
START WITH 1
|
START WITH 1
|
||||||
INCREMENT BY 1
|
INCREMENT BY 1
|
||||||
NO MINVALUE
|
NO MINVALUE
|
||||||
@@ -1465,7 +1466,6 @@ CREATE TABLE public.tags (
|
|||||||
--
|
--
|
||||||
|
|
||||||
CREATE SEQUENCE public.tags_id_seq
|
CREATE SEQUENCE public.tags_id_seq
|
||||||
AS integer
|
|
||||||
START WITH 1
|
START WITH 1
|
||||||
INCREMENT BY 1
|
INCREMENT BY 1
|
||||||
NO MINVALUE
|
NO MINVALUE
|
||||||
@@ -1826,9 +1826,9 @@ CREATE TABLE public.zoom_meetings (
|
|||||||
api_meeting_id character varying,
|
api_meeting_id character varying,
|
||||||
created_at timestamp(6) without time zone NOT NULL,
|
created_at timestamp(6) without time zone NOT NULL,
|
||||||
updated_at timestamp(6) without time zone NOT NULL,
|
updated_at timestamp(6) without time zone NOT NULL,
|
||||||
|
status integer DEFAULT 0,
|
||||||
zoom_user_id bigint,
|
zoom_user_id bigint,
|
||||||
project_id bigint,
|
project_id bigint
|
||||||
status integer DEFAULT 0
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@@ -2305,6 +2305,14 @@ ALTER TABLE ONLY public.contract_templates
|
|||||||
ADD CONSTRAINT contract_templates_pkey PRIMARY KEY (id);
|
ADD CONSTRAINT contract_templates_pkey PRIMARY KEY (id);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: data_migrations data_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY public.data_migrations
|
||||||
|
ADD CONSTRAINT data_migrations_pkey PRIMARY KEY (version);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: directories directories_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
-- Name: directories directories_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@@ -3906,10 +3914,6 @@ INSERT INTO "schema_migrations" (version) VALUES
|
|||||||
('20200619085823'),
|
('20200619085823'),
|
||||||
('20200619134853'),
|
('20200619134853'),
|
||||||
('20200622180507'),
|
('20200622180507'),
|
||||||
('20200625144713'),
|
('20200625144713');
|
||||||
('20200702152130'),
|
|
||||||
('20200707155717'),
|
|
||||||
('20200709120630'),
|
|
||||||
('20200712181139');
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -57,8 +57,6 @@ RSpec.describe AccountsController, type: :controller do
|
|||||||
expect {
|
expect {
|
||||||
post :create, params: params
|
post :create, params: params
|
||||||
}.to have_enqueued_job(SubmitHubspotFormJob).with(
|
}.to have_enqueued_job(SubmitHubspotFormJob).with(
|
||||||
"John",
|
|
||||||
"Doe",
|
|
||||||
"test_user+1@test.com",
|
"test_user+1@test.com",
|
||||||
"Test Dev account",
|
"Test Dev account",
|
||||||
i_m_interested_in: "DirectME"
|
i_m_interested_in: "DirectME"
|
||||||
|
|||||||
@@ -37,26 +37,23 @@ RSpec.describe Api::AppearanceReleasesController, type: :controller do
|
|||||||
|
|
||||||
it 'includes photos' do
|
it 'includes photos' do
|
||||||
project = create(:project, account_id: current_user.primary_account.id)
|
project = create(:project, account_id: current_user.primary_account.id)
|
||||||
appearance_release = create(:appearance_release,
|
appearance_release = create(:appearance_release, person_first_name: 'Release', person_last_name: 'Name', project: project)
|
||||||
:with_person_photo, :with_guardian_photo, :with_guardian_2_photo,
|
|
||||||
project: project)
|
|
||||||
|
|
||||||
sign_in_to_api(current_user)
|
sign_in_to_api(current_user)
|
||||||
get :show, params: { id: appearance_release.id }
|
get :show, params: { id: appearance_release.id }
|
||||||
|
|
||||||
[appearance_release.person_photo, appearance_release.guardian_photo, appearance_release.guardian_2_photo].each do |photo|
|
photo = appearance_release.person_photo
|
||||||
data = {
|
data = {
|
||||||
'id' => photo.id.to_s,
|
'id' => photo.id.to_s,
|
||||||
'type' => 'active_storage_attachment',
|
'type' => 'active_storage_attachment',
|
||||||
'attributes' => {
|
'attributes' => {
|
||||||
'content_type' => photo.content_type,
|
'content_type' => photo.content_type,
|
||||||
'filename' => photo.filename.to_s,
|
'filename' => photo.filename.to_s,
|
||||||
'url' => photo_path_for(photo),
|
'url' => photo_path_for(photo),
|
||||||
'thumbnail_url' => photo_variant_path_for(photo, '150x150')
|
'thumbnail_url' => photo_variant_path_for(photo, '150x150')
|
||||||
}
|
|
||||||
}
|
}
|
||||||
expect(response_body_included_attributes).to include(data)
|
}
|
||||||
end
|
expect(response_body_included_attributes).to include(data)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -187,46 +184,7 @@ RSpec.describe Api::AppearanceReleasesController, type: :controller do
|
|||||||
expect(appearance_release.guardian_photo).to be_attached
|
expect(appearance_release.guardian_photo).to be_attached
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns 201 for minor without second guardian photo' do
|
|
||||||
post :create, params: @parameters.deep_merge(appearance_release: {
|
|
||||||
minor: true,
|
|
||||||
guardian_2_name: 'Guardian 2 Name',
|
|
||||||
guardian_2_phone: '101010',
|
|
||||||
})
|
|
||||||
|
|
||||||
expect(response.status).to eq 201
|
|
||||||
expect(AppearanceRelease.last.signature).to be_attached
|
|
||||||
expect(AppearanceRelease.last.guardian_2_photo).not_to be_attached
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'returns 201 for minor with second guardian photo' do
|
|
||||||
post :create, params: @parameters.deep_merge(appearance_release: {
|
|
||||||
minor: true,
|
|
||||||
guardian_2_name: 'Guardian 2 Name',
|
|
||||||
guardian_2_phone: '101010',
|
|
||||||
guardian_2_photo: {
|
|
||||||
io: guardian_photo_base64,
|
|
||||||
filename: 'guardian_2_photo.jpeg'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
expect(response.status).to eq 201
|
|
||||||
|
|
||||||
appearance_release = AppearanceRelease.last
|
|
||||||
photo = appearance_release.guardian_2_photo
|
|
||||||
data = {
|
|
||||||
'id' => photo.id.to_s,
|
|
||||||
'type' => 'active_storage_attachment',
|
|
||||||
'attributes' => {
|
|
||||||
'content_type' => photo.content_type,
|
|
||||||
'filename' => photo.filename.to_s,
|
|
||||||
'url' => photo_path_for(photo),
|
|
||||||
'thumbnail_url' => photo_variant_path_for(photo, '150x150')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
expect(response_body_included_attributes).to include(data)
|
|
||||||
expect(appearance_release.signature).to be_attached
|
|
||||||
expect(appearance_release.guardian_2_photo).to be_attached
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|||||||
@@ -30,21 +30,6 @@ RSpec.describe Api::ContractTemplatesController, type: :controller do
|
|||||||
|
|
||||||
expect(response).to be_successful
|
expect(response).to be_successful
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns electronic signature legal text when present' do
|
|
||||||
ct = create(:contract_template, name: 'ct1', project_id: project.id)
|
|
||||||
ct.signature_legal_text = "some electronic signature legal text"
|
|
||||||
ct.save
|
|
||||||
|
|
||||||
sign_in_to_api(current_user)
|
|
||||||
get :show, params: { id: ct.id }
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
|
|
||||||
expect(response.body).to include("signature_legal_text")
|
|
||||||
expect(response.body).to include(ct.signature_legal_text.body.as_json)
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|||||||
@@ -1,42 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
require 'rails_helper'
|
|
||||||
|
|
||||||
RSpec.describe Api::MedicalReleasesController, type: :controller do
|
|
||||||
let(:current_user) { create(:user) }
|
|
||||||
let(:project) { create(:project, name: 'first', account: current_user.primary_account) }
|
|
||||||
|
|
||||||
describe '#index' do
|
|
||||||
it 'returns a succesful response' do
|
|
||||||
create(:medical_release, person_first_name: 'John', person_last_name: 'Lee', project_id: project.id)
|
|
||||||
create(:medical_release, person_first_name: 'Jane', person_last_name: 'Lee', project_id: project.id)
|
|
||||||
|
|
||||||
sign_in_to_api(current_user)
|
|
||||||
get :index, params: { project_id: project.id }
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
expect(response.body).to include 'John'
|
|
||||||
expect(response.body).to include 'Jane'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe '#show' do
|
|
||||||
it 'returns a succesful response' do
|
|
||||||
release1 = create(:medical_release, person_first_name: 'John', person_last_name: 'Lee', project_id: project.id)
|
|
||||||
release2 = create(:medical_release, person_first_name: 'Jane', person_last_name: 'Lee', project_id: project.id)
|
|
||||||
|
|
||||||
sign_in_to_api(current_user)
|
|
||||||
get :show, params: { id: release1 }
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
expect(response.body).to include 'John'
|
|
||||||
expect(response.body).not_to include 'Jane'
|
|
||||||
|
|
||||||
get :show, params: { id: release2 }
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
expect(response.body).not_to include 'John'
|
|
||||||
expect(response.body).to include 'Jane'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
require 'rails_helper'
|
|
||||||
|
|
||||||
RSpec.describe Api::MiscReleasesController, type: :controller do
|
|
||||||
let(:current_user) { create(:user) }
|
|
||||||
let(:project) { create(:project, name: 'first', account: current_user.primary_account) }
|
|
||||||
|
|
||||||
describe '#index' do
|
|
||||||
it 'returns a succesful response' do
|
|
||||||
create(:misc_release, person_first_name: 'John', person_last_name: 'Lee', project_id: project.id)
|
|
||||||
create(:misc_release, person_first_name: 'Jane', person_last_name: 'Lee', project_id: project.id)
|
|
||||||
|
|
||||||
sign_in_to_api(current_user)
|
|
||||||
get :index, params: { project_id: project.id }
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
expect(response.body).to include 'John'
|
|
||||||
expect(response.body).to include 'Jane'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe '#show' do
|
|
||||||
it 'returns a succesful response' do
|
|
||||||
release1 = create(:misc_release, person_first_name: 'John', person_last_name: 'Lee', project_id: project.id)
|
|
||||||
release2 = create(:misc_release, person_first_name: 'Jane', person_last_name: 'Lee', project_id: project.id)
|
|
||||||
|
|
||||||
sign_in_to_api(current_user)
|
|
||||||
get :show, params: { id: release1 }
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
expect(response.body).to include 'John'
|
|
||||||
expect(response.body).not_to include 'Jane'
|
|
||||||
|
|
||||||
get :show, params: { id: release2 }
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
expect(response.body).not_to include 'John'
|
|
||||||
expect(response.body).to include 'Jane'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -18,14 +18,6 @@ releases = [
|
|||||||
{
|
{
|
||||||
type: :material_release,
|
type: :material_release,
|
||||||
obligatory_attribute: :name
|
obligatory_attribute: :name
|
||||||
},
|
|
||||||
{
|
|
||||||
type: :medical_release,
|
|
||||||
obligatory_attribute: :person_name
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: :misc_release,
|
|
||||||
obligatory_attribute: :person_name
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -110,33 +110,6 @@ RSpec.describe Api::SyncController, type: :controller do
|
|||||||
expect(guardian_photo).to include('id', 'type', 'attributes')
|
expect(guardian_photo).to include('id', 'type', 'attributes')
|
||||||
expect(photo_attributes).to include('filename', 'content_type', 'url', 'thumbnail_url')
|
expect(photo_attributes).to include('filename', 'content_type', 'url', 'thumbnail_url')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'contains misc releases' do
|
|
||||||
create_default_data
|
|
||||||
|
|
||||||
get :index
|
|
||||||
|
|
||||||
misc_releases = attributes_for_type('misc_releases')
|
|
||||||
|
|
||||||
expect(misc_releases.first).to include('id')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'contains misc releases' do
|
|
||||||
create_default_data
|
|
||||||
|
|
||||||
get :index
|
|
||||||
|
|
||||||
medical_releases = attributes_for_type('medical_releases')
|
|
||||||
expect(medical_releases.first).to include('id')
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'contains signature legal text for contract templates' do
|
|
||||||
create_default_data_with_signature_legal_text
|
|
||||||
get :index
|
|
||||||
contract_templates = attributes_for_type('contract_templates')
|
|
||||||
expect(contract_templates.first).to include('signature_legal_text')
|
|
||||||
expect(contract_templates.first['signature_legal_text']).to eq ContractTemplate.first.signature_legal_text.as_json
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
@@ -147,8 +120,6 @@ RSpec.describe Api::SyncController, type: :controller do
|
|||||||
create(:talent_release, project: project)
|
create(:talent_release, project: project)
|
||||||
create(:location_release, project: project)
|
create(:location_release, project: project)
|
||||||
create(:material_release, project: project)
|
create(:material_release, project: project)
|
||||||
create(:medical_release, project: project)
|
|
||||||
create(:misc_release, project: project)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_default_data_with_guardian_info
|
def create_default_data_with_guardian_info
|
||||||
@@ -156,13 +127,6 @@ RSpec.describe Api::SyncController, type: :controller do
|
|||||||
create(:appearance_release, :minor_with_guardian_photo, project: project)
|
create(:appearance_release, :minor_with_guardian_photo, project: project)
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_default_data_with_signature_legal_text
|
|
||||||
create_default_data
|
|
||||||
ct = create(:contract_template, name: "with signature legal text", project: Project.first)
|
|
||||||
ct.signature_legal_text = "legal text example"
|
|
||||||
ct.save
|
|
||||||
end
|
|
||||||
|
|
||||||
def response_body_json
|
def response_body_json
|
||||||
JSON.parse(response.body)
|
JSON.parse(response.body)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -32,28 +32,26 @@ RSpec.describe Api::TalentReleasesController, type: :controller do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it 'includes photos' do
|
it 'includes photos' do
|
||||||
project = create(:project, account_id: current_user.primary_account.id)
|
tested_release = create("talent_release_with_photo", person_name: 'Release 1', project: project)
|
||||||
talent_release = create(:talent_release,
|
|
||||||
:with_guardian_photo, :with_guardian_2_photo,
|
|
||||||
project: project)
|
|
||||||
|
|
||||||
sign_in_to_api(current_user)
|
sign_in_to_api(current_user)
|
||||||
get :show, params: { id: talent_release.id }
|
get :show, params: { id: tested_release.id }
|
||||||
|
|
||||||
[talent_release.photos, talent_release.guardian_photo, talent_release.guardian_2_photo].flatten.each do |photo|
|
tested_release.photos.each do |photo|
|
||||||
data = {
|
data = {
|
||||||
'id' => photo.id.to_s,
|
'id' => photo.id.to_s,
|
||||||
'type' => 'active_storage_attachment',
|
'type' => 'active_storage_attachment',
|
||||||
'attributes' => {
|
'attributes' => {
|
||||||
'content_type' => photo.content_type,
|
'content_type' => photo.content_type,
|
||||||
'filename' => photo.filename.to_s,
|
'filename' => photo.filename.to_s,
|
||||||
'url' => photo_path_for(photo),
|
'url' => photo_path_for(photo),
|
||||||
'thumbnail_url' => photo_variant_path_for(photo, '150x150')
|
'thumbnail_url' => photo_variant_path_for(photo, '150x150')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
expect(response_body_included_attributes).to include(data)
|
|
||||||
end
|
expect(response_body_included_attributes).to include(data)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#create' do
|
describe '#create' do
|
||||||
@@ -182,47 +180,6 @@ RSpec.describe Api::TalentReleasesController, type: :controller do
|
|||||||
expect(talent_release.signature).to be_attached
|
expect(talent_release.signature).to be_attached
|
||||||
expect(talent_release.guardian_photo).to be_attached
|
expect(talent_release.guardian_photo).to be_attached
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns 201 for minor without second guardian photo' do
|
|
||||||
post :create, params: @parameters.deep_merge(talent_release: {
|
|
||||||
minor: true,
|
|
||||||
guardian_2_name: 'Guardian 2 Name',
|
|
||||||
guardian_2_phone: '101010',
|
|
||||||
})
|
|
||||||
|
|
||||||
expect(response.status).to eq 201
|
|
||||||
expect(TalentRelease.last.signature).to be_attached
|
|
||||||
expect(TalentRelease.last.guardian_2_photo).not_to be_attached
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'returns 201 for minor with second guardian photo' do
|
|
||||||
post :create, params: @parameters.deep_merge(talent_release: {
|
|
||||||
minor: true,
|
|
||||||
guardian_2_name: 'Guardian 2 Name',
|
|
||||||
guardian_2_phone: '101010',
|
|
||||||
guardian_2_photo: {
|
|
||||||
io: guardian_photo_base64,
|
|
||||||
filename: 'guardian_2_photo.jpeg'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
expect(response.status).to eq 201
|
|
||||||
|
|
||||||
talent_release = TalentRelease.last
|
|
||||||
photo = talent_release.guardian_2_photo
|
|
||||||
data = {
|
|
||||||
'id' => photo.id.to_s,
|
|
||||||
'type' => 'active_storage_attachment',
|
|
||||||
'attributes' => {
|
|
||||||
'content_type' => photo.content_type,
|
|
||||||
'filename' => photo.filename.to_s,
|
|
||||||
'url' => photo_path_for(photo),
|
|
||||||
'thumbnail_url' => photo_variant_path_for(photo, '150x150')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
expect(response_body_included_attributes).to include(data)
|
|
||||||
expect(talent_release.signature).to be_attached
|
|
||||||
expect(talent_release.guardian_2_photo).to be_attached
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|||||||
@@ -1,36 +0,0 @@
|
|||||||
require "rails_helper"
|
|
||||||
|
|
||||||
RSpec.describe ApprovalsController, type: :controller do
|
|
||||||
render_views
|
|
||||||
|
|
||||||
let(:user) { create(:user) }
|
|
||||||
let(:account) { user.primary_account }
|
|
||||||
let(:project) { create(:project, account: user.primary_account) }
|
|
||||||
|
|
||||||
before do
|
|
||||||
sign_in user
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#new" do
|
|
||||||
let!(:medical_release) { create(:medical_release, project: project) }
|
|
||||||
|
|
||||||
it "responds successfully" do
|
|
||||||
get :new, params: { medical_release_id: medical_release }
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#create" do
|
|
||||||
it "changes approval status successfully" do
|
|
||||||
medical_release = create(:medical_release, project: project)
|
|
||||||
|
|
||||||
expect(MedicalRelease.last.approved?).to eq false
|
|
||||||
|
|
||||||
post :create, params: { medical_release_id: medical_release }
|
|
||||||
|
|
||||||
expect(response).to redirect_to [project, :medical_releases]
|
|
||||||
expect(MedicalRelease.last.approved?).to eq true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -22,7 +22,7 @@ RSpec.describe BroadcastsController, type: :controller do
|
|||||||
expect(response).to be_successful
|
expect(response).to be_successful
|
||||||
end
|
end
|
||||||
|
|
||||||
it "renders content if theere are existing broadcasts" do
|
it "renders content" do
|
||||||
create(:broadcast, project: project, name: "Another Broadcast")
|
create(:broadcast, project: project, name: "Another Broadcast")
|
||||||
|
|
||||||
get :index, params: { project_id: project }
|
get :index, params: { project_id: project }
|
||||||
@@ -34,13 +34,12 @@ RSpec.describe BroadcastsController, type: :controller do
|
|||||||
end
|
end
|
||||||
|
|
||||||
context "when there are no active broadcasts" do
|
context "when there are no active broadcasts" do
|
||||||
it "renders splash screen" do
|
it "renders an empty message" do
|
||||||
Broadcast.destroy_all
|
Broadcast.destroy_all
|
||||||
|
|
||||||
get :index, params: { project_id: project }
|
get :index, params: { project_id: project }
|
||||||
|
|
||||||
expect(response.body).to have_link create_stream
|
expect(response.body).to have_content("Live streams will appear here")
|
||||||
expect(response.body).to have_link schedule_demo
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -56,8 +55,10 @@ RSpec.describe BroadcastsController, type: :controller do
|
|||||||
|
|
||||||
context "for xhr request" do
|
context "for xhr request" do
|
||||||
it "filters the broadcasts by a query param" do
|
it "filters the broadcasts by a query param" do
|
||||||
create(:broadcast, project: project, skip_create_callback: true, name: "Stream by Adam")
|
appearance_releases = [
|
||||||
create(:broadcast, project: project, skip_create_callback: true, name: "Stream by Zoe")
|
create(:broadcast, skip_create_callback: true, name: "Stream by Adam"),
|
||||||
|
create(:broadcast, skip_create_callback: true, name: "Stream by Zoe"),
|
||||||
|
]
|
||||||
|
|
||||||
get :index, params: { project_id: project, query: "Zoe" }, xhr: true
|
get :index, params: { project_id: project, query: "Zoe" }, xhr: true
|
||||||
|
|
||||||
@@ -244,12 +245,4 @@ RSpec.describe BroadcastsController, type: :controller do
|
|||||||
|
|
||||||
{ files: [contract_file] }
|
{ files: [contract_file] }
|
||||||
end
|
end
|
||||||
|
|
||||||
def schedule_demo
|
|
||||||
t 'broadcasts.splash.actions.book_demo'
|
|
||||||
end
|
|
||||||
|
|
||||||
def create_stream
|
|
||||||
t 'broadcasts.splash.actions.create_stream'
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
require 'rails_helper'
|
|
||||||
|
|
||||||
describe ContractTemplates::DuplicatesController do
|
|
||||||
let(:account) { build(:account) }
|
|
||||||
let(:current_user) { create(:user, :manager, primary_account: account) }
|
|
||||||
let(:project) { create(:project, members: [current_user], account: account) }
|
|
||||||
|
|
||||||
before do
|
|
||||||
sign_in(current_user)
|
|
||||||
end
|
|
||||||
|
|
||||||
describe '#create' do
|
|
||||||
it "responds with redirect to the edit page for newly created duplicate" do
|
|
||||||
contract_template = create(:contract_template, project: project)
|
|
||||||
|
|
||||||
expect do
|
|
||||||
post :create, params: { contract_template_id: contract_template }
|
|
||||||
end.to change(ContractTemplate, :count).by(1)
|
|
||||||
|
|
||||||
new_ct = ContractTemplate.last
|
|
||||||
|
|
||||||
expect(new_ct.name).to eq t('contract_templates.duplicate.name_prefix', template_name: contract_template.name)
|
|
||||||
expect(new_ct.release_type).to eq contract_template.release_type
|
|
||||||
|
|
||||||
expect(response).to redirect_to [:edit, new_ct]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -19,7 +19,7 @@ describe ContractTemplatesController do
|
|||||||
expect(response).to be_successful
|
expect(response).to be_successful
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'renders content if there are contract templates' do
|
it 'renders content' do
|
||||||
contract_template = create(:contract_template,
|
contract_template = create(:contract_template,
|
||||||
name: 'My Contract Template', fee: 50, release_type: 'appearance',
|
name: 'My Contract Template', fee: 50, release_type: 'appearance',
|
||||||
project: project)
|
project: project)
|
||||||
@@ -39,11 +39,10 @@ describe ContractTemplatesController do
|
|||||||
end
|
end
|
||||||
|
|
||||||
context 'when there are no contract templates' do
|
context 'when there are no contract templates' do
|
||||||
it 'renders splash screen' do
|
it 'renders an empty message' do
|
||||||
get :index, params: { project_id: project }
|
get :index, params: { project_id: project }
|
||||||
|
|
||||||
expect(response.body).to have_link "Create New Release Template"
|
expect(response.body).to have_content('Release Templates will appear here')
|
||||||
expect(response.body).to have_link schedule_demo
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -51,7 +50,6 @@ describe ContractTemplatesController do
|
|||||||
let(:current_user) { create(:user, :associate) }
|
let(:current_user) { create(:user, :associate) }
|
||||||
|
|
||||||
it 'does not show the new contract template button' do
|
it 'does not show the new contract template button' do
|
||||||
create(:contract_template, project: project)
|
|
||||||
get :index, params: { project_id: project }
|
get :index, params: { project_id: project }
|
||||||
|
|
||||||
expect(response.body).not_to have_link('Create New Release Template')
|
expect(response.body).not_to have_link('Create New Release Template')
|
||||||
@@ -118,57 +116,6 @@ describe ContractTemplatesController do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#edit' do
|
|
||||||
let(:contract_template) do
|
|
||||||
create(:contract_template,
|
|
||||||
name: 'My Contract Template', fee: 50, release_type: 'appearance',
|
|
||||||
project: project)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'responds ok' do
|
|
||||||
get :edit, params: { project_id: project, id: contract_template }
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when current user is an associate' do
|
|
||||||
let(:current_user) { create(:user, :associate) }
|
|
||||||
|
|
||||||
it 'raises exception' do
|
|
||||||
expect do
|
|
||||||
get :edit, params: { project_id: project, id: contract_template }
|
|
||||||
end.to raise_error(Pundit::NotAuthorizedError)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
describe '#update' do
|
|
||||||
let(:contract_template) do
|
|
||||||
create(:contract_template,
|
|
||||||
name: 'My Contract Template', fee: 50, release_type: 'appearance',
|
|
||||||
project: project)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'redirects' do
|
|
||||||
patch :update, params: { project_id: project, id: contract_template, contract_template: contract_template_params }
|
|
||||||
|
|
||||||
expect(response).to redirect_to(project_contract_templates_path(project))
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
context 'when current user is an associate' do
|
|
||||||
let(:current_user) { create(:user, :associate) }
|
|
||||||
|
|
||||||
it 'raises exception' do
|
|
||||||
expect do
|
|
||||||
patch :update, params: { project_id: project, id: contract_template, contract_template: contract_template_params }
|
|
||||||
end.to raise_error(Pundit::NotAuthorizedError)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe '#destroy' do
|
describe '#destroy' do
|
||||||
let!(:contract_template) { create(:contract_template, project: project) }
|
let!(:contract_template) { create(:contract_template, project: project) }
|
||||||
|
|
||||||
@@ -219,8 +166,4 @@ describe ContractTemplatesController do
|
|||||||
restriction_text: 'restrictions'
|
restriction_text: 'restrictions'
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
def schedule_demo
|
|
||||||
t 'contract_templates.splash.actions.book_demo'
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -19,29 +19,14 @@ RSpec.describe Public::MedicalReleasesController, type: :controller do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it "displays validation errors" do
|
it "displays validation errors" do
|
||||||
contract_template = create(:contract_template,
|
contract_template = create(:contract_template, project: project)
|
||||||
project: project,
|
|
||||||
question_1_text: "Question 1",
|
|
||||||
question_2_text: "Question 2"
|
|
||||||
)
|
|
||||||
sign_in(user)
|
sign_in(user)
|
||||||
|
|
||||||
post :create, params: {
|
post :create, params: { account_id: user.primary_account.to_param, project_id: project, contract_template_id: contract_template, medical_release: { person_address_city: "Albuquerque" } }
|
||||||
account_id: user.primary_account.to_param,
|
|
||||||
project_id: project,
|
|
||||||
contract_template_id: contract_template,
|
|
||||||
medical_release: {
|
|
||||||
person_address_city: "Albuquerque",
|
|
||||||
question_2_answer: "Answer 2"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
body = CGI.unescape_html(response.body)
|
body = CGI.unescape_html(response.body)
|
||||||
expect(body).to match /Person first name can't be blank/
|
expect(body).to match /Person first name can't be blank/
|
||||||
expect(body).to match /Person last name can't be blank/
|
expect(body).to match /Person last name can't be blank/
|
||||||
expect(body).to match />can't be blank</
|
expect(body).to match />can't be blank</
|
||||||
expect(body).to match /Question 1 #{question_answer_validation_error}/
|
|
||||||
expect(body).not_to match /Question 2 #{question_answer_validation_error}/
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "responds with success " do
|
it "responds with success " do
|
||||||
@@ -83,8 +68,4 @@ RSpec.describe Public::MedicalReleasesController, type: :controller do
|
|||||||
|
|
||||||
{ signature_base64: data_uri }
|
{ signature_base64: data_uri }
|
||||||
end
|
end
|
||||||
|
|
||||||
def question_answer_validation_error
|
|
||||||
t 'medical_releases.custom_validation_errors.question_answer_is_required'
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ RSpec.describe StreamNotificationsController, type: :controller do
|
|||||||
let(:active_status) { {type: "video.live_stream.active", object: { id: "mux_stream" }} }
|
let(:active_status) { {type: "video.live_stream.active", object: { id: "mux_stream" }} }
|
||||||
let(:disconnected_status) { {type: "video.live_stream.disconnected", object: { id: "mux_stream" }} }
|
let(:disconnected_status) { {type: "video.live_stream.disconnected", object: { id: "mux_stream" }} }
|
||||||
let(:idle_status) { {type: "video.live_stream.idle", object: { id: "mux_stream" }} }
|
let(:idle_status) { {type: "video.live_stream.idle", object: { id: "mux_stream" }} }
|
||||||
let(:idle_status_for_unknown_broadcast) { {type: "video.live_stream.idle", object: { id: "unknown-id" }} }
|
|
||||||
let(:asset_ready) { {
|
let(:asset_ready) { {
|
||||||
type: "video.asset.static_renditions.ready",
|
type: "video.asset.static_renditions.ready",
|
||||||
object: { id: "asset_uid" },
|
object: { id: "asset_uid" },
|
||||||
@@ -60,12 +59,6 @@ RSpec.describe StreamNotificationsController, type: :controller do
|
|||||||
|
|
||||||
expect(BroadcastsChannel).to have_received(:stream_recording_ready)
|
expect(BroadcastsChannel).to have_received(:stream_recording_ready)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns OK response even for non-existing broadcast" do
|
|
||||||
post :create, params: idle_status_for_unknown_broadcast
|
|
||||||
|
|
||||||
expect(response).to be_successful
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
after do
|
after do
|
||||||
|
|||||||
@@ -18,14 +18,7 @@ RSpec.describe TaskRequestsController, type: :controller do
|
|||||||
expect(response).to be_successful
|
expect(response).to be_successful
|
||||||
end
|
end
|
||||||
|
|
||||||
it "renders splash page if there are no task requests" do
|
it "renders content" do
|
||||||
get :index, params: { project_id: project }
|
|
||||||
|
|
||||||
expect(response.body).to have_link "Create Task Request"
|
|
||||||
expect(response.body).to have_link schedule_demo
|
|
||||||
end
|
|
||||||
|
|
||||||
it "renders task requests table if there are task requests" do
|
|
||||||
create(:task_request, project: project, description: "Another Request")
|
create(:task_request, project: project, description: "Another Request")
|
||||||
|
|
||||||
get :index, params: { project_id: project }
|
get :index, params: { project_id: project }
|
||||||
@@ -133,8 +126,4 @@ RSpec.describe TaskRequestsController, type: :controller do
|
|||||||
def update_params
|
def update_params
|
||||||
{ description: "This is updated description" }
|
{ description: "This is updated description" }
|
||||||
end
|
end
|
||||||
|
|
||||||
def schedule_demo
|
|
||||||
t 'task_requests.splash.actions.book_demo'
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ RSpec.describe VideosController, type: :controller do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it "has a search form" do
|
it "has a search form" do
|
||||||
create(:video, project: project)
|
|
||||||
get :index, params: { project_id: project }
|
get :index, params: { project_id: project }
|
||||||
|
|
||||||
expect(response.body).to have_button("search-button")
|
expect(response.body).to have_button("search-button")
|
||||||
@@ -44,7 +43,7 @@ RSpec.describe VideosController, type: :controller do
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
it "renders content if there are existing videos" do
|
it "renders content" do
|
||||||
video = create(:video, project: project, name: "My Video", number: "001", created_at: 1.day.ago)
|
video = create(:video, project: project, name: "My Video", number: "001", created_at: 1.day.ago)
|
||||||
|
|
||||||
get :index, params: { project_id: project }
|
get :index, params: { project_id: project }
|
||||||
@@ -59,11 +58,10 @@ RSpec.describe VideosController, type: :controller do
|
|||||||
end
|
end
|
||||||
|
|
||||||
context "when there are no records" do
|
context "when there are no records" do
|
||||||
it "renders splash screen" do
|
it "renders an empty message" do
|
||||||
get :index, params: { project_id: project }
|
get :index, params: { project_id: project }
|
||||||
|
|
||||||
expect(response.body).to have_link "Upload New Video"
|
expect(response.body).to have_content("Videos will appear here")
|
||||||
expect(response.body).to have_link schedule_demo
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -279,8 +277,4 @@ RSpec.describe VideosController, type: :controller do
|
|||||||
def video_update_params
|
def video_update_params
|
||||||
attributes_for(:video, :with_graphics_only_edl_file, :with_audio_only_edl_file, name: "Test Video").except(:file)
|
attributes_for(:video, :with_graphics_only_edl_file, :with_audio_only_edl_file, name: "Test Video").except(:file)
|
||||||
end
|
end
|
||||||
|
|
||||||
def schedule_demo
|
|
||||||
t 'videos.splash.actions.book_demo'
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -58,7 +58,10 @@ FactoryBot.define do
|
|||||||
guardian_address_state "State"
|
guardian_address_state "State"
|
||||||
guardian_address_zip "ZIP"
|
guardian_address_zip "ZIP"
|
||||||
guardian_address_country "Country"
|
guardian_address_country "Country"
|
||||||
with_guardian_photo
|
guardian_photo do
|
||||||
|
path = Rails.root.join("spec", "fixtures", "files", "pratt.jpg")
|
||||||
|
Rack::Test::UploadedFile.new(path, "image/jpeg")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
trait :without_person_photo do
|
trait :without_person_photo do
|
||||||
@@ -71,20 +74,6 @@ FactoryBot.define do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
trait :with_guardian_photo do
|
|
||||||
guardian_photo do
|
|
||||||
path = Rails.root.join("spec", "fixtures", "files", "pratt.jpg")
|
|
||||||
Rack::Test::UploadedFile.new(path, "image/jpeg")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
trait :with_guardian_2_photo do
|
|
||||||
guardian_2_photo do
|
|
||||||
path = Rails.root.join("spec", "fixtures", "files", "pratt.jpg")
|
|
||||||
Rack::Test::UploadedFile.new(path, "image/jpeg")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
trait :with_person_photo_only do
|
trait :with_person_photo_only do
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ FactoryBot.define do
|
|||||||
body "This is a test contract template."
|
body "This is a test contract template."
|
||||||
guardian_clause "Is the signer a minor?"
|
guardian_clause "Is the signer a minor?"
|
||||||
fee "$0.00"
|
fee "$0.00"
|
||||||
accessibility "public_template"
|
|
||||||
|
|
||||||
trait :archived do
|
trait :archived do
|
||||||
archived_at Time.zone.now
|
archived_at Time.zone.now
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ FactoryBot.define do
|
|||||||
appearance_release: true,
|
appearance_release: true,
|
||||||
location_release: true,
|
location_release: true,
|
||||||
material_release: true,
|
material_release: true,
|
||||||
misc_release: true,
|
|
||||||
medical_release: true,
|
medical_release: true,
|
||||||
music_release: true,
|
music_release: true,
|
||||||
talent_release: true,
|
talent_release: true,
|
||||||
@@ -49,18 +48,12 @@ FactoryBot.define do
|
|||||||
predefined_client_name "nat_geo"
|
predefined_client_name "nat_geo"
|
||||||
end
|
end
|
||||||
|
|
||||||
factory :project_with_contract_template_public do
|
factory :project_with_contract_template do
|
||||||
after(:build) do |project, _|
|
after(:build) do |project, _|
|
||||||
project.contract_templates << build(:contract_template, project: nil)
|
project.contract_templates << build(:contract_template, project: nil)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
factory :project_with_contract_template_private do
|
|
||||||
after(:build) do |project, _|
|
|
||||||
project.contract_templates << build(:contract_template, project: nil, accessibility: "private_template")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
factory :project_with_directories do
|
factory :project_with_directories do
|
||||||
after(:build) do |project, _|
|
after(:build) do |project, _|
|
||||||
project.directories << build(:directory, project: nil, name: "Shared")
|
project.directories << build(:directory, project: nil, name: "Shared")
|
||||||
|
|||||||
@@ -35,23 +35,12 @@ FactoryBot.define do
|
|||||||
guardian_first_name "Jamie"
|
guardian_first_name "Jamie"
|
||||||
guardian_last_name "Doe"
|
guardian_last_name "Doe"
|
||||||
guardian_phone "123-555-1234"
|
guardian_phone "123-555-1234"
|
||||||
with_guardian_photo
|
|
||||||
end
|
|
||||||
|
|
||||||
trait :with_guardian_photo do
|
|
||||||
guardian_photo do
|
guardian_photo do
|
||||||
path = Rails.root.join("spec", "fixtures", "files", "pratt.jpg")
|
path = Rails.root.join("spec", "fixtures", "files", "pratt.jpg")
|
||||||
Rack::Test::UploadedFile.new(path, "image/jpeg")
|
Rack::Test::UploadedFile.new(path, "image/jpeg")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
trait :with_guardian_2_photo do
|
|
||||||
guardian_2_photo do
|
|
||||||
path = Rails.root.join("spec", "fixtures", "files", "pratt.jpg")
|
|
||||||
Rack::Test::UploadedFile.new(path, "image/jpeg")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
factory :talent_release_with_contract_template do
|
factory :talent_release_with_contract_template do
|
||||||
after(:build) do |talent_release, _|
|
after(:build) do |talent_release, _|
|
||||||
talent_release.contract_template = build(:talent_release_contract_template)
|
talent_release.contract_template = build(:talent_release_contract_template)
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ RSpec.feature 'User creates task request', type: :feature do
|
|||||||
click_on 'Create Task request'
|
click_on 'Create Task request'
|
||||||
|
|
||||||
expect(page).to have_content task_created_message
|
expect(page).to have_content task_created_message
|
||||||
expect(page).to have_link("Back")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario 'user can view task request details' do
|
scenario 'user can view task request details' do
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ feature "User imports release templates", type: :feature do
|
|||||||
end
|
end
|
||||||
|
|
||||||
scenario "importing two existing templates into a project" do
|
scenario "importing two existing templates into a project" do
|
||||||
create(:contract_template, project: project)
|
|
||||||
visit project_contract_templates_path(project)
|
visit project_contract_templates_path(project)
|
||||||
click_on "Import Release Template"
|
click_on "Import Release Template"
|
||||||
select_templates([project_one_template.id, project_two_template.id])
|
select_templates([project_one_template.id, project_two_template.id])
|
||||||
@@ -32,7 +31,6 @@ feature "User imports release templates", type: :feature do
|
|||||||
end
|
end
|
||||||
|
|
||||||
scenario "searching for a template", js: true do
|
scenario "searching for a template", js: true do
|
||||||
create(:contract_template, project: project)
|
|
||||||
visit project_contract_templates_path(project)
|
visit project_contract_templates_path(project)
|
||||||
click_on "Import Release Template"
|
click_on "Import Release Template"
|
||||||
fill_in "query", with: "Second"
|
fill_in "query", with: "Second"
|
||||||
|
|||||||
@@ -11,13 +11,6 @@ RSpec.feature 'User manages contract templates', type: :feature do
|
|||||||
sign_in(current_user)
|
sign_in(current_user)
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario 'splash page is shown if tehre are no contract templates' do
|
|
||||||
visit project_contract_templates_path(project)
|
|
||||||
|
|
||||||
expect(page).to have_content schedule_demo
|
|
||||||
expect(page).to have_content create_release_template
|
|
||||||
end
|
|
||||||
|
|
||||||
scenario 'creating a new release template' do
|
scenario 'creating a new release template' do
|
||||||
visit new_project_contract_template_path(project)
|
visit new_project_contract_template_path(project)
|
||||||
|
|
||||||
@@ -32,25 +25,7 @@ RSpec.feature 'User manages contract templates', type: :feature do
|
|||||||
select 'None', from: 'Restriction'
|
select 'None', from: 'Restriction'
|
||||||
click_on 'Create Release Template'
|
click_on 'Create Release Template'
|
||||||
|
|
||||||
expect(page).to have_content(create_contract_template_success_message)
|
expect(page).to have_content('The release template has been created')
|
||||||
end
|
|
||||||
|
|
||||||
scenario 'creating new release template, all release types accept signature legal text' do
|
|
||||||
all_release_types = ['Acquired Media', 'Appearance', 'Location', 'Material', 'Medical', 'Misc', 'Talent']
|
|
||||||
|
|
||||||
all_release_types.each do |release_type|
|
|
||||||
visit new_project_contract_template_path(project)
|
|
||||||
|
|
||||||
dropdown_selection = "#{release_type} Release"
|
|
||||||
select dropdown_selection, from: 'Release type'
|
|
||||||
|
|
||||||
fill_in 'Name', with: "My #{release_type} template"
|
|
||||||
fill_in_trix signature_legal_text_field, with: 'LL'
|
|
||||||
|
|
||||||
expect do
|
|
||||||
click_on 'Create Release Template'
|
|
||||||
end.to change(ContractTemplate, :count).by(1)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario 'medical release template has a guardian clause field' do
|
scenario 'medical release template has a guardian clause field' do
|
||||||
@@ -61,28 +36,10 @@ RSpec.feature 'User manages contract templates', type: :feature do
|
|||||||
fill_hidden guardian_clause_field, with: 'Guardian clause text'
|
fill_hidden guardian_clause_field, with: 'Guardian clause text'
|
||||||
click_on 'Create Release Template'
|
click_on 'Create Release Template'
|
||||||
|
|
||||||
expect(page).to have_content(create_contract_template_success_message)
|
expect(page).to have_content('The release template has been created')
|
||||||
expect(ContractTemplate.last.guardian_clause.body.to_s).to match /Guardian clause text/
|
expect(ContractTemplate.last.guardian_clause.body.to_s).to match /Guardian clause text/
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario 'misc release templates has guardian clause and questionnaire', js: true do
|
|
||||||
visit new_project_contract_template_path(project)
|
|
||||||
|
|
||||||
fill_in 'Name', with: 'My Misc Release'
|
|
||||||
select 'Misc Release', from: 'Release type'
|
|
||||||
|
|
||||||
expect(page).to have_selector('label', text: 'Guardian Clause')
|
|
||||||
MiscRelease::NUMBER_OF_CUSTOM_FIELDS.times do |n|
|
|
||||||
expect(page).to have_field(question_field(n+1))
|
|
||||||
end
|
|
||||||
|
|
||||||
fill_in_trix 'contract_template_guardian_clause', with: 'Guardian clause text'
|
|
||||||
fill_in question_field(1), with: 'How much experience do you have in the industry?'
|
|
||||||
click_on 'Create Release Template'
|
|
||||||
|
|
||||||
expect(page).to have_content(create_contract_template_success_message)
|
|
||||||
end
|
|
||||||
|
|
||||||
scenario 'preview new talent release template without guardian clause' do
|
scenario 'preview new talent release template without guardian clause' do
|
||||||
visit new_project_contract_template_path(project)
|
visit new_project_contract_template_path(project)
|
||||||
select 'Talent Release', from: 'Release type'
|
select 'Talent Release', from: 'Release type'
|
||||||
@@ -186,13 +143,13 @@ RSpec.feature 'User manages contract templates', type: :feature do
|
|||||||
scenario 'Should not allow negative fees' do
|
scenario 'Should not allow negative fees' do
|
||||||
fill_in 'Fee', with: '-200'
|
fill_in 'Fee', with: '-200'
|
||||||
click_on 'Create Release Template'
|
click_on 'Create Release Template'
|
||||||
expect(page).not_to have_content(create_contract_template_success_message)
|
expect(page).not_to have_content('The release template has been created')
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario 'Should not allow fees with more than 9 digits' do
|
scenario 'Should not allow fees with more than 9 digits' do
|
||||||
fill_in 'Fee', with: '9999999999'
|
fill_in 'Fee', with: '9999999999'
|
||||||
click_on 'Create Release Template'
|
click_on 'Create Release Template'
|
||||||
expect(page).not_to have_content(create_contract_template_success_message)
|
expect(page).not_to have_content('The release template has been created')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -240,7 +197,7 @@ RSpec.feature 'User manages contract templates', type: :feature do
|
|||||||
|
|
||||||
click_on 'Manage'
|
click_on 'Manage'
|
||||||
accept_alert do
|
accept_alert do
|
||||||
click_on 'Delete'
|
click_on 'Archive'
|
||||||
end
|
end
|
||||||
|
|
||||||
expect(page).to have_content('The release template has been archived')
|
expect(page).to have_content('The release template has been archived')
|
||||||
@@ -262,127 +219,16 @@ RSpec.feature 'User manages contract templates', type: :feature do
|
|||||||
expect(page).to have_content('Active template')
|
expect(page).to have_content('Active template')
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario 'edit button is visible for not-signed contract template' do
|
|
||||||
create(:contract_template, project: project)
|
|
||||||
|
|
||||||
visit project_contract_templates_path(project)
|
|
||||||
|
|
||||||
expect(page).to have_link(edit_button_label, exact: true, count: 1)
|
|
||||||
end
|
|
||||||
|
|
||||||
scenario 'edit button is not visible for signed contract template' do
|
|
||||||
ct = create(:contract_template, project: project)
|
|
||||||
create(:appearance_release, contract_template: ct)
|
|
||||||
|
|
||||||
visit project_contract_templates_path(project)
|
|
||||||
|
|
||||||
expect(page).to have_link(edit_button_label, exact: true, count: 0)
|
|
||||||
end
|
|
||||||
|
|
||||||
scenario 'duplicate button is visible for not signed contract template' do
|
|
||||||
create(:contract_template, project: project)
|
|
||||||
|
|
||||||
visit project_contract_templates_path(project)
|
|
||||||
|
|
||||||
expect(page).to have_link(duplicate_button_label, exact: true, count: 1)
|
|
||||||
end
|
|
||||||
|
|
||||||
scenario 'duplicate button is visible for signed contract template' do
|
|
||||||
ct = create(:contract_template, project: project)
|
|
||||||
create(:appearance_release, contract_template: ct)
|
|
||||||
|
|
||||||
visit project_contract_templates_path(project)
|
|
||||||
|
|
||||||
expect(page).to have_link(duplicate_button_label, exact: true, count: 1)
|
|
||||||
end
|
|
||||||
|
|
||||||
scenario 'clicking edit button opens edit page for contract template' do
|
|
||||||
ct = create(:contract_template, project: project)
|
|
||||||
|
|
||||||
visit project_contract_templates_path(project)
|
|
||||||
|
|
||||||
expect(page).to have_content ct.name
|
|
||||||
|
|
||||||
expect(page).not_to have_content 'Updated CT'
|
|
||||||
expect(page).not_to have_content 'Medical'
|
|
||||||
|
|
||||||
click_link edit_button_label
|
|
||||||
|
|
||||||
expect(page).to have_content edit_page_heading
|
|
||||||
|
|
||||||
fill_in name_field, with: 'Updated CT'
|
|
||||||
select 'Medical Release', from: 'Release type'
|
|
||||||
fill_in_trix body_field, with: 'Updated legal text'
|
|
||||||
click_on update_contract_template_button_label
|
|
||||||
|
|
||||||
expect(page).to have_content 'Updated CT'
|
|
||||||
expect(page).to have_content 'Medical'
|
|
||||||
end
|
|
||||||
|
|
||||||
scenario 'clicking duplicate button opens edit page for newly created contract template' do
|
|
||||||
ct = create(:contract_template, project: project)
|
|
||||||
|
|
||||||
visit project_contract_templates_path(project)
|
|
||||||
|
|
||||||
expect(page).to have_content ct.name
|
|
||||||
|
|
||||||
expect(page).not_to have_content 'Modified duplicate'
|
|
||||||
expect(page).not_to have_content 'Misc'
|
|
||||||
|
|
||||||
expect do
|
|
||||||
click_link duplicate_button_label
|
|
||||||
end.to change(ContractTemplate, :count).by(1)
|
|
||||||
|
|
||||||
expect(page).to have_content edit_page_heading
|
|
||||||
name_input = find("##{name_field}")
|
|
||||||
expect(name_input.value).to eq duplicate_release_name(ct.name)
|
|
||||||
|
|
||||||
fill_in name_field, with: 'Modified duplicate'
|
|
||||||
select 'Misc Release', from: 'Release type'
|
|
||||||
fill_in_trix body_field, with: 'Legal text for duplicate'
|
|
||||||
click_on update_contract_template_button_label
|
|
||||||
|
|
||||||
expect(page).to have_content 'Modified duplicate'
|
|
||||||
expect(page).to have_content 'Misc'
|
|
||||||
expect(ct.body.id).not_to eq ContractTemplate.last.body.id
|
|
||||||
expect(ct.guardian_clause.id).not_to eq ContractTemplate.last.guardian_clause.id
|
|
||||||
expect(ct.signature_legal_text.id).not_to eq ContractTemplate.last.signature_legal_text.id
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'When the user is associate' do
|
context 'When the user is associate' do
|
||||||
let(:current_user) { create(:user, :associate) }
|
let(:current_user) { create(:user, :associate) }
|
||||||
|
|
||||||
it 'does not show management buttons for release templates' do
|
it 'does not show management buttons for release templates' do
|
||||||
create(:contract_template, project: project)
|
|
||||||
visit project_contract_templates_path(project)
|
visit project_contract_templates_path(project)
|
||||||
|
|
||||||
expect(page).not_to have_content('Create New Release Template')
|
expect(page).not_to have_content('Create New Release Template')
|
||||||
expect(page).not_to have_content(import_template_button)
|
expect(page).not_to have_content(import_template_button)
|
||||||
expect(page).not_to have_content('Delete')
|
expect(page).not_to have_content('Delete')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'does not show create release button on splash page' do
|
|
||||||
visit project_contract_templates_path(project)
|
|
||||||
|
|
||||||
expect(page).to have_content schedule_demo
|
|
||||||
expect(page).not_to have_content create_release_template
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'does not show edit button' do
|
|
||||||
create(:contract_template, project: project)
|
|
||||||
|
|
||||||
visit project_contract_templates_path(project)
|
|
||||||
|
|
||||||
expect(page).to have_link(edit_button_label, exact: true, count: 0)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'does not show duplicate button' do
|
|
||||||
create(:contract_template, project: project)
|
|
||||||
|
|
||||||
visit project_contract_templates_path(project)
|
|
||||||
|
|
||||||
expect(page).to have_link(duplicate_button_label, exact: true, count: 0)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'When the user is account manager' do
|
context 'When the user is account manager' do
|
||||||
@@ -394,48 +240,7 @@ RSpec.feature 'User manages contract templates', type: :feature do
|
|||||||
visit project_contract_templates_path(project)
|
visit project_contract_templates_path(project)
|
||||||
|
|
||||||
click_on 'Manage'
|
click_on 'Manage'
|
||||||
expect(page).to have_content('Delete')
|
expect(page).to have_content('Archive')
|
||||||
end
|
|
||||||
|
|
||||||
it 'does not show create release button on splash page' do
|
|
||||||
visit project_contract_templates_path(project)
|
|
||||||
|
|
||||||
expect(page).to have_content schedule_demo
|
|
||||||
expect(page).to have_content create_release_template
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'shows edit button when contract template is not signed' do
|
|
||||||
create(:contract_template, project: project)
|
|
||||||
|
|
||||||
visit project_contract_templates_path(project)
|
|
||||||
|
|
||||||
expect(page).to have_link(edit_button_label, exact: true, count: 1)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'does not show edit button when contract template is signed' do
|
|
||||||
ct = create(:contract_template, project: project)
|
|
||||||
create(:appearance_release, contract_template: ct)
|
|
||||||
|
|
||||||
visit project_contract_templates_path(project)
|
|
||||||
|
|
||||||
expect(page).to have_link(edit_button_label, exact: true, count: 0)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'shows duplicate button when contract template is not signed' do
|
|
||||||
create(:contract_template, project: project)
|
|
||||||
|
|
||||||
visit project_contract_templates_path(project)
|
|
||||||
|
|
||||||
expect(page).to have_link(duplicate_button_label, exact: true, count: 1)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'shows duplicate button when contract template is signed' do
|
|
||||||
ct = create(:contract_template, project: project)
|
|
||||||
create(:appearance_release, contract_template: ct)
|
|
||||||
|
|
||||||
visit project_contract_templates_path(project)
|
|
||||||
|
|
||||||
expect(page).to have_link(duplicate_button_label, exact: true, count: 1)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -465,55 +270,7 @@ RSpec.feature 'User manages contract templates', type: :feature do
|
|||||||
'contract_template_guardian_clause_trix_input_contract_template'
|
'contract_template_guardian_clause_trix_input_contract_template'
|
||||||
end
|
end
|
||||||
|
|
||||||
def signature_legal_text_field
|
|
||||||
'contract_template_signature_legal_text'
|
|
||||||
end
|
|
||||||
|
|
||||||
def create_contract_template_success_message
|
|
||||||
'The release template has been created'
|
|
||||||
end
|
|
||||||
|
|
||||||
def question_field(n)
|
|
||||||
"Question #{n} text"
|
|
||||||
end
|
|
||||||
|
|
||||||
def fill_hidden(id, with:)
|
def fill_hidden(id, with:)
|
||||||
find(:xpath, "//input[@id='#{id}']", visible: false).set with
|
find(:xpath, "//input[@id='#{id}']", visible: false).set with
|
||||||
end
|
end
|
||||||
|
|
||||||
def schedule_demo
|
|
||||||
t 'contract_templates.splash.actions.book_demo'
|
|
||||||
end
|
|
||||||
|
|
||||||
def create_release_template
|
|
||||||
t 'contract_templates.splash.actions.create_template'
|
|
||||||
end
|
|
||||||
|
|
||||||
def signature_legal_text_trix_field
|
|
||||||
'Signature legal text'
|
|
||||||
end
|
|
||||||
|
|
||||||
def edit_button_label
|
|
||||||
t 'contract_templates.contract_template.actions.edit'
|
|
||||||
end
|
|
||||||
|
|
||||||
def duplicate_button_label
|
|
||||||
t 'contract_templates.contract_template.actions.duplicate'
|
|
||||||
end
|
|
||||||
|
|
||||||
def edit_page_heading
|
|
||||||
t 'contract_templates.edit.heading'
|
|
||||||
end
|
|
||||||
|
|
||||||
def name_field
|
|
||||||
'contract_template_name'
|
|
||||||
end
|
|
||||||
|
|
||||||
def update_contract_template_button_label
|
|
||||||
t 'helpers.submit.contract_template.update'
|
|
||||||
end
|
|
||||||
|
|
||||||
def duplicate_release_name(template_name = '')
|
|
||||||
t 'contract_templates.duplicate.name_prefix', template_name: template_name
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -41,13 +41,6 @@ feature "User managing acquired_media releases" do
|
|||||||
expect(AcquiredMediaRelease.last.categories).to include("Still Photograph")
|
expect(AcquiredMediaRelease.last.categories).to include("Still Photograph")
|
||||||
expect(page).to have_content("Your release was successfully submitted. Thank you.")
|
expect(page).to have_content("Your release was successfully submitted. Thank you.")
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario "creating a release, if contract template contains signature legal language, it is shown" do
|
|
||||||
contract_template = create(:contract_template, project: project, signature_legal_text: dummy_signature_legal_text)
|
|
||||||
visit new_account_project_contract_template_acquired_media_release_path(project.account, project, contract_template)
|
|
||||||
|
|
||||||
expect(page).to have_content dummy_signature_legal_text
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when signed in" do
|
context "when signed in" do
|
||||||
@@ -364,8 +357,4 @@ feature "User managing acquired_media releases" do
|
|||||||
def destroy_release_alert
|
def destroy_release_alert
|
||||||
t "acquired_media_releases.destroy.alert"
|
t "acquired_media_releases.destroy.alert"
|
||||||
end
|
end
|
||||||
|
|
||||||
def dummy_signature_legal_text
|
|
||||||
'Some signature legal language'
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -30,24 +30,6 @@ feature 'User managing appearance releases' do
|
|||||||
expect(page).to have_content(successful_submission_message)
|
expect(page).to have_content(successful_submission_message)
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario "creating a release for a minor - guardian fields are required when minor checkbox is checked", js: true do
|
|
||||||
contract_template = create(:contract_template, project: project)
|
|
||||||
|
|
||||||
visit new_account_project_contract_template_appearance_release_path(project.account, project, contract_template)
|
|
||||||
|
|
||||||
all('input[data-required-tag="guardian"]').each do |field|
|
|
||||||
expect(field['required']).to eq 'false'
|
|
||||||
expect(field).not_to be_visible
|
|
||||||
end
|
|
||||||
|
|
||||||
page.check person_is_minor_checkbox
|
|
||||||
|
|
||||||
all('input[data-required-tag="guardian"]').each do |field|
|
|
||||||
expect(field['required']).to eq 'true'
|
|
||||||
expect(field).to be_visible
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
scenario 'creating a release for a minor', js: true do
|
scenario 'creating a release for a minor', js: true do
|
||||||
allow(BrayniacAI::Validation).to receive(:create).and_return(double(:validation, valid: true))
|
allow(BrayniacAI::Validation).to receive(:create).and_return(double(:validation, valid: true))
|
||||||
|
|
||||||
@@ -68,7 +50,6 @@ feature 'User managing appearance releases' do
|
|||||||
fill_in guardian_first_name_field, with: 'Guardian'
|
fill_in guardian_first_name_field, with: 'Guardian'
|
||||||
fill_in guardian_last_name_field, with: 'Name'
|
fill_in guardian_last_name_field, with: 'Name'
|
||||||
fill_in guardian_phone_field, with: '001101'
|
fill_in guardian_phone_field, with: '001101'
|
||||||
fill_in guardian_email_field, with: 'valid@email.com'
|
|
||||||
fill_in person_first_name_field, with: 'Jane'
|
fill_in person_first_name_field, with: 'Jane'
|
||||||
fill_in person_last_name_field, with: 'Doe'
|
fill_in person_last_name_field, with: 'Doe'
|
||||||
fill_in_person_address_fields
|
fill_in_person_address_fields
|
||||||
@@ -79,6 +60,11 @@ feature 'User managing appearance releases' do
|
|||||||
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
||||||
draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64'
|
draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64'
|
||||||
|
|
||||||
|
fill_in guardian_email_field, with: 'invalid@email'
|
||||||
|
click_button submit_release_button
|
||||||
|
expect(page).to have_content('Guardian email is not an email')
|
||||||
|
|
||||||
|
fill_in guardian_email_field, with: 'valid@email.com'
|
||||||
fill_in_guardian_address_fields
|
fill_in_guardian_address_fields
|
||||||
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
||||||
draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64'
|
draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64'
|
||||||
@@ -113,7 +99,6 @@ feature 'User managing appearance releases' do
|
|||||||
fill_in guardian_first_name_field, with: 'Guardian'
|
fill_in guardian_first_name_field, with: 'Guardian'
|
||||||
fill_in guardian_last_name_field, with: 'Name'
|
fill_in guardian_last_name_field, with: 'Name'
|
||||||
fill_in guardian_phone_field, with: '001101'
|
fill_in guardian_phone_field, with: '001101'
|
||||||
fill_in guardian_email_field, with: 'valid@email.com'
|
|
||||||
fill_in person_first_name_field, with: 'Jane'
|
fill_in person_first_name_field, with: 'Jane'
|
||||||
fill_in person_last_name_field, with: 'Doe'
|
fill_in person_last_name_field, with: 'Doe'
|
||||||
fill_in_person_address_fields
|
fill_in_person_address_fields
|
||||||
@@ -124,6 +109,11 @@ feature 'User managing appearance releases' do
|
|||||||
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
||||||
draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64'
|
draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64'
|
||||||
|
|
||||||
|
fill_in guardian_email_field, with: 'invalid@email'
|
||||||
|
click_button submit_release_button
|
||||||
|
expect(page).to have_content('Guardian email is not an email')
|
||||||
|
|
||||||
|
fill_in guardian_email_field, with: 'valid@email.com'
|
||||||
fill_in_guardian_address_fields
|
fill_in_guardian_address_fields
|
||||||
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
|
||||||
draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64'
|
draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64'
|
||||||
@@ -137,13 +127,6 @@ feature 'User managing appearance releases' do
|
|||||||
expect(page).to have_content(successful_submission_message)
|
expect(page).to have_content(successful_submission_message)
|
||||||
expect(AppearanceRelease.last.guardian_2_first_name).to eq 'Second'
|
expect(AppearanceRelease.last.guardian_2_first_name).to eq 'Second'
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario "creating a release, if contract template contains signature legal language, it is shown" do
|
|
||||||
contract_template = create(:contract_template, project: project, signature_legal_text: dummy_signature_legal_text)
|
|
||||||
visit new_account_project_contract_template_appearance_release_path(project.account, project, contract_template)
|
|
||||||
|
|
||||||
expect(page).to have_content dummy_signature_legal_text
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when signed in' do
|
context 'when signed in' do
|
||||||
@@ -713,8 +696,4 @@ feature 'User managing appearance releases' do
|
|||||||
def guardian_2_photo_heading
|
def guardian_2_photo_heading
|
||||||
t 'appearance_releases.form.photos.guardian_2_photo.heading'
|
t 'appearance_releases.form.photos.guardian_2_photo.heading'
|
||||||
end
|
end
|
||||||
|
|
||||||
def dummy_signature_legal_text
|
|
||||||
'Some signature legal language'
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -12,13 +12,6 @@ feature 'User managing broadcasts' do
|
|||||||
allow(MuxLiveStream).to receive(:new).and_return(double(id: 'id', key: 'key', playback_id: 'playback_id'))
|
allow(MuxLiveStream).to receive(:new).and_return(double(id: 'id', key: 'key', playback_id: 'playback_id'))
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario "splash page is shown if there are no existing streams" do
|
|
||||||
visit project_broadcasts_path(project)
|
|
||||||
|
|
||||||
expect(page).to have_content schedule_demo
|
|
||||||
expect(page).to have_content create_stream
|
|
||||||
end
|
|
||||||
|
|
||||||
scenario 'creating and deleting a broadcast', js: true do
|
scenario 'creating and deleting a broadcast', js: true do
|
||||||
visit new_project_broadcast_path(project)
|
visit new_project_broadcast_path(project)
|
||||||
|
|
||||||
@@ -138,29 +131,6 @@ feature 'User managing broadcasts' do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'When the user is associate' do
|
|
||||||
let(:current_user) { create(:user, :associate) }
|
|
||||||
|
|
||||||
it 'does not show button to create new live stream' do
|
|
||||||
visit project_broadcasts_path(project)
|
|
||||||
|
|
||||||
expect(page).to have_content schedule_demo
|
|
||||||
expect(page).not_to have_content create_stream
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'When the user is account manager' do
|
|
||||||
let(:current_user) { create(:user, :account_manager) }
|
|
||||||
|
|
||||||
it 'does show button to create new live stream' do
|
|
||||||
visit project_broadcasts_path(project)
|
|
||||||
|
|
||||||
expect(page).to have_content schedule_demo
|
|
||||||
expect(page).to have_content create_stream
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
@@ -181,12 +151,4 @@ feature 'User managing broadcasts' do
|
|||||||
def switch_view_dropdown
|
def switch_view_dropdown
|
||||||
'Switch View'
|
'Switch View'
|
||||||
end
|
end
|
||||||
|
|
||||||
def schedule_demo
|
|
||||||
t 'broadcasts.splash.actions.book_demo'
|
|
||||||
end
|
|
||||||
|
|
||||||
def create_stream
|
|
||||||
t 'broadcasts.splash.actions.create_stream'
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -71,13 +71,6 @@ feature "User managing location releases" do
|
|||||||
expect(page).to have_content("Your release was successfully submitted. Thank you.")
|
expect(page).to have_content("Your release was successfully submitted. Thank you.")
|
||||||
expect(LocationRelease.last.photos.attached?).to eq true
|
expect(LocationRelease.last.photos.attached?).to eq true
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario "creating a release, if contract template contains signature legal language, it is shown" do
|
|
||||||
contract_template = create(:contract_template, project: project, signature_legal_text: dummy_signature_legal_text)
|
|
||||||
visit new_account_project_contract_template_location_release_path(project.account, project, contract_template)
|
|
||||||
|
|
||||||
expect(page).to have_content dummy_signature_legal_text
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when signed in" do
|
context "when signed in" do
|
||||||
@@ -382,8 +375,4 @@ feature "User managing location releases" do
|
|||||||
select "Other", from: "Restriction"
|
select "Other", from: "Restriction"
|
||||||
fill_in "Describe other restrictions", with: "Test"
|
fill_in "Describe other restrictions", with: "Test"
|
||||||
end
|
end
|
||||||
|
|
||||||
def dummy_signature_legal_text
|
|
||||||
'Some signature legal language'
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user