Upstream sync

This commit is contained in:
Senad Uka
2020-06-22 20:28:22 +02:00
parent 072142811f
commit afee9d9bc9
21 changed files with 59 additions and 281 deletions

View File

@@ -57,7 +57,4 @@ $(document).on("turbolinks:load", function() {
$("[data-behavior=take-guardian-photo]").click(function(e) {
$("[data-ujs-target=guardian-photo-input]").trigger("click");
});
$("[data-behavior=take-guardian-2-photo]").click(function(e) {
$("[data-ujs-target=guardian-2-photo-input]").trigger("click");
});
});

View File

@@ -66,7 +66,10 @@ class ContractTemplatesController < ApplicationController
:question_3_text, :question_4_text,
:question_5_text, :question_6_text,
:question_7_text, :question_8_text,
:question_9_text, :question_10_text)
:question_9_text, :question_10_text,
:question_11_text, :question_12_text,
:question_13_text, :question_14_text,
:question_15_text)
end
def download_attributes

View File

@@ -71,25 +71,8 @@ class Public::AppearanceReleasesController < Public::BaseController
]
end
def second_guardian_params
%i[
guardian_2_first_name
guardian_2_last_name
guardian_2_phone
guardian_2_email
guardian_2_photo
guardian_2_address_street1
guardian_2_address_street2
guardian_2_address_city
guardian_2_address_state
guardian_2_address_zip
guardian_2_address_country
]
end
def appearance_release_params
params.require(:appearance_release).permit(person_params, guardian_params,
second_guardian_params,
:minor, :signature_base64,
:person_date_of_birth,
:locale, :contract_template)

View File

@@ -53,7 +53,9 @@ class Public::MedicalReleasesController < Public::BaseController
:question_5_answer, :question_6_answer,
:question_7_answer, :question_8_answer,
:question_9_answer, :question_10_answer,
photos: [],
:question_11_answer, :question_12_answer,
:question_13_answer, :question_14_answer,
:question_15_answer, photos: [],
)
end

View File

@@ -2,7 +2,7 @@ module DropzoneHelper
def dropzone_placeholder_message_for(releasable)
case releasable.model_name.param_key
when "acquired_media_release"
"To Add Photos & Videos to the release:<br>Drag & Drop Files<br>or<br>Click or Tap here to browse photos and connect to Camera"
'(Optional) To add the licensed photos or videos ("Property") to this release:<br>Drag & Drop Files<br>or<br>Click or Tap here to browse photos and connect to Camera'
when "material_release"
t 'material_releases.form.photos.dropzone_label'
when "music_release"

View File

@@ -12,9 +12,7 @@ class AppearanceRelease < ApplicationRecord
include Taggable
include PersonName
include GuardianPhotoable
include SecondGuardianPhotoable
include GuardianName
include SecondGuardianName
has_one_attached :person_photo
@@ -40,17 +38,6 @@ class AppearanceRelease < ApplicationRecord
%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]
]
# These validations apply to all releases
validates :person_email, email: true, allow_blank: true
@@ -145,10 +132,6 @@ class AppearanceRelease < ApplicationRecord
true
end
def second_guardian_present?
self.guardian_2_first_name.present?
end
def contract_file_name
"#{project.name.parameterize}_#{contract_template.release_type}_#{(signed_at || created_at).strftime('%Y.%m.%d')}_#{release_number}_#{filename_suffix.parameterize}"
end

View File

@@ -1,20 +0,0 @@
module SecondGuardianName
extend ActiveSupport::Concern
included do
def guardian_2_name
"#{guardian_2_first_name} #{guardian_2_last_name}".titleize
end
def guardian_2_name=(value)
if value.include?(' ')
split = value.split(" ", 2)
self.guardian_2_first_name = split.first
self.guardian_2_last_name = split.last
else
self.guardian_2_first_name = value
self.guardian_2_last_name = "(Not Given)"
end
end
end
end

View File

@@ -1,9 +0,0 @@
module SecondGuardianPhotoable
extend ActiveSupport::Concern
included do
has_one_attached :guardian_2_photo
validates :guardian_2_photo, content_type: ["image/png", "image/jpeg"]
end
end

View File

@@ -8,6 +8,8 @@ class MedicalRelease < ApplicationRecord
include Syncable
include PersonName
NUMBER_OF_CUSTOM_FIELDS = 15
composed_of :person_address,
class_name: "Address",
mapping: [

View File

@@ -5,9 +5,6 @@
<% if release.respond_to? :guardian_photo %>
<% @total_photos_count += release.guardian_photo.attached? ? 1 : 0 %>
<% end %>
<% if release.respond_to? :guardian_2_photo %>
<% @total_photos_count += release.guardian_2_photo.attached? ? 1 : 0 %>
<% end %>
<p class="heading"><strong><u><%= t '.heading', count: @total_photos_count %></u></strong></p>
<ul>
@@ -32,14 +29,6 @@
<%= release.guardian_photo.filename.to_s %>
</li>
<% end %>
<% if release.respond_to?(:guardian_2_photo) && release.guardian_2_photo.attached? %>
<br>
<p class="heading"><strong><%= t '.guardian_2_photo_heading' %></strong></p>
<li>
<%= image_tag release.guardian_2_photo.variant(auto_orient: true, resize: "200x200") %><br />
<%= release.guardian_2_photo.filename.to_s %>
</li>
<% end %>
<% end %>
</ul>

View File

@@ -40,7 +40,7 @@
</dl>
<% if releasable.model_name == "MedicalRelease" %>
<% (1..10).each do |n| %>
<% (1..MedicalRelease::NUMBER_OF_CUSTOM_FIELDS).each do |n| %>
<% if contract_template.public_send("question_#{n}_text").present? %>
<p><strong><%= contract_template.public_send("question_#{n}_text") %></strong></p>
<p><%= releasable.public_send("question_#{n}_answer") %></p>
@@ -69,19 +69,4 @@
<%= description_list_pair_for releasable, :signed_on, append: ":" %>
</dl>
<% if releasable.respond_to?(:second_guardian_present?) && releasable.second_guardian_present? %>
<br/>
<p class="text-left"><strong>Second guardian Information</strong></p>
<% # Second guardian information %>
<dl>
<%= description_list_pair_for releasable, :guardian_2_name, append: ":" %>
<%= description_list_pair_for releasable, :guardian_2_address, append: ":" %>
<%= description_list_pair_for releasable, :guardian_2_phone, append: ":" %>
<%= description_list_pair_for releasable, :guardian_2_email, append: ":" %>
</dl>
<% end %>
<% end %>

View File

@@ -44,10 +44,6 @@
<hr>
<%= card_field_set_tag t(".files.heading") do %>
<div class="alert alert-warning text-center text-md-left">
<%= fa_icon "warning" %>
<strong>For optimal accuracy, please ensure video file names and photo file names match the source file name in the editing sequence.</strong>
</div>
<%= render "shared/file_infos_dropzone", form: form, releasable: @acquired_media_release %>
<% end %>

View File

@@ -113,49 +113,6 @@
<hr>
<%= card_field_set_tag t(".guardian_2_info.heading") do %>
<div class="form-row">
<%= form.text_field :guardian_2_first_name, wrapper_class: "col-sm-3" %>
<%= form.text_field :guardian_2_last_name, wrapper_class: "col-sm-3" %>
<%= form.phone_field :guardian_2_phone, wrapper_class: "col-sm-6" %>
</div>
<div class="form-row">
<%= form.text_field :guardian_2_email, wrapper_class: "col-sm-6" %>
</div>
<%= render "shared/address_fields", form: form, subject: "guardian_2" %>
<% end %>
<hr>
<%= card_field_set_tag t(".guardian_2_photo.heading") do %>
<div class="alert alert-warning font-weight-bold"><%= t ".guardian_2_photo.instructions" %></div>
<div class="text-center">
<div class="d-inline-block mb-2" data-behavior="guardian-photo-preview" data-file-input="[data-ujs-target=guardian-2-photo-input]">
<div class="align-items-center d-flex photo-preview img-thumbnail justify-content-center">
<span><%= t ".photo.no_photo" %></span>
</div>
</div>
<div class="d-inline-block text-left">
<% if @appearance_release.guardian_2_photo.attached? %>
<%= javascript_tag nonce: true do %>
App.PhotoPreview.set("[data-behavior=guardian-photo-preview]", "<%= url_for(@appearance_release.guardian_2_photo.variant(auto_orient: true, resize: '200x200')) %>");
<% end %>
<% end %>
<div class="hidden-file-input">
<%= form.hidden_field :guardian_2_photo, value: form.object.guardian_2_photo.signed_id if @appearance_release.guardian_2_photo.attached? %>
<%= form.file_field :guardian_2_photo, hide_label: true, data: { ujs_target: "guardian-2-photo-input" }, accept: @appearance_release.class.face_photo_acceptable_content_types.join(","), direct_upload: true %>
</div>
<%= button_tag t(".photo.take_photo"), type: "button", class: "btn btn-lg btn-primary take-photo-button", data: { behavior: "take-guardian-2-photo" } %>
</div>
<p class="p-2 font-weight-bold">
<%= fa_icon "arrow-up", text: t(".photo.camera_instructions_html") %><br>
<small class="text-muted"><%= t ".photo.warning" %></small>
</p>
</div>
<% end %>
<hr>
</div>
<% end %>

View File

@@ -14,9 +14,9 @@
<hr>
<% if (1..10).map {|n| @contract_template.public_send("question_#{n}_text").presence }.compact.any? %>
<% if (1..MedicalRelease::NUMBER_OF_CUSTOM_FIELDS).map {|n| @contract_template.public_send("question_#{n}_text").presence }.compact.any? %>
<%= card_field_set_tag t(".questionnaire.heading") do %>
<% (1..10).each do |n| %>
<% (1..MedicalRelease::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") %>

View File

@@ -1,4 +1,4 @@
<% (1..10).each do |n| %>
<% (1..MedicalRelease::NUMBER_OF_CUSTOM_FIELDS).each do |n| %>
<div class="form-row">
<%= form.text_area "question_#{n}_text", wrapper_class: "col-sm-12" %>
</div>

View File

@@ -60,10 +60,6 @@ en:
activerecord:
attributes:
appearance_release:
guardian_2_address: Second guardian address
guardian_2_email: Second guardian email
guardian_2_name: Second guardian name
guardian_2_phone: Second guardian phone
person_address: Address
person_email: Email
person_name: Name
@@ -241,7 +237,6 @@ en:
heading: New Release Template
contracts:
photos:
guardian_2_photo_heading: Second guardian photo
guardian_photo_heading: Guardian photo
heading:
one: Photo
@@ -316,8 +311,8 @@ en:
graphics_only_edl_file: If you do not upload a Graphics Only EDL, the software will not generate a Graphics Cue List.
label:
acquired_media_release:
description: Description of licensed property
name: Name of licensed property
description: Description of property
name: Name of property
person_address: Address
person_address_city: City
person_address_country: Country
@@ -333,16 +328,6 @@ en:
person_phone: Phone number
person_title: Title
appearance_release:
guardian_2_address_city: Second guardian city
guardian_2_address_country: Second guardian country
guardian_2_address_state: Second guardian state
guardian_2_address_street1: Second guardian address
guardian_2_address_street2: Second guardian address (Line 2)
guardian_2_address_zip: Second guardian zip code
guardian_2_email: Second guardian email
guardian_2_first_name: Second guardian first name
guardian_2_last_name: Second guardian last name
guardian_2_phone: Second guardian phone
guardian_address_city: Guardian city
guardian_address_country: Guardian country
guardian_address_state: Guardian state
@@ -815,12 +800,6 @@ en:
notice: Your release has been signed. Thank you!
new:
cancel: Cancel
guardian_2_info:
heading: Second Guardian Information
guardian_2_photo:
heading: Second Guardian Photo
instructions: >
Lastly, it's time for second guardian to take a selfie photo! Please remove your hat and sunglasses (regular eyewear is ok), make sure that you are the only person in the photo, look straight into the camera, and say Cheese!
guardian_clause:
heading: Guardian Clause
guardian_info:

View File

@@ -66,7 +66,6 @@ es:
heading: Release Info (ES)
contracts:
photos:
guardian_2_photo_heading: Second guardian photo (ES)
guardian_photo_heading: Guardian photo (ES)
heading:
one: Photo (ES)
@@ -116,16 +115,6 @@ es:
helpers:
label:
appearance_release:
guardian_2_address_city: Second guardian city (ES)
guardian_2_address_country: Second guardian country (ES)
guardian_2_address_state: Second guardian state (ES)
guardian_2_address_street1: Second guardian address (ES)
guardian_2_address_street2: Second guardian address (Line 2) (ES)
guardian_2_address_zip: Second guardian zip code (ES)
guardian_2_email: Second guardian email (ES)
guardian_2_first_name: Second guardian first name (ES)
guardian_2_last_name: Second guardian last name (ES)
guardian_2_phone: Second guardian phone (ES)
guardian_address_city: Guardian city (ES)
guardian_address_country: Guardian country (ES)
guardian_address_state: Guardian state (ES)
@@ -178,12 +167,6 @@ es:
notice: La autorización está firmada. ¡Gracias!
new:
cancel: Cancelar
guardian_2_info:
heading: Second Guardian Information (ES)
guardian_2_photo:
heading: Second Guardian Photo (ES)
instructions: >
(ES) Lastly, it's time for second guardian to take a selfie photo! Please remove your hat and sunglasses (regular eyewear is ok), make sure that you are the only person in the photo, look straight into the camera, and say Cheese! (ES)
guardian_clause:
heading: Guardian Clause (ES)
guardian_photo:

View File

@@ -0,0 +1,15 @@
class AddMoreQuestionsAndAnswersToMedicalReleases < ActiveRecord::Migration[6.0]
def change
add_column :contract_templates, :question_11_text, :text
add_column :contract_templates, :question_12_text, :text
add_column :contract_templates, :question_13_text, :text
add_column :contract_templates, :question_14_text, :text
add_column :contract_templates, :question_15_text, :text
add_column :medical_releases, :question_11_answer, :text
add_column :medical_releases, :question_12_answer, :text
add_column :medical_releases, :question_13_answer, :text
add_column :medical_releases, :question_14_answer, :text
add_column :medical_releases, :question_15_answer, :text
end
end

View File

@@ -1,14 +0,0 @@
class AddSecondGuardianFieldsToAppearanceReleases < ActiveRecord::Migration[6.0]
def change
add_column :appearance_releases, :guardian_2_first_name, :string
add_column :appearance_releases, :guardian_2_last_name, :string
add_column :appearance_releases, :guardian_2_email, :string
add_column :appearance_releases, :guardian_2_phone, :string
add_column :appearance_releases, :guardian_2_address_street1, :string
add_column :appearance_releases, :guardian_2_address_street2, :string
add_column :appearance_releases, :guardian_2_address_city, :string
add_column :appearance_releases, :guardian_2_address_state, :string
add_column :appearance_releases, :guardian_2_address_zip, :string
add_column :appearance_releases, :guardian_2_address_country, :string
end
end

View File

@@ -9,6 +9,20 @@ SET xmloption = content;
SET client_min_messages = warning;
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: -
--
@@ -328,17 +342,7 @@ CREATE TABLE public.appearance_releases (
guardian_address_city character varying,
guardian_address_state character varying,
guardian_address_zip character varying,
guardian_address_country character varying,
guardian_2_first_name character varying,
guardian_2_last_name character varying,
guardian_2_email character varying,
guardian_2_phone character varying,
guardian_2_address_street1 character varying,
guardian_2_address_street2 character varying,
guardian_2_address_city character varying,
guardian_2_address_state character varying,
guardian_2_address_zip character varying,
guardian_2_address_country character varying
guardian_address_country character varying
);
@@ -624,7 +628,12 @@ CREATE TABLE public.contract_templates (
question_7_text text,
question_8_text text,
question_9_text text,
question_10_text text
question_10_text text,
question_11_text text,
question_12_text text,
question_13_text text,
question_14_text text,
question_15_text text
);
@@ -1014,7 +1023,12 @@ CREATE TABLE public.medical_releases (
question_7_answer text,
question_8_answer text,
question_9_answer text,
question_10_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
);
@@ -3677,6 +3691,6 @@ INSERT INTO "schema_migrations" (version) VALUES
('20200615131722'),
('20200615133602'),
('20200616124214'),
('20200619134853');
('20200619081446');

View File

@@ -72,61 +72,6 @@ feature 'User managing appearance releases' do
expect(page).to have_content(successful_submission_message)
end
scenario 'creating a release for a minor with two guardians', js: true do
allow(BrayniacAI::Validation).to receive(:create).and_return(double(:validation, valid: true))
project = create(:project, members: current_user, account: current_user.primary_account)
contract_template = create(:contract_template, project: project)
visit new_account_project_contract_template_appearance_release_path(project.account, project, contract_template)
expect(page).to have_photo_button
expect(page).not_to have_content('SECOND GUARDIAN INFORMATION')
expect(page).not_to have_content('SECOND GUARDIAN PHOTO')
page.check person_is_minor_checkbox
expect(page).to have_content('GUARDIAN INFORMATION')
expect(page).to have_content('GUARDIAN PHOTO')
expect(page).to have_content 'Guardian Email'
expect(page).to have_content 'SECOND GUARDIAN INFORMATION'
expect(page).to have_content 'SECOND GUARDIAN PHOTO'
expect(page).to have_content 'Second Guardian Email'
expect(page).to have_content 'Second Guardian Phone'
expect(page).to have_content 'Second Guardian Address'
fill_in guardian_first_name_field, with: 'Guardian'
fill_in guardian_last_name_field, with: 'Name'
fill_in guardian_phone_field, with: '001101'
fill_in person_first_name_field, with: 'Jane'
fill_in person_last_name_field, with: 'Doe'
fill_in_person_address_fields
fill_in person_phone_field, with: '555-555-5555'
fill_in person_email_field, with: 'jane.doe@test.com'
fill_in person_date_of_birth, with: '01/01/1999'
attach_file person_photo_field, file_fixture('person_photo.png'), visible: :all
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
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
attach_file guardian_photo_field, file_fixture('hemsworth.jpeg'), visible: :all
draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64'
fill_in guardian_2_first_name_field, with: 'Second'
fill_in guardian_2_last_name_field, with: 'Guardian'
fill_in guardian_2_phone_field, with: '999'
click_button submit_release_button
expect(page).to have_content(successful_submission_message)
expect(AppearanceRelease.last.guardian_2_first_name).to eq 'Second'
end
end
context 'when signed in' do
@@ -509,18 +454,6 @@ feature 'User managing appearance releases' do
'appearance_release_minor'
end
def guardian_2_first_name_field
'Second guardian first name'
end
def guardian_2_last_name_field
'Second guardian last name'
end
def guardian_2_phone_field
'Second guardian phone'
end
def guardian_first_name_field
'Guardian first name'
end