Skip to content
This repository was archived by the owner on Sep 29, 2020. It is now read-only.

Commit c2a812c

Browse files
committed
Show correct referalls for month and year
1 parent 67b75e3 commit c2a812c

File tree

9 files changed

+21
-18
lines changed

9 files changed

+21
-18
lines changed

app/controllers/partners_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ def index
55
@date = params[:date]&.to_date || Date.today
66

77
@usage ||= Referral.joins(:partner).used
8-
.by_month(@date.month, col: 'referrals.created_at')
8+
.by_month(@date, col: 'referrals.created_at')
99
.group('partners.slug').size
1010

1111
@partners = Partner.active.order(:name)

app/controllers/referrals_controller.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ class ReferralsController < ApplicationController
55

66
def new
77
if @partner
8-
@referrals = @partner.referrals.by_month(@date.month)
8+
@referrals = @partner.referrals.by_month(@date)
99
@used_referrals = @referrals.used
1010
@total_available = @partner.max_monthly_referrals - @used_referrals.size
1111
else
@@ -14,7 +14,7 @@ def new
1414
end
1515

1616
def index
17-
@referrals = Referral.order(created_at: :desc).by_month(@date.month)
17+
@referrals = Referral.order(created_at: :desc).by_month(@date)
1818
end
1919

2020
def show

app/controllers/webhooks_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def new_response
1616
'referrals',
1717
partner: partner.slug,
1818
max_referrals: partner.max_monthly_referrals,
19-
used_referrals: partner.referrals.used.by_month(Time.zone.now.month).size
19+
used_referrals: partner.referrals.used.by_month(Time.zone.now).size
2020
)
2121
head :ok
2222
else

app/models/partner.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def self.active
1818
end
1919

2020
def can_accept_referrals?
21-
referrals.used.by_month(Time.zone.now.month).size < max_monthly_referrals
21+
referrals.used.by_month(Time.zone.now).size < max_monthly_referrals
2222
end
2323

2424
def name=(str)

app/models/referral.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@ class Referral < ApplicationRecord
99
validates :last_state, inclusion: { in: STATES }
1010
validates :original_response, presence: true
1111

12-
def self.by_month(month, col: 'created_at')
13-
where("extract(month from #{col}) = ?", month)
12+
def self.by_month(date, col: 'created_at')
13+
raise 'Argument `date` does not respond to `:strftime` method' unless date.respond_to?(:strftime)
14+
15+
where("extract(month from #{col}) = ? AND extract(year from #{col}) = ?", date.month, date.year)
1416
end
1517

1618
def self.used
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<div class="h2 bold center">
2-
<% if date.month < Date.today.month %>
2+
<% if date < Date.today %>
33
<%= link_to('❮', send(path, date: date + 1.month), class: 'yellow no-decoration') %>
44
<% else %>
55
<a class="grey no-decoration"></a>
66
<% end %>
77
<span class="px15">
8-
<%= "#{Date::MONTHNAMES[date.month]} #{Time.zone.now.year}" %>
8+
<%= "#{Date::MONTHNAMES[date.month]} #{date.year}" %>
99
</span>
1010
<%= link_to('❯', send(path, date: date - 1.month), class: 'yellow no-decoration', data: { turbolinks: false }) %>
1111
</div>

app/views/partners/index.html.erb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<h1 class="bold maroon mt50 mb40">
2-
<%= "#{Date::MONTHNAMES[@date.month]} Referrals #{Time.zone.now.year}" %>
2+
<%= "#{Date::MONTHNAMES[@date.month]} Referrals #{@date.year}" %>
33
</h1>
44

55
<div class="row with-gutter wrap">
66

77
<div class="fr2 mb20">
88
<h2 class="mb20"><br/></h2>
99
<div class="lg">
10-
All referrals (<%= Referral.by_month(@date.month).size %> in total)
10+
All referrals (<%= Referral.by_month(@date).size %> in total)
1111
</div>
1212
</div>
1313

test/models/referral_test.rb

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,17 @@ class ReferralTest < ActiveSupport::TestCase
1313

1414
test 'self#by_month' do
1515
@subject.save!
16-
query = @subject.class.by_month(Time.zone.now.month)
16+
query = @subject.class.by_month(Date.today)
1717
assert_equal(1, query.size)
1818
end
1919

20+
test 'self#by_month raise' do
21+
@subject.save!
22+
assert_raises 'Argument `date` does not respond to `:strftime` method' do
23+
@subject.class.by_month(nil)
24+
end
25+
end
26+
2027
test 'self#used' do
2128
@subject.save!
2229
create(:referral, last_state: 'accepted', partner: @subject.partner)

test/system/partner_referral_test.rb

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,6 @@ class PartnerReferralTest < ApplicationSystemTestCase
1818

1919
test 'make Referral' do
2020
visit new_partner_referral_path(@partner)
21-
22-
page.within_frame(find('iframe')) do
23-
find('.general').click
24-
find('.submit', visible: false).click
25-
end
26-
2721
send_fake_webhook_request(@partner)
2822

2923
within("##{@partner.slug}-available-referrals") { assert_text('9') }

0 commit comments

Comments
 (0)