From 5af16f9784d634e56c2f9d6c2227f9cabc70032c Mon Sep 17 00:00:00 2001 From: Bilal Date: Mon, 27 Jul 2020 03:45:06 +0200 Subject: [PATCH] add guardian fields to acq releases --- .../acquired_media_releases_controller.rb | 95 ++++++++++++------ .../acquired_media_releases_controller.rb | 87 ++++++++++++----- app/models/acquired_media_release.rb | 40 +++++++- .../acquired_media_releases/_form.html.erb | 64 +++++++++++++ app/views/contract_templates/_form.html.erb | 2 +- .../acquired_media_releases/new.html.erb | 96 +++++++++++++++++++ config/locales/en.yml | 44 +++++++++ config/locales/es.yml | 50 ++++++++++ ...dians_fields_to_acquired_media_releases.rb | 25 +++++ 9 files changed, 448 insertions(+), 55 deletions(-) create mode 100644 db/migrate/20200725231419_add_guardians_fields_to_acquired_media_releases.rb diff --git a/app/controllers/acquired_media_releases_controller.rb b/app/controllers/acquired_media_releases_controller.rb index 9c1858e..fc233ba 100644 --- a/app/controllers/acquired_media_releases_controller.rb +++ b/app/controllers/acquired_media_releases_controller.rb @@ -56,35 +56,74 @@ class AcquiredMediaReleasesController < ApplicationController end end + def person_params + %i[ + person_first_name + person_last_name + person_phone + person_company + person_email + person_title + person_address_street1 + person_address_street2 + person_address_city + person_address_state + person_address_zip + person_address_country + ] + 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 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 acquired_media_release_params - params.require(:acquired_media_release).permit( - :name, - :territory, - :term, - :person_first_name, - :person_last_name, - :person_phone, - :person_email, - :person_company, - :person_title, - :person_address_street1, - :person_address_street2, - :person_address_city, - :person_address_state, - :person_address_zip, - :person_address_country, - :contract, - :applicable_medium_id, :applicable_medium_text, - :territory_id, :territory_text, - :term_id, :term_text, - :restriction_id, :restriction_text, - categories: [], - file_infos_attributes: [ - :filename, - :content_type, - :byte_size - ] - ) + params.require(:acquired_media_release).permit(person_params, + guardian_params, + second_guardian_params, + :minor, + :name, + :territory, + :term, + :contract, + :applicable_medium_id, :applicable_medium_text, + :territory_id, :territory_text, + :term_id, :term_text, + :restriction_id, :restriction_text, + categories: [], + file_infos_attributes: %i[ + filename + content_type + byte_size + ]) end def build_acquired_media_release(attrs = {}) diff --git a/app/controllers/public/acquired_media_releases_controller.rb b/app/controllers/public/acquired_media_releases_controller.rb index 5288601..9554c08 100644 --- a/app/controllers/public/acquired_media_releases_controller.rb +++ b/app/controllers/public/acquired_media_releases_controller.rb @@ -41,31 +41,70 @@ class Public::AcquiredMediaReleasesController < Public::BaseController end end + def person_params + %i[ + person_first_name + person_last_name + person_phone + person_fax + person_email + person_title + person_address_street1 + person_address_street2 + person_address_city + person_address_state + person_address_zip + person_address_country + ] + 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 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 acquired_media_release_params - params.require(:acquired_media_release).permit( - :name, - :description, - :person_first_name, - :person_last_name, - :person_email, - :person_title, - :person_phone, - :person_fax, - :person_address_street1, - :person_address_street2, - :person_address_city, - :person_address_state, - :person_address_zip, - :person_address_country, - :signature_base64, - :locale, :contract_template, - categories: [], - file_infos_attributes: [ - :filename, - :content_type, - :byte_size - ] - ) + params.require(:acquired_media_release).permit(person_params, + guardian_params, + second_guardian_params, + :minor, + :name, + :description, + :signature_base64, + :locale, :contract_template, + categories: [], + file_infos_attributes: %i[ + filename + content_type + byte_size + ]) end def acquired_media_release_params_with_locale diff --git a/app/models/acquired_media_release.rb b/app/models/acquired_media_release.rb index d05f127..0c6d2cf 100644 --- a/app/models/acquired_media_release.rb +++ b/app/models/acquired_media_release.rb @@ -11,6 +11,10 @@ class AcquiredMediaRelease < ApplicationRecord include PersonName include CsvExportable include Approvable + include GuardianPhotoable + include SecondGuardianPhotoable + include GuardianName + include SecondGuardianName class << self def custom_csv_exportable_headers @@ -33,6 +37,38 @@ class AcquiredMediaRelease < ApplicationRecord %w(person_address_country country) ] + 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] + ] + + 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] + ] + + # We don't care for the argument but method WILL receive option name + # when called from inside with_option block, hence * argument + def self.face_photo_acceptable_content_types(*) + ['image/png', 'image/jpeg'] + end + + def self.acceptable_import_file_extensions + ['.png', '.jpeg', '.jpg', '.pdf'] + end + validates :name, presence: true validates :person_email, email: true, allow_blank: true @@ -54,8 +90,8 @@ class AcquiredMediaRelease < ApplicationRecord # CATEGORIES = ["Artwork", "Film Footage", "Video Footage", "Still Photograph"].freeze CATEGORIES = ["Film Footage", "Video Footage", "Still Photograph"].freeze - def minor? - false + def second_guardian_present? + guardian_2_first_name.present? end def contact_person diff --git a/app/views/acquired_media_releases/_form.html.erb b/app/views/acquired_media_releases/_form.html.erb index 4f54715..54c5804 100644 --- a/app/views/acquired_media_releases/_form.html.erb +++ b/app/views/acquired_media_releases/_form.html.erb @@ -1,6 +1,10 @@ <%= errors_summary_for acquired_media_release %> <%= bootstrap_form_with model: model, local: true do |form| %> <%= field_set_tag content_tag(:span, t(".acquired_media_details.heading"), class: "h6 text-muted text-uppercase") do %> + <%= form.form_group :minor do %> + <%= form.check_box :minor, label: t("helpers.label.talent_release.minor"), data: { target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %> + <% end %> +
<%= form.text_field :name, required: true, wrapper_class: "col-12" %>
@@ -9,6 +13,28 @@ <%= form.check_box :categories, { multiple: true, label: category }, category, false %> <% end %> <% end %> + +
!acquired_media_release.minor?) %>" data-ujs-target="guardian-fields"> + <%= card_field_set_tag t(".guardian_info.heading") do %> +
+ <%= form.text_field :guardian_first_name, required: acquired_media_release.minor?, wrapper_class: "col-sm-3" %> + <%= form.text_field :guardian_last_name, required: acquired_media_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" %> +
+ <%= render "shared/address_fields", form: form, subject: "guardian" %> + <% end %> + + <%= card_field_set_tag t(".guardian_2_info.heading") do %> +
+ <%= 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" %> + <%= form.text_field :guardian_2_email, wrapper_class: "col-sm-6" %> +
+ <%= render "shared/address_fields", form: form, subject: "guardian_2" %> + <% end %> +
<% end %>
@@ -19,6 +45,44 @@ For optimal accuracy, please ensure video file names and photo file names match the source file name in the editing sequence. <%= render "shared/file_infos_dropzone", form: form, releasable: acquired_media_release %> + +
!acquired_media_release.minor?) %>" data-ujs-target="guardian-fields"> +
+
+

<%= t(".photos.guardian_photo.heading") %>

+
+
+ No photo yet +
+
+ <% if acquired_media_release.guardian_photo.attached? %> + <%= javascript_tag nonce: true do %> + App.PhotoPreview.set("#guardian-photo-preview", "<%= url_for(acquired_media_release.guardian_photo.variant(auto_orient: true, resize: '200x200')) %>"); + <% end %> + <% end %> +
+ <%= form.hidden_field :guardian_photo, value: form.object.guardian_photo.signed_id if acquired_media_release.guardian_photo.attached?%> + <%= form.file_field :guardian_photo, hide_label: true, data: { ujs_target: "guardian-photo-input" }, help: "PNG or JPG only", accept: acquired_media_release.class.face_photo_acceptable_content_types.join(",") %> +
+ +

<%= t(".photos.guardian_2_photo.heading") %>

+
+
+ No photo yet +
+
+ <% if acquired_media_release.guardian_2_photo.attached? %> + <%= javascript_tag nonce: true do %> + App.PhotoPreview.set("#guardian-2-photo-preview", "<%= url_for(acquired_media_release.guardian_2_photo.variant(auto_orient: true, resize: '200x200')) %>"); + <% end %> + <% end %> +
+ <%= form.hidden_field :guardian_2_photo, value: form.object.guardian_2_photo.signed_id if acquired_media_release.guardian_2_photo.attached?%> + <%= form.file_field :guardian_2_photo, hide_label: true, data: { ujs_target: "guardian-2-photo-input" }, help: "PNG or JPG only", accept: acquired_media_release.class.face_photo_acceptable_content_types.join(",") %> +
+
+
+
<% end %>
diff --git a/app/views/contract_templates/_form.html.erb b/app/views/contract_templates/_form.html.erb index 15d37ff..5871713 100644 --- a/app/views/contract_templates/_form.html.erb +++ b/app/views/contract_templates/_form.html.erb @@ -2,7 +2,7 @@ <%= field_set_tag content_tag(:span, t(".release_info.heading"), class: "h6 text-muted text-uppercase") do %>
<%= form.text_field :name, wrapper_class: "col-sm-6" %> - <%= form.select :release_type, options_for_release_type_select(project, @release_type), { wrapper_class: "col-sm-6" }, data: { toggle: "collapse-select", target_show_values_mapping: { "#guardian_clause": %w(appearance talent misc medical), "#fee_field": %w(appearance talent location material acquired_media), "#exploitable_rights_fields": %w(appearance talent location material acquired_media), "#custom_fields": %w(medical misc), "#amendment_clause": %w(location) } }, class: "form-control custom-select" %> + <%= form.select :release_type, options_for_release_type_select(project, @release_type), { wrapper_class: "col-sm-6" }, data: { toggle: "collapse-select", target_show_values_mapping: { "#guardian_clause": %w(acquired_media appearance talent misc medical), "#fee_field": %w(appearance talent location material acquired_media), "#exploitable_rights_fields": %w(appearance talent location material acquired_media), "#custom_fields": %w(medical misc), "#amendment_clause": %w(location) } }, class: "form-control custom-select" %>
<%= form.radio_button :accessibility, :public_template, label: "Public", wrapper_class: "mr-3" %> diff --git a/app/views/public/acquired_media_releases/new.html.erb b/app/views/public/acquired_media_releases/new.html.erb index f8297fc..9730f2e 100644 --- a/app/views/public/acquired_media_releases/new.html.erb +++ b/app/views/public/acquired_media_releases/new.html.erb @@ -13,6 +13,17 @@
+ <% unless @contract_template.guardian_clause.blank? %> + <%= form.form_group :minor do %> + <%= form.check_box :minor, label: t("helpers.label.appearance_release.minor"), data: { behavior: "update-required-status", target: "[data-ujs-target=guardian-fields]", toggle: "collapse" } %> + <% end %> + + <%= card_field_set_tag t(".guardian_clause.heading") do %> +

<%= @contract_template.guardian_clause %>

+ <% end %> +
+ <% end %> + <%= card_field_set_tag t(".acquired_media_info.heading") do %>
<%= form.text_field :name, required: true, wrapper_class: "col-12" %> @@ -49,6 +60,91 @@
+ <% unless @contract_template.guardian_clause.blank? %> +
!@acquired_media_release.minor?) %>" data-ujs-target="guardian-fields"> + <%= card_field_set_tag t(".guardian_info.heading") do %> +
+ <%= form.text_field :guardian_first_name, required: @acquired_media_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %> + <%= form.text_field :guardian_last_name, required: @acquired_media_release.minor?, wrapper_class: "col-sm-3", data: { required_tag: "guardian" } %> + <%= form.phone_field :guardian_phone, required: @acquired_media_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %> + <%= form.text_field :guardian_email, required: @acquired_media_release.minor?, wrapper_class: "col-sm-6", data: { required_tag: "guardian" } %> +
+ <%= render "shared/address_fields", form: form, subject: "guardian", required: @acquired_media_release.minor?, data: { required_tag: "guardian" } %> + <% end %> + +
+ + <%= card_field_set_tag t(".guardian_photo.heading") do %> +
<%= t ".guardian_photo.instructions" %>
+
+
+
+ <%= t ".photo.no_photo" %> +
+
+
+ <% if @acquired_media_release.guardian_photo.attached? %> + <%= javascript_tag nonce: true do %> + App.PhotoPreview.set("[data-behavior=guardian-photo-preview]", "<%= url_for(@acquired_media_release.guardian_photo.variant(auto_orient: true, resize: '200x200')) %>"); + <% end %> + <% end %> +
+ <%= form.hidden_field :guardian_photo, value: form.object.guardian_photo.signed_id if @acquired_media_release.guardian_photo.attached? %> + <%= form.file_field :guardian_photo, required: @acquired_media_release.minor?, hide_label: true, data: { ujs_target: "guardian-photo-input" }, accept: @acquired_media_release.class.face_photo_acceptable_content_types.join(","), direct_upload: true %> +
+ <%= button_tag t(".photo.take_photo"), type: "button", class: "btn btn-lg btn-primary take-photo-button", data: { behavior: "trigger-click", target: "[data-ujs-target=guardian-photo-input]" } %> +
+

+ <%= t ".photo.warning" %> +

+
+ <% end %> + +
+ + <%= card_field_set_tag t(".guardian_2_info.heading") do %> +
+ <%= 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" %> + <%= form.text_field :guardian_2_email, wrapper_class: "col-sm-6" %> +
+ <%= render "shared/address_fields", form: form, subject: "guardian_2" %> + <% end %> + +
+ + <%= card_field_set_tag t(".guardian_2_photo.heading") do %> +
<%= t ".guardian_2_photo.instructions" %>
+
+
+
+ <%= t ".photo.no_photo" %> +
+
+
+ <% if @acquired_media_release.guardian_2_photo.attached? %> + <%= javascript_tag nonce: true do %> + App.PhotoPreview.set("[data-behavior=guardian-photo-preview]", "<%= url_for(@acquired_media_release.guardian_2_photo.variant(auto_orient: true, resize: '200x200')) %>"); + <% end %> + <% end %> +
+ <%= form.hidden_field :guardian_2_photo, value: form.object.guardian_2_photo.signed_id if @acquired_media_release.guardian_2_photo.attached? %> + <%= form.file_field :guardian_2_photo, hide_label: true, data: { ujs_target: "guardian-2-photo-input" }, accept: @acquired_media_release.class.face_photo_acceptable_content_types.join(","), direct_upload: true %> +
+ <%= button_tag t(".photo.take_photo"), type: "button", class: "btn btn-lg btn-primary take-photo-button", data: { behavior: "trigger-click", target: "[data-ujs-target=guardian-2-photo-input]" } %> +
+

+ <%= t ".photo.warning" %> +

+
+ <% end %> + +
+ +
+ <% end %> + <%= card_field_set_tag t(".signature.heading") do %> <%= render "shared/signature_fields", form: form, signature_legal_text: @contract_template.signature_legal_text %> <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 7363cdd..c5acb94 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -46,6 +46,15 @@ en: heading: 3 of 3 Contract & Exploitable Rights files: heading: 2 of 3 Files + guardian_2_info: + heading: Guardian Information (if company requires) + guardian_info: + heading: Guardian Information + photos: + guardian_2_photo: + heading: Second Guardian Photo + guardian_photo: + heading: Guardian Photo index: actions: new: Import Release @@ -436,6 +445,23 @@ en: label: acquired_media_release: description: Description of property + guardian_2_address_city: Guardian 2 city + guardian_2_address_country: Guardian 2 country + guardian_2_address_state: Guardian 2 state + guardian_2_address_street1: Guardian 2 address + guardian_2_address_street2: Guardian 2 address (Line 2) + guardian_2_address_zip: Guardian 2 zip code + guardian_2_email: Guardian 2 email + guardian_2_first_name: Guardian 2 first name + guardian_2_last_name: Guardian 2 last name + guardian_2_phone: Guardian 2 phone + 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 + minor: Is the person a minor? name: Name of property person_address: Address person_address_city: City @@ -1042,10 +1068,28 @@ en: cancel: Cancel files: heading: File Information + guardian_2_info: + heading: Second Guardian Information (if company requires) + 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: + heading: Guardian Information + guardian_photo: + heading: Guardian Photo + instructions: > + Lastly, it's time for 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! legal: heading: Legal personal_info: heading: Licensor/Owner Contact Information + photo: + no_photo: No photo yet + take_photo: Take Photo + warning: If your photo appears sideways, it will be autocorrected when you submit your release. signature: heading: Signature amendments: diff --git a/config/locales/es.yml b/config/locales/es.yml index a4a4688..46f8fce 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -2,6 +2,16 @@ es: acquired_media_releases: acquired_media_release: no_media: No Media (ES) + form: + guardian_2_info: + heading: Guardian Information (if company requires) [ES] + guardian_info: + heading: Guardian Information (ES) + photos: + guardian_2_photo: + heading: Second Guardian Photo + guardian_photo: + heading: Guardian Photo index: table_headers: file_infos_count: No. Files (ES) @@ -222,6 +232,26 @@ es: guardian_clause: Leave blank if not required for this contract (ES) signature_legal_text: Leave blank if not required for this contract (ES) label: + acquired_media_release: + guardian_2_address_city: Guardian 2 city (ES) + guardian_2_address_country: Guardian 2 country (ES) + guardian_2_address_state: Guardian 2 state (ES) + guardian_2_address_street1: Guardian 2 address (ES) + guardian_2_address_street2: Guardian 2 address (Line 2) (ES) + guardian_2_address_zip: Guardian 2 zip code (ES) + guardian_2_email: Guardian 2 email (ES) + guardian_2_first_name: Guardian 2 first name (ES) + guardian_2_last_name: Guardian 2 last name (ES) + guardian_2_phone: Guardian 2 phone (ES) + 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) + guardian_name: Nómbre del tutor legal + guardian_phone: Número de teléfono del tutor legal + minor: El firmante es un menor appearance_release: guardian_2_address_city: Guardian 2 city (ES) guardian_2_address_country: Guardian 2 country (ES) @@ -401,6 +431,26 @@ es: signed_at: Date Signed (ES) tags: Tags (ES) public: + acquired_media_releases: + new: + guardian_2_info: + heading: Second Guardian Information (if company requires) [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_info: + heading: Guardian Information (ES) + guardian_photo: + heading: Guardian Photo (ES) + instructions: > + (ES) Lastly, it's time for 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) + photo: + no_photo: No photo yet (ES) + take_photo: Take Photo (ES) + warning: If your photo appears sideways, it will be autocorrected when you submit your release. (ES) amendments: create: amendment_already_signed_message: Release amendment is already signed! (ES) diff --git a/db/migrate/20200725231419_add_guardians_fields_to_acquired_media_releases.rb b/db/migrate/20200725231419_add_guardians_fields_to_acquired_media_releases.rb new file mode 100644 index 0000000..9cf38e3 --- /dev/null +++ b/db/migrate/20200725231419_add_guardians_fields_to_acquired_media_releases.rb @@ -0,0 +1,25 @@ +class AddGuardiansFieldsToAcquiredMediaReleases < ActiveRecord::Migration[6.0] + def change + add_column :acquired_media_releases, :minor, :boolean, default: false + add_column :acquired_media_releases, :guardian_first_name, :string + add_column :acquired_media_releases, :guardian_last_name, :string + add_column :acquired_media_releases, :guardian_email, :string + add_column :acquired_media_releases, :guardian_phone, :string + add_column :acquired_media_releases, :guardian_address_street1, :string + add_column :acquired_media_releases, :guardian_address_street2, :string + add_column :acquired_media_releases, :guardian_address_city, :string + add_column :acquired_media_releases, :guardian_address_state, :string + add_column :acquired_media_releases, :guardian_address_zip, :string + add_column :acquired_media_releases, :guardian_address_country, :string + add_column :acquired_media_releases, :guardian_2_first_name, :string + add_column :acquired_media_releases, :guardian_2_last_name, :string + add_column :acquired_media_releases, :guardian_2_email, :string + add_column :acquired_media_releases, :guardian_2_phone, :string + add_column :acquired_media_releases, :guardian_2_address_street1, :string + add_column :acquired_media_releases, :guardian_2_address_street2, :string + add_column :acquired_media_releases, :guardian_2_address_city, :string + add_column :acquired_media_releases, :guardian_2_address_state, :string + add_column :acquired_media_releases, :guardian_2_address_zip, :string + add_column :acquired_media_releases, :guardian_2_address_country, :string + end +end \ No newline at end of file