Compare commits

...

8 Commits

Author SHA1 Message Date
bilal
dc9e364e6b fix MR comments 2020-06-18 10:06:31 +02:00
bilal
5454a0ecd2 fix MR comments 2020-06-18 09:58:46 +02:00
bilal
966137cd9d rebase master 2020-06-17 14:53:39 +02:00
bilal
fe4649ca64 use person_address_street1 for old person_address 2020-06-17 14:52:12 +02:00
bilal
e981ee28ee update specs 2020-06-17 14:51:28 +02:00
bilal
9c0d9b9919 make editing non-native release possible 2020-06-17 14:51:28 +02:00
bilal
dde1e975e2 make editing non-native release possible 2020-06-17 14:51:28 +02:00
bilal
3db2a39686 destructure address fields but use person_address_old for legacy 2020-06-17 14:51:28 +02:00
15 changed files with 93 additions and 16 deletions

View File

@@ -79,7 +79,7 @@ class AppearanceReleasesController < ApplicationController
def appearance_release_params def appearance_release_params
params.require(:appearance_release).permit(:contract, :guardian_address, :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, :person_address_street1, :person_first_name, :person_last_name, :person_phone, :person_email, :person_photo,
:applicable_medium_id, :applicable_medium_text, :applicable_medium_id, :applicable_medium_text,
:territory_id, :territory_text, :territory_id, :territory_text,
:term_id, :term_text, :person_date_of_birth, :term_id, :term_text, :person_date_of_birth,

View File

@@ -39,8 +39,24 @@ class Public::AppearanceReleasesController < Public::BaseController
authorize appearance_releases.build(params) authorize appearance_releases.build(params)
end end
def person_params
%i[
person_first_name
person_last_name
person_phone
person_email
person_photo
person_address_street1
person_address_street2
person_address_city
person_address_state
person_address_zip
person_address_country
]
end
def appearance_release_params def appearance_release_params
params.require(:appearance_release).permit(:person_address, :person_first_name, :person_last_name, :person_phone, :person_email, :person_photo, params.require(:appearance_release).permit(person_params,
:guardian_address, :guardian_first_name, :guardian_last_name, :guardian_phone, :guardian_email, :guardian_photo, :minor, :guardian_address, :guardian_first_name, :guardian_last_name, :guardian_phone, :guardian_email, :guardian_photo, :minor,
:signature_base64, :person_date_of_birth, :signature_base64, :person_date_of_birth,
:locale, :contract_template,) :locale, :contract_template,)

View File

@@ -16,6 +16,17 @@ class AppearanceRelease < ApplicationRecord
has_one_attached :person_photo has_one_attached :person_photo
composed_of :person_address,
class_name: 'Address',
mapping: [
%w[person_address_street1 street1],
%w[person_address_street2 street2],
%w[person_address_city city],
%w[person_address_state state],
%w[person_address_zip zip],
%w[person_address_country country]
]
# These validations apply to all releases # These validations apply to all releases
validates :person_email, email: true, allow_blank: true validates :person_email, email: true, allow_blank: true
validates :person_first_name, :person_last_name, presence: true validates :person_first_name, :person_last_name, presence: true
@@ -71,7 +82,18 @@ class AppearanceRelease < ApplicationRecord
scope :having_no_person_photo, -> { left_joins(:person_photo_attachment).group(:id).having('COUNT(active_storage_attachments) = 0') } scope :having_no_person_photo, -> { left_joins(:person_photo_attachment).group(:id).having('COUNT(active_storage_attachments) = 0') }
scope :with_person_name, ->(name) { where('person_first_name ILIKE ? OR person_last_name ILIKE ?', "%#{name}%") } scope :with_person_name, ->(name) { where('person_first_name ILIKE ? OR person_last_name ILIKE ?', "%#{name}%") }
searchable_on %i[person_first_name person_last_name person_address person_email person_phone] searchable_on %i[
person_first_name
person_last_name
person_address_street1
person_address_street2
person_address_city
person_address_state
person_address_zip
person_address_country
person_email
person_phone
]
# All releases must respond to the following messages # All releases must respond to the following messages
def name def name

View File

@@ -8,7 +8,12 @@ class SampleAppearanceRelease < AppearanceRelease
def default_attrs def default_attrs
{ {
person_address: "Street Address, City, State Zipcode", person_address_street1: "Street Address",
person_address_street2: "St2",
person_address_city: "City",
person_address_state: "State",
person_address_zip: "ZIP",
person_address_country: "Country",
person_first_name: "Some", person_first_name: "Some",
person_last_name: "Person", person_last_name: "Person",
person_phone: "555-555-5555", person_phone: "555-555-5555",

View File

@@ -13,7 +13,7 @@
<div class="form-row"> <div class="form-row">
<%= form.email_field :person_email, wrapper_class: "col-sm-6" %> <%= form.email_field :person_email, wrapper_class: "col-sm-6" %>
<%= form.date_field :person_date_of_birth, wrapper_class: "col-sm-6", placeholder: Date.current %> <%= form.date_field :person_date_of_birth, wrapper_class: "col-sm-6", placeholder: Date.current %>
<%= form.text_field :person_address, wrapper_class: "col-sm-6" %> <%= form.text_field :person_address_street1, wrapper_class: "col-sm-6" %>
</div> </div>
<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">

View File

@@ -35,8 +35,8 @@
<div class="form-row"> <div class="form-row">
<%= form.email_field :person_email, wrapper_class: "col-sm-6" %> <%= form.email_field :person_email, wrapper_class: "col-sm-6" %>
<%= form.date_field :person_date_of_birth, wrapper_class: "col-sm-6", placeholder: Date.current %> <%= form.date_field :person_date_of_birth, wrapper_class: "col-sm-6", placeholder: Date.current %>
<%= form.text_field :person_address, wrapper_class: "col-sm-6" %>
</div> </div>
<%= render "shared/address_fields", form: form, subject: "person" %>
<% end %> <% end %>
<%= card_field_set_tag t(".photo.heading") do %> <%= card_field_set_tag t(".photo.heading") do %>

View File

@@ -329,7 +329,12 @@ en:
person_title: Title person_title: Title
appearance_release: appearance_release:
minor: Is the person a minor? minor: Is the person a minor?
person_address: Address 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_date_of_birth: Date of birth
person_email: Email address person_email: Email address
person_first_name: First name person_first_name: First name

View File

@@ -118,8 +118,12 @@ es:
guardian_address: Dirección del tutor legal guardian_address: Dirección del tutor legal
guardian_name: Nómbre del tutor legal guardian_name: Nómbre del tutor legal
guardian_phone: Número de teléfono del tutor legal guardian_phone: Número de teléfono del tutor legal
person_address_city: City (ES)
person_address_country: Country (ES)
person_address_state: State (ES)
person_address_street1: Address (ES)
person_address_street2: Address (Line 2) (ES)
minor: El firmante es un menor minor: El firmante es un menor
person_address: Dirección
person_email: Dirección de correo electrónico person_email: Dirección de correo electrónico
person_name: Nómbre person_name: Nómbre
person_phone: Número de teléfono person_phone: Número de teléfono

View File

@@ -0,0 +1,10 @@
class DestructurePersonAddressColumnInAppearanceReleases < ActiveRecord::Migration[6.0]
def change
rename_column :appearance_releases, :person_address, :person_address_street1
add_column :appearance_releases, :person_address_street2, :string
add_column :appearance_releases, :person_address_city, :string
add_column :appearance_releases, :person_address_state, :string
add_column :appearance_releases, :person_address_zip, :string
add_column :appearance_releases, :person_address_country, :string
end
end

View File

@@ -290,7 +290,7 @@ ALTER SEQUENCE public.active_storage_blobs_id_seq OWNED BY public.active_storage
CREATE TABLE public.appearance_releases ( CREATE TABLE public.appearance_releases (
id bigint NOT NULL, id bigint NOT NULL,
person_name_old character varying, person_name_old character varying,
person_address character varying, person_address_street1 character varying,
person_phone character varying, person_phone character varying,
project_id bigint, project_id bigint,
created_at timestamp without time zone NOT NULL, created_at timestamp without time zone NOT NULL,
@@ -318,7 +318,12 @@ CREATE TABLE public.appearance_releases (
guardian_first_name character varying, guardian_first_name character varying,
guardian_last_name character varying, guardian_last_name character varying,
identifier character varying, identifier character varying,
guardian_email character varying guardian_email character varying,
person_address_street2 character varying,
person_address_city character varying,
person_address_state character varying,
person_address_zip character varying,
person_address_country character varying
); );
@@ -3654,6 +3659,7 @@ INSERT INTO "schema_migrations" (version) VALUES
('20200610085411'), ('20200610085411'),
('20200610140459'), ('20200610140459'),
('20200612121539'), ('20200612121539'),
('20200615131722'); ('20200615131722'),
('20200615133602');

View File

@@ -31,7 +31,7 @@ describe Public::AppearanceReleasesController do
contract_template = create(:contract_template, project: project) contract_template = create(:contract_template, project: project)
sign_in(user) sign_in(user)
post :create, params: { account_id: user.primary_account.to_param, project_id: project, contract_template_id: contract_template, appearance_release: { person_address: "Albuquerque" } } post :create, params: { account_id: user.primary_account.to_param, project_id: project, contract_template_id: contract_template, appearance_release: { person_email: "email@email.com" } }
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/

View File

@@ -11,7 +11,12 @@ FactoryBot.define do
end end
trait :native do trait :native do
person_address "100 Test Lane, New York, NY 10001" person_address_street1 "St1"
person_address_street2 "St2"
person_address_city "City"
person_address_state "State"
person_address_zip "ZIP"
person_address_country "Country"
person_phone "123-555-6789" person_phone "123-555-6789"
signature do signature do

View File

@@ -485,7 +485,7 @@ feature 'User managing appearance releases' do
end end
def person_address_field def person_address_field
t('helpers.label.appearance_release.person_address') t('helpers.label.appearance_release.person_address_street1')
end end
def person_email_field def person_email_field

View File

@@ -50,7 +50,11 @@ describe ContractTemplatePreview do
'id' => nil, 'id' => nil,
'person_first_name' => 'Dummy', 'person_first_name' => 'Dummy',
'person_last_name' => 'Person', 'person_last_name' => 'Person',
'person_address' => 'Street 1, Street 2, City, State 12345, Country', 'person_address_street1' => 'Street 1',
'person_address_street2' => 'Street 2',
'person_address_city' => 'City',
'person_address_state' => 'State',
'person_address_zip' => '12345',
'person_phone' => '00 111 222 333 4444', 'person_phone' => '00 111 222 333 4444',
'updated_at' => nil, 'updated_at' => nil,
'minor' => true, 'minor' => true,

View File

@@ -29,7 +29,7 @@ module ExcelReports
restriction: Restriction.last, restriction: Restriction.last,
person_first_name: "John", person_first_name: "John",
person_last_name: "Doe", person_last_name: "Doe",
person_address: "123 Main Street, New York, NY 10000") person_address_street1: "123 Main Street, New York, NY 10000")
) )
) )
allow(sheet).to receive(:add_row) allow(sheet).to receive(:add_row)