Skip to content

Commit bb4a8bc

Browse files
authored
Merge pull request #824 from rubyforgood/partner-status-emails-seeds
Make all partners require an invite to join partnerbase. Added/change…
2 parents eca5dc7 + 5384a20 commit bb4a8bc

File tree

9 files changed

+23
-26
lines changed

9 files changed

+23
-26
lines changed

app/controllers/partners_controller.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ def index
88
def create
99
@partner = current_organization.partners.new(partner_params)
1010
if @partner.save
11-
@partner.register_on_partnerbase
12-
redirect_to partners_path, notice: "Partner added and invited!"
11+
redirect_to partners_path, notice: "Partner added!"
1312
else
1413
flash[:error] = "Something didn't work quite right -- try again?"
1514
render action: :new

app/jobs/update_diaper_partner_job.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ def perform(partner_id)
77
@response = DiaperPartnerClient.post(@partner.attributes) if Flipper.enabled?(:email_active)
88

99
if @response&.value == Net::HTTPSuccess
10-
@partner.pending!
10+
@partner.invited!
1111
else
1212
@partner.error!
1313
end

app/models/partner.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
class Partner < ApplicationRecord
1515
require "csv"
1616

17-
enum status: [:pending, :awaiting_review, :approved, :error]
17+
enum status: [:uninvited, :invited, :awaiting_review, :approved, :error]
1818

1919
belongs_to :organization
2020
has_many :distributions, dependent: :destroy

app/views/partners/_partner_row.html.erb

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,21 @@
44
<td><%= link_to partner_row.email, "mailto:#{partner_row.email}" %></td>
55
<td>
66
<% case status %>
7-
<% when "pending" %>
8-
<%= link_to approve_partner_partner_path(partner_row), class: "btn btn-xs bg-maroon" do %><%= status.humanize %><% end %>
7+
<% when "uninvited" %>
8+
<button class="btn btn-xs bg-teal">Uninvited</button>
9+
<% when "invited" %>
10+
<%= view_button_to approve_partner_partner_path(partner_row), { text: "#{status.humanize}", icon: "check" } %>
11+
912
<% when "awaiting_review" %>
10-
<%= link_to approve_partner_partner_path(partner_row), class: "btn btn-xs bg-orange" do %><%= status.humanize %><% end %>
13+
<%= view_button_to approve_partner_partner_path(partner_row), { text: "#{status.humanize}", icon: "check", type: "warning" } %>
1114
<% when "approved" %>
12-
<%= link_to approve_partner_partner_path(partner_row), class: "btn btn-xs bg-olive" do %><%= status.humanize %><% end %>
15+
<%= view_button_to approve_partner_partner_path(partner_row), { text: "#{status.humanize}", icon: "check", type: "success" } %>
16+
<% else %>
17+
<span class="label label-teal">Errored</span>
1318
<% end %>
1419
</td>
15-
<!-- <td><%== (rand < 0.7) ? '<span class="label label-success">Approved</span>' :
16-
'<span class="label label-warning">In Progress</span>' %></td> -->
1720
<td class="text-right">
18-
<%= invite_button_to(invite_partner_path(partner_row), confirm: "Send an invitation to #{partner_row.name}?") unless partner_row.approved? %>
21+
<%= invite_button_to(invite_partner_path(partner_row), confirm: "Send an invitation to #{partner_row.name} to begin using the partner application?") unless !partner_row.uninvited? %>
1922
<%= view_button_to partner_path(partner_row) %>
2023
<%= edit_button_to edit_partner_path(partner_row) %>
2124
<%= delete_button_to partner_path(partner_row), { confirm: confirm_delete_msg(partner_row.name) } %>

app/views/partners/new.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
<h1 class="medium-offset-3 medium-6"></h1>
2828

29-
<%= render partial: "form", object: @partner, locals: { submit_btn_options: { text: "Send Invitation", icon: "envelope"} } %>
29+
<%= render partial: "form", object: @partner, locals: { submit_btn_options: { text: "Add Partner Agency" } } %>
3030
</div>
3131
</div>
3232
<!-- /.box -->

db/seeds.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,10 @@
7474
Partner.find_or_create_by!(name: "Pawnee Parent Service", email: "[email protected]", status: :approved) do |partner|
7575
partner.organization = pdx_org
7676
end
77-
Partner.find_or_create_by!(name: "Pawnee Homeless Shelter", email: "[email protected]") do |partner|
77+
Partner.find_or_create_by!(name: "Pawnee Homeless Shelter", email: "[email protected]", status: :invited) do |partner|
7878
partner.organization = pdx_org
7979
end
80-
Partner.find_or_create_by!(name: "Pawnee Pregnancy Center", email: "[email protected]") do |partner|
80+
Partner.find_or_create_by!(name: "Pawnee Pregnancy Center", email: "[email protected]", status: :invited) do |partner|
8181
partner.organization = pdx_org
8282
end
8383

@@ -221,9 +221,9 @@ def random_record(klass)
221221
Request.create(
222222
partner: random_record(Partner),
223223
organization: random_record(Organization),
224-
request_items: { k_size5: 3,
225-
k_size6: 2
226-
},
224+
request_items: [{ "item_id" => Item.all.pluck(:id).sample, "quantity" => 3},
225+
{ "item_id" => Item.all.pluck(:id).sample, "quantity" => 2}
226+
],
227227
comments: "Urgent",
228228
status: status
229229
)

spec/controllers/partners_controller_spec.rb

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,6 @@
5252
it "redirects to #index" do
5353
expect(subject).to redirect_to(partners_path)
5454
end
55-
56-
it "send partner invitation" do
57-
expect(UpdateDiaperPartnerJob).to receive(:perform_async)
58-
subject
59-
end
6055
end
6156

6257
context "unsuccessful save due to empty params" do

spec/features/partner_spec.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@
2828
visit url_prefix + "/partners/new"
2929
fill_in "Name", with: "Frank"
3030
fill_in "E-mail", with: "[email protected]"
31-
click_button "Send Invitation"
31+
click_button "Add Partner Agency"
3232

3333
expect(page.find(".alert")).to have_content "added"
3434
end
3535

3636
scenario "User creates a new partner with empty name" do
3737
visit url_prefix + "/partners/new"
38-
click_button "Send Invitation"
38+
click_button "Add Partner Agency"
3939

4040
expect(page.find(".alert")).to have_content "didn't work"
4141
end
@@ -66,7 +66,7 @@
6666

6767
within("table > tbody > tr:nth-child(1) > td.text-right") { click_on "Invite" }
6868
invite_alert = page.driver.browser.switch_to.alert
69-
expect(invite_alert.text).to eq("Send an invitation to #{partner.name}?")
69+
expect(invite_alert.text).to eq("Send an invitation to #{partner.name} to begin using the partner application?")
7070

7171
invite_alert.accept
7272
expect(page.find(".alert")).to have_content "invited!"

spec/jobs/update_diaper_partner_job_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
UpdateDiaperPartnerJob.perform_async(@partner.id)
1515
@partner.reload
1616
end
17-
expect(@partner.status).to eq("pending")
17+
expect(@partner.status).to eq("uninvited")
1818
end
1919
end
2020
end

0 commit comments

Comments
 (0)