Skip to content

Commit

Permalink
Merge pull request #824 from rubyforgood/partner-status-emails-seeds
Browse files Browse the repository at this point in the history
Make all partners require an invite to join partnerbase. Added/change…
  • Loading branch information
seanmarcia authored Apr 28, 2019
2 parents eca5dc7 + 5384a20 commit bb4a8bc
Show file tree
Hide file tree
Showing 9 changed files with 23 additions and 26 deletions.
3 changes: 1 addition & 2 deletions app/controllers/partners_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ def index
def create
@partner = current_organization.partners.new(partner_params)
if @partner.save
@partner.register_on_partnerbase
redirect_to partners_path, notice: "Partner added and invited!"
redirect_to partners_path, notice: "Partner added!"
else
flash[:error] = "Something didn't work quite right -- try again?"
render action: :new
Expand Down
2 changes: 1 addition & 1 deletion app/jobs/update_diaper_partner_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ def perform(partner_id)
@response = DiaperPartnerClient.post(@partner.attributes) if Flipper.enabled?(:email_active)

if @response&.value == Net::HTTPSuccess
@partner.pending!
@partner.invited!
else
@partner.error!
end
Expand Down
2 changes: 1 addition & 1 deletion app/models/partner.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
class Partner < ApplicationRecord
require "csv"

enum status: [:pending, :awaiting_review, :approved, :error]
enum status: [:uninvited, :invited, :awaiting_review, :approved, :error]

belongs_to :organization
has_many :distributions, dependent: :destroy
Expand Down
17 changes: 10 additions & 7 deletions app/views/partners/_partner_row.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,21 @@
<td><%= link_to partner_row.email, "mailto:#{partner_row.email}" %></td>
<td>
<% case status %>
<% when "pending" %>
<%= link_to approve_partner_partner_path(partner_row), class: "btn btn-xs bg-maroon" do %><%= status.humanize %><% end %>
<% when "uninvited" %>
<button class="btn btn-xs bg-teal">Uninvited</button>
<% when "invited" %>
<%= view_button_to approve_partner_partner_path(partner_row), { text: "#{status.humanize}", icon: "check" } %>

<% when "awaiting_review" %>
<%= link_to approve_partner_partner_path(partner_row), class: "btn btn-xs bg-orange" do %><%= status.humanize %><% end %>
<%= view_button_to approve_partner_partner_path(partner_row), { text: "#{status.humanize}", icon: "check", type: "warning" } %>
<% when "approved" %>
<%= link_to approve_partner_partner_path(partner_row), class: "btn btn-xs bg-olive" do %><%= status.humanize %><% end %>
<%= view_button_to approve_partner_partner_path(partner_row), { text: "#{status.humanize}", icon: "check", type: "success" } %>
<% else %>
<span class="label label-teal">Errored</span>
<% end %>
</td>
<!-- <td><%== (rand < 0.7) ? '<span class="label label-success">Approved</span>' :
'<span class="label label-warning">In Progress</span>' %></td> -->
<td class="text-right">
<%= invite_button_to(invite_partner_path(partner_row), confirm: "Send an invitation to #{partner_row.name}?") unless partner_row.approved? %>
<%= 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? %>
<%= view_button_to partner_path(partner_row) %>
<%= edit_button_to edit_partner_path(partner_row) %>
<%= delete_button_to partner_path(partner_row), { confirm: confirm_delete_msg(partner_row.name) } %>
Expand Down
2 changes: 1 addition & 1 deletion app/views/partners/new.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

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

<%= render partial: "form", object: @partner, locals: { submit_btn_options: { text: "Send Invitation", icon: "envelope"} } %>
<%= render partial: "form", object: @partner, locals: { submit_btn_options: { text: "Add Partner Agency" } } %>
</div>
</div>
<!-- /.box -->
Expand Down
10 changes: 5 additions & 5 deletions db/seeds.rb
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,10 @@
Partner.find_or_create_by!(name: "Pawnee Parent Service", email: "[email protected]", status: :approved) do |partner|
partner.organization = pdx_org
end
Partner.find_or_create_by!(name: "Pawnee Homeless Shelter", email: "[email protected]") do |partner|
Partner.find_or_create_by!(name: "Pawnee Homeless Shelter", email: "[email protected]", status: :invited) do |partner|
partner.organization = pdx_org
end
Partner.find_or_create_by!(name: "Pawnee Pregnancy Center", email: "[email protected]") do |partner|
Partner.find_or_create_by!(name: "Pawnee Pregnancy Center", email: "[email protected]", status: :invited) do |partner|
partner.organization = pdx_org
end

Expand Down Expand Up @@ -221,9 +221,9 @@ def random_record(klass)
Request.create(
partner: random_record(Partner),
organization: random_record(Organization),
request_items: { k_size5: 3,
k_size6: 2
},
request_items: [{ "item_id" => Item.all.pluck(:id).sample, "quantity" => 3},
{ "item_id" => Item.all.pluck(:id).sample, "quantity" => 2}
],
comments: "Urgent",
status: status
)
Expand Down
5 changes: 0 additions & 5 deletions spec/controllers/partners_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,6 @@
it "redirects to #index" do
expect(subject).to redirect_to(partners_path)
end

it "send partner invitation" do
expect(UpdateDiaperPartnerJob).to receive(:perform_async)
subject
end
end

context "unsuccessful save due to empty params" do
Expand Down
6 changes: 3 additions & 3 deletions spec/features/partner_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@
visit url_prefix + "/partners/new"
fill_in "Name", with: "Frank"
fill_in "E-mail", with: "[email protected]"
click_button "Send Invitation"
click_button "Add Partner Agency"

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

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

expect(page.find(".alert")).to have_content "didn't work"
end
Expand Down Expand Up @@ -66,7 +66,7 @@

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

invite_alert.accept
expect(page.find(".alert")).to have_content "invited!"
Expand Down
2 changes: 1 addition & 1 deletion spec/jobs/update_diaper_partner_job_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
UpdateDiaperPartnerJob.perform_async(@partner.id)
@partner.reload
end
expect(@partner.status).to eq("pending")
expect(@partner.status).to eq("uninvited")
end
end
end
Expand Down

0 comments on commit bb4a8bc

Please sign in to comment.