Compare commits

..

1 Commits

Author SHA1 Message Date
bilal
9d160bb320 prevent submitting form without selected files 2020-06-17 15:14:05 +02:00
16 changed files with 34 additions and 100 deletions

View File

@@ -78,7 +78,7 @@ class AppearanceReleasesController < ApplicationController
end
def appearance_release_params
params.require(:appearance_release).permit(:contract, :guardian_address_street1, :guardian_first_name, :guardian_last_name, :guardian_phone, :guardian_photo, :guardian_email, :minor,
params.require(:appearance_release).permit(:contract, :guardian_address, :guardian_first_name, :guardian_last_name, :guardian_phone, :guardian_photo, :guardian_email, :minor,
:person_address, :person_first_name, :person_last_name, :person_phone, :person_email, :person_photo,
:applicable_medium_id, :applicable_medium_text,
:territory_id, :territory_text,

View File

@@ -39,25 +39,9 @@ class Public::AppearanceReleasesController < Public::BaseController
authorize appearance_releases.build(params)
end
def guardian_params
%i[
guardian_first_name
guardian_last_name
guardian_phone
guardian_email
guardian_photo
guardian_address_street1
guardian_address_street2
guardian_address_city
guardian_address_state
guardian_address_zip
guardian_address_country
]
end
def appearance_release_params
params.require(:appearance_release).permit(:person_address, :person_first_name, :person_last_name, :person_phone, :person_email, :person_photo,
guardian_params, :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

View File

@@ -16,18 +16,6 @@ class AppearanceRelease < ApplicationRecord
has_one_attached :person_photo
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]
]
# These validations apply to all releases
validates :person_email, email: true, allow_blank: true
validates :person_first_name, :person_last_name, presence: true

View File

@@ -23,7 +23,7 @@
<%= form.phone_field :guardian_phone, wrapper_class: "col-sm-6" %>
</div>
<div class="form-row">
<%= form.text_field :guardian_address_street1, wrapper_class: "col-sm-6" %>
<%= form.text_field :guardian_address, wrapper_class: "col-sm-6" %>
</div>
</div>
<% end %>

View File

@@ -1,4 +1,4 @@
<%= bootstrap_form_for model, layout: :inline, remote: true do |form| %>
<%= form.file_field :files, direct_upload: true, multiple: true, accept: "*", hide_label: true, wrapper_class: "w-65 mr-2", id: "broadcast_files_#{token}" %>
<%= form.file_field :files, direct_upload: true, multiple: true, accept: "*", hide_label: true, required: true, wrapper_class: "w-65 mr-2", id: "broadcast_files_#{token}" %>
<%= form.button fa_icon("upload", text: "Add File"), class: "btn btn-primary", type: :submit, data: { disable_with: fa_icon("spinner", text: "Adding File") } %>
<% end %>

View File

@@ -79,7 +79,9 @@
<div class="form-row">
<%= form.text_field :guardian_email, wrapper_class: "col-sm-6" %>
</div>
<%= render "shared/address_fields", form: form, subject: "guardian" %>
<div class="form-row">
<%= form.text_field :guardian_address, wrapper_class: "col-sm-6" %>
</div>
<% end %>
<hr>

View File

@@ -1,4 +1,4 @@
<%= bootstrap_form_for model, url: broadcast_url(token: token), layout: :inline, remote: true do |form| %>
<%= form.file_field :files, direct_upload: true, multiple: true, accept: "*", hide_label: true, wrapper_class: "w-65 mr-2", id: "broadcast_files_#{token}" %>
<%= form.file_field :files, direct_upload: true, multiple: true, accept: "*", hide_label: true, required: true, wrapper_class: "w-65 mr-2", id: "broadcast_files_#{token}" %>
<%= form.button fa_icon("upload", text: "Add File"), class: "btn btn-primary", type: :submit, data: { disable_with: fa_icon("spinner", text: "Adding File") } %>
<% end %>

View File

@@ -336,12 +336,6 @@ en:
person_last_name: Last name
person_name: Name
person_phone: Phone number
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
location_release:
address_city: City
address_country: Country

View File

@@ -115,6 +115,7 @@ es:
helpers:
label:
appearance_release:
guardian_address: Dirección del tutor legal
guardian_name: Nómbre del tutor legal
guardian_phone: Número de teléfono del tutor legal
minor: El firmante es un menor
@@ -122,12 +123,6 @@ es:
person_email: Dirección de correo electrónico
person_name: Nómbre
person_phone: Número de teléfono
guardian_address_city: Guardian city (ES)
guardian_address_country: Guardian country (ES)
guardian_address_state: Guardian state (ES)
guardian_address_street1: Dirección del tutor legal
guardian_address_street2: Dirección del tutor legal (Línea 2)
guardian_address_zip: Guardian zip code (ES)
project:
client_name: Nómbre del cliente del proyecto
description: Descripción del proyecto

View File

@@ -1,10 +0,0 @@
class DestructureGuardianAddressColumnInAppearanceReleases < ActiveRecord::Migration[6.0]
def change
rename_column :appearance_releases, :guardian_address, :guardian_address_street1
add_column :appearance_releases, :guardian_address_street2, :string
add_column :appearance_releases, :guardian_address_city, :string
add_column :appearance_releases, :guardian_address_state, :string
add_column :appearance_releases, :guardian_address_zip, :string
add_column :appearance_releases, :guardian_address_country, :string
end
end

View File

@@ -296,7 +296,7 @@ CREATE TABLE public.appearance_releases (
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL,
minor boolean DEFAULT false,
guardian_address_street1 character varying,
guardian_address character varying,
guardian_name_old character varying,
guardian_phone character varying,
person_email character varying,
@@ -318,12 +318,7 @@ CREATE TABLE public.appearance_releases (
guardian_first_name character varying,
guardian_last_name character varying,
identifier character varying,
guardian_email character varying,
guardian_address_street2 character varying,
guardian_address_city character varying,
guardian_address_state character varying,
guardian_address_zip character varying,
guardian_address_country character varying
guardian_email character varying
);
@@ -3659,7 +3654,6 @@ INSERT INTO "schema_migrations" (version) VALUES
('20200610085411'),
('20200610140459'),
('20200612121539'),
('20200615131722'),
('20200616124214');
('20200615131722');

View File

@@ -265,9 +265,6 @@ RSpec.describe AppearanceReleasesController, tye: :controller do
def minor_appearance_release_params
attributes_for(:appearance_release, :non_native, :minor_with_guardian_photo)
.except(:contract)
.except(:guardian_address_street2).except(:guardian_address_city)
.except(:guardian_address_state).except(:guardian_address_zip)
.except(:guardian_address_country)
.merge(contract_param, exploitable_rights_params)
end

View File

@@ -120,19 +120,7 @@ describe Public::AppearanceReleasesController do
def minor_appearance_release_params(with_guardian_photo = true)
minor_type = with_guardian_photo ? :minor_with_guardian_photo : :minor
attributes_for(:appearance_release, minor_type)
.merge(signature_param, guardian_address_params)
end
def guardian_address_params
{
guardian_address_street1: "St1",
guardian_address_street2: "St2",
guardian_address_city: "City",
guardian_address_state: "State",
guardian_address_zip: "ZIP",
guardian_address_country: "Country"
}
attributes_for(:appearance_release, minor_type).merge(signature_param)
end
def signature_param

View File

@@ -31,12 +31,7 @@ FactoryBot.define do
minor true
guardian_first_name "Jamie"
guardian_last_name "Doe"
guardian_address_street1 "St1"
guardian_address_street2 "St2"
guardian_address_city "City"
guardian_address_state "State"
guardian_address_zip "ZIP"
guardian_address_country "Country"
guardian_address "100 Test Lane, New York, 10001"
guardian_phone "123-555-1234"
guardian_email "guardian@galaxy.all"
end
@@ -45,14 +40,9 @@ FactoryBot.define do
minor true
guardian_first_name "Jamie"
guardian_last_name "Doe"
guardian_address "100 Test Lane, New York, 10001"
guardian_phone "123-555-1234"
guardian_email "guardian@galaxy.all"
guardian_address_street1 "St1"
guardian_address_street2 "St2"
guardian_address_city "City"
guardian_address_state "State"
guardian_address_zip "ZIP"
guardian_address_country "Country"
guardian_photo do
path = Rails.root.join("spec", "fixtures", "files", "pratt.jpg")
Rack::Test::UploadedFile.new(path, "image/jpeg")

View File

@@ -40,12 +40,12 @@ feature "User managing broadcasts" do
scenario "visit show page of broadcast", js: true do
broadcast = create(:broadcast, :with_stream, :with_files, project: project)
recording = create(:broadcast_recording, broadcast: broadcast)
visit project_broadcast_path(project, broadcast)
expect(page).to have_content("Live stream is waiting to begin.")
expect(page).to have_content("Copy URL")
within "#files" do
expect(page).to have_content("contract.pdf")
end
@@ -54,6 +54,17 @@ feature "User managing broadcasts" do
expect(page).to have_content(recording.download_file_name)
end
scenario "form will not submit if user clicks Add files without selected files", js: true do
broadcast = create(:broadcast, :with_stream, :with_files, project: project)
visit project_broadcast_path(project, broadcast)
expect(page).to have_content("Live stream is waiting to begin.")
expect(page).to have_content add_file_button
click_on add_file_button
end
scenario "visit multi-view broadcast page", js: true do
broadcast_one = create(:broadcast, :with_stream, :with_files, name: "Broadcast 1", project: project)
broadcast_two = create(:broadcast, :with_stream, :with_files, name: "Broadcast 2", project: project)
@@ -80,8 +91,13 @@ feature "User managing broadcasts" do
end
end
private
def add_file_button
'Add File'
end
def broadcast_name_field
"broadcast[name]"
end

View File

@@ -54,11 +54,7 @@ describe ContractTemplatePreview do
'person_phone' => '00 111 222 333 4444',
'updated_at' => nil,
'minor' => true,
'guardian_address_street1' => 'Street 3',
'guardian_address_street2' => 'Street 4',
'guardian_address_city' => 'City-2',
'guardian_address_state' => 'State-2',
'guardian_address_zip' => '112233',
'guardian_address' => 'Street 3, Street 4, City-2, State-2 112233, Country-2',
"guardian_first_name" => nil,
"guardian_last_name" => nil,
"guardian_name_old" => nil,