Skip to content

Commit 69a76ee

Browse files
committed
kitchen sink
1 parent 6ce134c commit 69a76ee

16 files changed

+453
-50
lines changed

app/controllers/diy/base_controller.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,26 @@ def current_diy_intake
1212

1313
private
1414

15+
def require_diy_intake
16+
redirect_to diy_qualifications_path unless session[:diy_intake_id].present?
17+
end
18+
1519
def redirect_in_offseason
1620
redirect_to root_path unless open_for_diy?
1721
end
22+
23+
def track_question_answer
24+
send_mixpanel_event(event_name: "question_answered", data: tracking_data)
25+
end
26+
27+
def track_validation_error
28+
send_mixpanel_validation_error(@form.errors, tracking_data)
29+
end
30+
31+
def tracking_data
32+
return {} unless @form.class.scoped_attributes.key?(:diy_intake)
33+
34+
@form.attributes_for(:diy_intake).except(*Rails.application.config.filter_parameters)
35+
end
1836
end
1937
end

app/controllers/diy/continue_to_fsa_controller.rb

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,5 @@ def click_fsa_link
3131
end
3232
redirect_to DiySupportExperimentService.fsa_link(treatment.to_s, diy_intake.received_1099_yes?), allow_other_host: true
3333
end
34-
35-
private
36-
37-
def require_diy_intake
38-
redirect_to diy_file_yourself_path unless session[:diy_intake_id].present?
39-
end
4034
end
4135
end
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
module Diy
2+
class DiyCellPhoneNumberController < BaseController
3+
before_action :require_diy_intake
4+
5+
def edit
6+
@form = DiyNotificationPreferenceForm.new
7+
end
8+
9+
def update
10+
diy_intake = current_diy_intake
11+
form_params = params.fetch(:diy_notification_preference_form, {}).permit(*DiyCellPhoneNumberForm.attribute_names)
12+
@form = DiyCellPhoneNumberForm.new(diy_intake, form_params)
13+
if @form.valid?
14+
@form.save
15+
session[:diy_intake_id] = diy_intake.id
16+
redirect_to(diy_continue_to_fsa_path)
17+
else
18+
render :edit
19+
end
20+
end
21+
22+
private
23+
24+
def tracking_data
25+
{}
26+
end
27+
28+
def self.show?(diy_intake)
29+
diy_intake.sms_phone_number.blank? && diy_intake.sms_notification_opt_in_yes?
30+
end
31+
32+
def after_update_success
33+
if @form.diy_intake.sms_notification_opt_in_yes?
34+
ClientMessagingService.send_system_text_message(
35+
client: @form.diy_intake.client,
36+
body: I18n.t("messages.sms_opt_in")
37+
)
38+
end
39+
end
40+
end
41+
end

app/controllers/diy/diy_notification_preference_controller.rb

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
module Diy
22
class DiyNotificationPreferenceController < BaseController
3+
before_action :require_diy_intake
4+
35
def edit
46
@form = DiyNotificationPreferenceForm.new
57
end
@@ -11,10 +13,18 @@ def update
1113
if @form.valid?
1214
@form.save
1315
session[:diy_intake_id] = diy_intake.id
14-
redirect_to(diy_continue_to_fsa_path)
16+
#redirect_to(diy_continue_to_fsa_path)
17+
redirect_to(diy_diy_cell_phone_number_path)
1518
else
1619
render :edit
1720
end
1821
end
22+
23+
private
24+
25+
def tracking_data
26+
@form.attributes_for(:intake).reject { |k, _| k == :sms_phone_number }
27+
#@form.attributes_for(:diy_intake)
28+
end
1929
end
2030
end
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class DiyCellPhoneNumberForm < DiyForm
2+
set_attributes_for :diy_intake, :sms_phone_number, :sms_phone_number_confirmation
3+
before_validation :normalize_phone_numbers
4+
5+
validates :sms_phone_number, e164_phone: true
6+
validates :sms_phone_number, confirmation: true
7+
validates :sms_phone_number_confirmation, presence: true
8+
9+
def normalize_phone_numbers
10+
self.sms_phone_number = PhoneParser.normalize(sms_phone_number) if sms_phone_number.present?
11+
self.sms_phone_number_confirmation = PhoneParser.normalize(sms_phone_number_confirmation) if sms_phone_number_confirmation.present?
12+
end
13+
14+
def save
15+
@diy_intake.update(attributes_for(:diy_intake).except(:sms_phone_number_confirmation))
16+
end
17+
end

app/lib/navigation/diy_navigation.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ class DiyNavigation
66
Diy::QualificationsController,
77
Diy::FileYourselfController,
88
Diy::DiyNotificationPreferenceController,
9+
Diy::DiyCellPhoneNumberController,
10+
#Diy::DiyPhoneVerificationController,
11+
#Diy::DiyEmailAddressController,
12+
#Diy::DiyEmailAddressVerificationController,
913
Diy::ContinueToFsaController
1014
].freeze
1115
end

app/models/diy_intake.rb

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,25 @@
22
#
33
# Table name: diy_intakes
44
#
5-
# id :bigint not null, primary key
6-
# clicked_chat_with_us_at :datetime
7-
# email_address :string
8-
# email_notification_opt_in :integer default("unfilled")
9-
# filing_frequency :integer default("unfilled"), not null
10-
# locale :string
11-
# preferred_first_name :string
12-
# received_1099 :integer default("unfilled"), not null
13-
# referrer :string
14-
# sms_notification_opt_in :integer default("unfilled")
15-
# source :string
16-
# token :string
17-
# zip_code :string
18-
# created_at :datetime not null
19-
# updated_at :datetime not null
20-
# visitor_id :string
5+
# id :bigint not null, primary key
6+
# clicked_chat_with_us_at :datetime
7+
# email_address :string
8+
# email_address_verified_at :datetime
9+
# email_notification_opt_in :integer default("unfilled")
10+
# filing_frequency :integer default("unfilled"), not null
11+
# locale :string
12+
# preferred_first_name :string
13+
# received_1099 :integer default("unfilled"), not null
14+
# referrer :string
15+
# sms_notification_opt_in :integer default("unfilled")
16+
# sms_phone_number :string
17+
# sms_phone_number_verified_at :datetime
18+
# source :string
19+
# token :string
20+
# zip_code :string
21+
# created_at :datetime not null
22+
# updated_at :datetime not null
23+
# visitor_id :string
2124
#
2225
class DiyIntake < ApplicationRecord
2326
attr_accessor :email_address_confirmation
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<% content_for :page_title, t("views.questions.phone_number.title") %>
2+
3+
<section class="slab slab--white question-layout">
4+
<div class="grid">
5+
<div class="grid__item question-wrapper">
6+
<div class="main-content-inner">
7+
<%= image_tag("questions/phone-number.svg", alt: "") %>
8+
9+
<%= form_with model: @form, url: diy_diy_cell_phone_number_path, local: true, method: "put", builder: VitaMinFormBuilder, html: { class: "form-card form-card--long" } do |f| %>
10+
11+
<h1 class="h2"><%= content_for :page_title %></h1>
12+
<p class="text--help">
13+
<%=t("views.questions.phone_number.info") %>
14+
</p>
15+
16+
<div class="form-card__content">
17+
<%= f.cfa_input_field(:sms_phone_number, t("views.questions.phone_number.phone_number"), classes: ["form-width--long"]) %>
18+
<%= f.cfa_input_field(:sms_phone_number_confirmation, t("views.questions.phone_number.phone_number_confirmation"), classes: ["form-width--long"]) %>
19+
</div>
20+
21+
<%= f.continue %>
22+
23+
</div>
24+
</div>
25+
</div>
26+
</section>
27+
28+
<% end %>

app/views/diy/diy_notification_preference/edit.html.erb

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,11 @@
2828
<%= f.cfa_checkbox(:sms_notification_opt_in, t("views.questions.notification_preference.options.sms_notification_opt_in"), options: { checked_value: "yes", unchecked_value: "no", "data-follow-up": "#sms-opt-in" }) %>
2929
</div>
3030

31-
<!-- TODO add reveal widget -->
32-
<%= t('views.questions.notification_preference.reveal_header') %>
33-
<%= t('views.questions.notification_preference.below_reveal') %>
34-
3531
<p class="text--small spacing-above-25">
3632
<%= t("views.questions.notification_preference.note_html", terms_url: sms_terms_url, privacy_url: privacy_url) %>
3733
</p>
3834
</div>
3935
</div>
40-
4136
<%= f.continue %>
4237
<% end %>
4338
</div></div></div></section>

db/migrate/20260129052142_add_email_sms_notification_opt_ins_to_diy_intake.rb

Lines changed: 0 additions & 6 deletions
This file was deleted.

0 commit comments

Comments
 (0)