Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

キャンペーン名を動的に表示する #4228

Merged
merged 11 commits into from
Mar 10, 2022
24 changes: 16 additions & 8 deletions app/models/campaign.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,25 @@ class Campaign < ApplicationRecord
validate :end_at_be_greater_than_start_at
end

def self.recently_campaign
campaign = Campaign.order(end_at: :desc).first
return if campaign.nil?
class << self
def recently_campaign
campaign = Campaign.order(end_at: :desc).first
return if campaign.nil?

campaign.start_at..campaign.end_at
end
campaign.start_at..campaign.end_at
end

def today_campaign?
return if recently_campaign.nil?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

このifは不要かもと思いました〜。


recently_campaign.cover?(Time.current)
end

def self.today_is_campaign?
return if recently_campaign.nil?
def current_title
return unless today_campaign?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

メソッド名素晴らしいです〜!

これってメソッドの定義はどこでかわっていますか?(今回のdiffの中に見当たらないので)


recently_campaign.cover?(Time.current)
Campaign.order(end_at: :desc).first.title
end
end

private
Expand Down
2 changes: 1 addition & 1 deletion app/views/card/_notice.html.slim
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.form-notice
p
| クレジットカード登録日を含む
= Campaign.today_is_campaign? ? '7日間' : '3日間'
= Campaign.today_campaign? ? '7日間' : '3日間'
| はお試し期間です。お試し期間の間に退会をすれば課金されることはありません
- if current_user
| (#{link_to '退会はこちらから', new_retirement_path})。
Expand Down
2 changes: 1 addition & 1 deletion app/views/home/_welcome_message.html.slim
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
| この度はフィヨルドブートキャンプに入会いただきありがとうございます。
br
| 入会から
= Campaign.today_is_campaign? ? '7日間(168時間)' : '3日間(72時間)'
= Campaign.today_campaign? ? '7日間(168時間)' : '3日間(72時間)'
/ Issue3910の段階では、ユーザーに対して「現在お試し延長が適用中か?」という情報は持たせていないので、単純にサイトがキャンペーン中かどうかで分岐しています。
/ 上記の理由は、お試しの日数が3日間から◯日間に増えるという部分が適用外となっているからです。
/ そのため、ユーザーにとってお試し延長が適用されている期間であっても、キャンペーン自体の期間が終了すると、表示が3日間に戻る仕様になっています。
Expand Down
2 changes: 1 addition & 1 deletion app/views/users/new.html.slim
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
.a-card
header.auth-form__header
h1.auth-form__title = title
= '現在、お試し期間の延長が適用されています' if Campaign.today_is_campaign?
= '現在、お試し期間の延長が適用されています' if Campaign.today_campaign?
.auth-form__body
= render 'form', from: :new, url: users_path, user: @user
footer.auth-form__footer
Expand Down
2 changes: 1 addition & 1 deletion app/views/welcome/_campaign.html.slim
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
section.welcome-section.is-gw
.container.is-xl
h2.welcome-section__title
| お正月のプログラミング<br>学習応援キャンペーン
= Campaign.current_title
h3.welcome-section__sub-title
| お試し期間が倍以上に延長!!
.welcome-section__description
Expand Down
2 changes: 1 addition & 1 deletion app/views/welcome/index.html.slim
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

= render 'welcome/main_visual'
.welcome-sections
= render 'welcome/campaign' if Campaign.today_is_campaign?
= render 'welcome/campaign' if Campaign.today_campaign?
= render 'welcome/about'
= render 'welcome/pricing'
= render 'welcome/tutorials'
Expand Down
20 changes: 10 additions & 10 deletions app/views/welcome/pricing.html.slim
Original file line number Diff line number Diff line change
Expand Up @@ -29,16 +29,16 @@
h2.welcome-small-sections__title
= image_tag 'pjord-face.svg',
class: 'welcome-small-sections__title-icon'
= Campaign.today_is_campaign? ? 'お試し延長中につき、7日間' : '3日間'
= Campaign.today_campaign? ? 'お試し延長中につき、7日間' : '3日間'
| のお試し期間
.welcome-section__description
p
| 月額29,800円は決して安い金額ではありません。
| 自分は本当にフィヨルドブートキャンプを使うべきかを判断するために
= Campaign.today_is_campaign? ? '7日間' : '3日間'
= Campaign.today_campaign? ? '7日間' : '3日間'
| のお試し期間を用意しています。
| その
= Campaign.today_is_campaign? ? '7日間' : '3日間'
= Campaign.today_campaign? ? '7日間' : '3日間'
| 、がっつりフィヨルドブートキャンプを見たり使ったりして判断してください。
| お試し期間の間に退会をしないと料金が請求されてしまうのでご注意ください。
.welcome-small-section
Expand All @@ -49,20 +49,20 @@
.welcome-section__description
p
| 厳密にはお試し期間は
= Campaign.today_is_campaign? ? '168時間(7日間)' : '72時間(3日間)'
= Campaign.today_campaign? ? '168時間(7日間)' : '72時間(3日間)'
| になります。
| 例えば7月20日10時10分10秒にフィヨルドブートキャンプを利用開始したとすると、
| そこから
= Campaign.today_is_campaign? ? '7日後の7月27日' : '3日後の7月23日'
= Campaign.today_campaign? ? '7日後の7月27日' : '3日後の7月23日'
| 10時10分9秒がお試し期間終了のタイミングになります。
| その後7月
= Campaign.today_is_campaign? ? '27' : '23'
= Campaign.today_campaign? ? '27' : '23'
| 日10時10分10秒に最初の1ヶ月分の料金が引き落とされます。
table.welcome-trial-period-table.is-hidden-sm-down
tr
th 7月20日10時10分10秒
th.trial_end = Campaign.today_is_campaign? ? '7月27日10時10分9秒' : '7月23日10時10分9秒'
th = Campaign.today_is_campaign? ? '7月27日10時10分10秒' : '7月23日10時10分10秒'
th.trial_end = Campaign.today_campaign? ? '7月27日10時10分9秒' : '7月23日10時10分9秒'
th = Campaign.today_campaign? ? '7月27日10時10分10秒' : '7月23日10時10分10秒'
tr
td お試し期間
td.trial_end
Expand All @@ -76,11 +76,11 @@
th 7月20日10時10分10秒
td お試し期間
tr
th.trial_end = Campaign.today_is_campaign? ? '7月27日10時10分9秒' : '7月23日10時10分9秒'
th.trial_end = Campaign.today_campaign? ? '7月27日10時10分9秒' : '7月23日10時10分9秒'
td.trial_end
| お試し期間終了時刻
br
| 無料退会期限
tr
th = Campaign.today_is_campaign? ? '7月27日10時10分10秒' : '7月23日10時10分10秒'
th = Campaign.today_campaign? ? '7月27日10時10分10秒' : '7月23日10時10分10秒'
td 初回引き落とし
2 changes: 1 addition & 1 deletion test/models/campaign_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ class CampaignTest < ActiveSupport::TestCase

test 'today is campaign?' do
campaign = campaigns(:campaign1)
assert_equal Campaign.today_is_campaign?, (campaign.start_at..campaign.end_at).cover?(Time.current)
assert_equal Campaign.today_campaign?, (campaign.start_at..campaign.end_at).cover?(Time.current)
end
end