From 25c4c73ad58e19f9209fca36855c5187506a682a Mon Sep 17 00:00:00 2001 From: bilal Date: Fri, 12 Jun 2020 13:35:52 +0200 Subject: [PATCH 1/4] add guardian email field to the appearance release public signing form --- app/controllers/public/appearance_releases_controller.rb | 2 +- app/models/appearance_release.rb | 1 + app/views/public/appearance_releases/new.html.erb | 3 +++ ...200612121539_add_guardian_email_to_appearance_releases.rb | 5 +++++ 4 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20200612121539_add_guardian_email_to_appearance_releases.rb diff --git a/app/controllers/public/appearance_releases_controller.rb b/app/controllers/public/appearance_releases_controller.rb index c1a0955..4bd3d9f 100644 --- a/app/controllers/public/appearance_releases_controller.rb +++ b/app/controllers/public/appearance_releases_controller.rb @@ -41,7 +41,7 @@ class Public::AppearanceReleasesController < Public::BaseController def appearance_release_params params.require(:appearance_release).permit(:person_address, :person_first_name, :person_last_name, :person_phone, :person_email, :person_photo, - :guardian_address, :guardian_first_name, :guardian_last_name, :guardian_phone, :guardian_photo, :minor, + :guardian_address, :guardian_first_name, :guardian_last_name, :guardian_phone, :guardian_email, :guardian_photo, :minor, :signature_base64, :person_date_of_birth, :locale, :contract_template,) end diff --git a/app/models/appearance_release.rb b/app/models/appearance_release.rb index 59d1f22..9a587c7 100644 --- a/app/models/appearance_release.rb +++ b/app/models/appearance_release.rb @@ -39,6 +39,7 @@ class AppearanceRelease < ApplicationRecord # These validations apply to releases being signed by a minor with_options if: :minor? do validates :guardian_first_name, :guardian_last_name, presence: true + validates :guardian_email, email: true, allow_blank: true end validates :person_photo, content_type: face_photo_acceptable_content_types diff --git a/app/views/public/appearance_releases/new.html.erb b/app/views/public/appearance_releases/new.html.erb index 9055980..a612e02 100644 --- a/app/views/public/appearance_releases/new.html.erb +++ b/app/views/public/appearance_releases/new.html.erb @@ -76,6 +76,9 @@ <%= form.text_field :guardian_last_name, required: @appearance_release.minor?, wrapper_class: "col-sm-3" %> <%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6" %> +
+ <%= form.text_field :guardian_email, wrapper_class: "col-sm-6" %> +
<%= form.text_field :guardian_address, wrapper_class: "col-sm-6" %>
diff --git a/db/migrate/20200612121539_add_guardian_email_to_appearance_releases.rb b/db/migrate/20200612121539_add_guardian_email_to_appearance_releases.rb new file mode 100644 index 0000000..dfa06d1 --- /dev/null +++ b/db/migrate/20200612121539_add_guardian_email_to_appearance_releases.rb @@ -0,0 +1,5 @@ +class AddGuardianEmailToAppearanceReleases < ActiveRecord::Migration[6.0] + def change + add_column :appearance_releases, :guardian_email, :string + end +end -- 2.47.3 From 96968b2adcf81a30b3211a9159f479cd10e5b945 Mon Sep 17 00:00:00 2001 From: bilal Date: Fri, 12 Jun 2020 13:56:14 +0200 Subject: [PATCH 2/4] show guardian email when downloading appearance release contract --- app/views/contracts/_signature_page.html.erb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/contracts/_signature_page.html.erb b/app/views/contracts/_signature_page.html.erb index e39c8be..7c7ab68 100644 --- a/app/views/contracts/_signature_page.html.erb +++ b/app/views/contracts/_signature_page.html.erb @@ -56,6 +56,7 @@ <%= description_list_pair_for releasable, :guardian_name, append: ":" %> <%= description_list_pair_for releasable, :guardian_address, append: ":" %> <%= description_list_pair_for releasable, :guardian_phone, append: ":" %> + <%= description_list_pair_for releasable, :guardian_email, append: ":" %> <%= description_list_pair_for releasable, :signed_on, append: ":" %> -- 2.47.3 From a5822a9556959c9c40023981c3d7e4cce3260e0e Mon Sep 17 00:00:00 2001 From: bilal Date: Fri, 12 Jun 2020 14:45:51 +0200 Subject: [PATCH 3/4] update specs to test guardian email field --- spec/factories/appearance_releases.rb | 2 ++ .../user_managing_appearance_releases_spec.rb | 25 +++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/spec/factories/appearance_releases.rb b/spec/factories/appearance_releases.rb index fa39d2c..a64c4a9 100644 --- a/spec/factories/appearance_releases.rb +++ b/spec/factories/appearance_releases.rb @@ -33,6 +33,7 @@ FactoryBot.define do guardian_last_name "Doe" guardian_address "100 Test Lane, New York, 10001" guardian_phone "123-555-1234" + guardian_email "guardian@galaxy.all" end trait :minor_with_guardian_photo do @@ -41,6 +42,7 @@ FactoryBot.define do guardian_last_name "Doe" guardian_address "100 Test Lane, New York, 10001" guardian_phone "123-555-1234" + guardian_email "guardian@galaxy.all" guardian_photo do path = Rails.root.join("spec", "fixtures", "files", "pratt.jpg") Rack::Test::UploadedFile.new(path, "image/jpeg") diff --git a/spec/features/user_managing_appearance_releases_spec.rb b/spec/features/user_managing_appearance_releases_spec.rb index 28eeb2b..68d9e8e 100644 --- a/spec/features/user_managing_appearance_releases_spec.rb +++ b/spec/features/user_managing_appearance_releases_spec.rb @@ -25,7 +25,7 @@ feature 'User managing appearance releases' do fill_in person_date_of_birth, with: '01/01/1999' attach_file person_photo_field, file_fixture('person_photo.png'), visible: :all draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64' - click_button 'I have read and agree to the above' + click_button submit_release_button expect(page).to have_content(successful_submission_message) end @@ -45,6 +45,7 @@ feature 'User managing appearance releases' do 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' fill_in guardian_first_name_field, with: 'Guardian' fill_in guardian_last_name_field, with: 'Name' @@ -58,7 +59,14 @@ feature 'User managing appearance releases' do 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' - click_button 'I have read and agree to the above' + + 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' + draw_signature file_fixture('signature.png'), 'appearance_release_signature_base64' + click_button submit_release_button expect(page).to have_content(successful_submission_message) end @@ -249,6 +257,7 @@ feature 'User managing appearance releases' do expect(pdf_body).to have_content('TAGS') expect(pdf_body).to have_content('Woman') expect(pdf_body).to have_content('Brunette') + expect(pdf_body).not_to have_content('Guardian Email') end scenario 'viewing contract PDF for a minor without guardian photo' do @@ -262,8 +271,10 @@ feature 'User managing appearance releases' do expect(pdf_filename).to include(appearance_release.filename_suffix.parameterize) expect(pdf_body).to have_content(appearance_release.name) expect(pdf_body).to have_content(appearance_release.guardian_name) + expect(pdf_body).to have_content(appearance_release.guardian_email) expect(pdf_body).to have_content photos_heading.upcase expect(pdf_body).to have_content(appearance_release.photo.filename.to_s) + expect(pdf_body).to have_content('Guardian Email') end scenario 'viewing contract PDF for a minor with guardian photo' do @@ -277,9 +288,11 @@ feature 'User managing appearance releases' do expect(pdf_filename).to include(appearance_release.filename_suffix.parameterize) expect(pdf_body).to have_content(appearance_release.name) expect(pdf_body).to have_content(appearance_release.guardian_name) + expect(pdf_body).to have_content(appearance_release.guardian_email) expect(pdf_body).to have_content photos_heading(2).upcase expect(pdf_body).to have_content(appearance_release.photo.filename.to_s) expect(pdf_body).to have_content(appearance_release.guardian_photo.filename.to_s) + expect(pdf_body).to have_content('Guardian Email') end scenario 'deleting a release', js: true do @@ -470,6 +483,10 @@ feature 'User managing appearance releases' do 'Guardian phone' end + def guardian_email_field + 'Guardian email' + end + def guardian_photo_field 'appearance_release[guardian_photo]' end @@ -518,6 +535,10 @@ feature 'User managing appearance releases' do 'Import Release' end + def submit_release_button + 'I have read and agree to the above' + end + def submit_update_button 'Save Changes' end -- 2.47.3 From 867260514ee3af0270ffc865ca122929204a5a02 Mon Sep 17 00:00:00 2001 From: bilal Date: Fri, 12 Jun 2020 14:53:54 +0200 Subject: [PATCH 4/4] fix appearance release spec --- spec/controllers/appearance_releases_controller_spec.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spec/controllers/appearance_releases_controller_spec.rb b/spec/controllers/appearance_releases_controller_spec.rb index e7bc676..bfbe240 100644 --- a/spec/controllers/appearance_releases_controller_spec.rb +++ b/spec/controllers/appearance_releases_controller_spec.rb @@ -263,7 +263,10 @@ RSpec.describe AppearanceReleasesController, tye: :controller do end def minor_appearance_release_params - attributes_for(:appearance_release, :non_native, :minor_with_guardian_photo).except(:contract).merge(contract_param, exploitable_rights_params) + attributes_for(:appearance_release, :non_native, :minor_with_guardian_photo) + .except(:contract) + .except(:guardian_email) + .merge(contract_param, exploitable_rights_params) end def exploitable_rights_params -- 2.47.3