Compare commits

..

1 Commits

Author SHA1 Message Date
bilal
94b417d4c4 do not show archived templates when importing contract templates 2020-06-17 15:08:01 +02:00
19 changed files with 52 additions and 95 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_street1, :person_first_name, :person_last_name, :person_phone, :person_email, :person_photo, :person_address, :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,24 +39,8 @@ 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_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_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

@@ -11,7 +11,9 @@ class ReleaseTemplateImportsController < ApplicationController
templates = [] templates = []
filtered_contract_templates.each do |contract_template| filtered_contract_templates.each do |contract_template|
next if contract_template.duplicated? || contract_template.project == @project next if contract_template.duplicated? ||
contract_template.archived? ||
contract_template.project == @project
already_imported = contract_template.duplicates.non_archived.pluck(:project_id).include?(@project.id) already_imported = contract_template.duplicates.non_archived.pluck(:project_id).include?(@project.id)
templates << OpenStruct.new(template: contract_template, already_imported?: already_imported) templates << OpenStruct.new(template: contract_template, already_imported?: already_imported)

View File

@@ -16,17 +16,6 @@ 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
@@ -82,18 +71,7 @@ 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[ searchable_on %i[person_first_name person_last_name person_address person_email person_phone]
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

@@ -51,6 +51,10 @@ class ContractTemplate < ApplicationRecord
parent.present? parent.present?
end end
def archived?
archived_at.present?
end
def archive def archive
update(archived_at: Time.zone.now) update(archived_at: Time.zone.now)
end end

View File

@@ -8,12 +8,7 @@ class SampleAppearanceRelease < AppearanceRelease
def default_attrs def default_attrs
{ {
person_address_street1: "Street Address", person_address: "Street Address, City, State Zipcode",
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_street1, wrapper_class: "col-sm-6" %> <%= form.text_field :person_address, 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,12 +329,7 @@ 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_city: City person_address: Address
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,12 +118,8 @@ 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

@@ -1,10 +0,0 @@
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_street1 character varying, person_address 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,12 +318,7 @@ 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
); );
@@ -3659,7 +3654,6 @@ 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_email: "email@email.com" } } post :create, params: { account_id: user.primary_account.to_param, project_id: project, contract_template_id: contract_template, appearance_release: { person_address: "Albuquerque" } }
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,12 +11,7 @@ FactoryBot.define do
end end
trait :native do trait :native do
person_address_street1 "St1" person_address "100 Test Lane, New York, NY 10001"
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

@@ -8,6 +8,10 @@ FactoryBot.define do
guardian_clause "Is the signer a minor?" guardian_clause "Is the signer a minor?"
fee "$0.00" fee "$0.00"
trait :archived do
archived_at Time.zone.now
end
factory :appearance_release_contract_template do factory :appearance_release_contract_template do
release_type "appearance" release_type "appearance"
end end

View File

@@ -5,6 +5,7 @@ require 'rails_helper'
RSpec.feature 'User manages contract templates', type: :feature do RSpec.feature 'User manages contract templates', type: :feature do
let(:current_user) { create(:user, :manager) } let(:current_user) { create(:user, :manager) }
let(:project) { create(:project, members: current_user, account: current_user.primary_account) } let(:project) { create(:project, members: current_user, account: current_user.primary_account) }
let(:project2) { create(:project, members: current_user, account: current_user.primary_account, name: 'New project') }
before do before do
sign_in(current_user) sign_in(current_user)
@@ -191,6 +192,21 @@ RSpec.feature 'User manages contract templates', type: :feature do
expect(page).not_to have_content('Test template') expect(page).not_to have_content('Test template')
end end
scenario 'archived contract templates from other projects are not shown when importing contract templates' do
create(:contract_template, :archived, project: project2, name: 'Archived template')
create(:contract_template, project: project2, name: 'Active template')
create(:contract_template, project: project)
visit project_contract_templates_path(project)
expect(page).to have_content('Test template')
click_on import_template_button
expect(page).not_to have_content('Test template')
expect(page).not_to have_content('Archived template')
expect(page).to have_content('Active template')
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) }
@@ -198,7 +214,7 @@ RSpec.feature 'User manages contract templates', type: :feature do
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 Release Template') 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
end end
@@ -218,6 +234,14 @@ RSpec.feature 'User manages contract templates', type: :feature do
private private
def import_template_button
t 'contract_templates.index.actions.import'
end
def import_selected_templates_button
t 'release_template_imports.new.actions.import'
end
def preview_heading def preview_heading
t 'blank_contracts.new.preview_heading' t 'blank_contracts.new.preview_heading'
end end

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_street1') t('helpers.label.appearance_release.person_address')
end end
def person_email_field def person_email_field

View File

@@ -50,11 +50,7 @@ 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_street1' => 'Street 1', 'person_address' => 'Street 1, Street 2, City, State 12345, Country',
'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_street1: "123 Main Street, New York, NY 10000") person_address: "123 Main Street, New York, NY 10000")
) )
) )
allow(sheet).to receive(:add_row) allow(sheet).to receive(:add_row)