Browse Source

lk | redirect to new form when successfully creating a client - allow for easier bulk creation

master
Louis Knapp 7 years ago
parent
commit
a0b0fd4714
  1. 2
      app/controllers/clients_controller.rb
  2. 2
      app/views/clients/_edit_form.html.haml
  3. 11
      app/views/clients/_new_form.html.haml
  4. 2
      app/views/clients/edit.html.haml
  5. 2
      app/views/clients/new.html.haml
  6. 2
      app/views/static_pages/home.html.haml
  7. 8
      spec/controllers/clients_controller_spec.rb

2
app/controllers/clients_controller.rb

@ -16,7 +16,7 @@ class ClientsController < ApplicationController
def create
@client = Client.new(client_params)
if @client.save
redirect_to edit_client_url(@client), notice: 'Client was successfully created.'
redirect_to new_client_path, notice: 'Client was successfully created.'
else
render action: 'new'
end

2
app/views/clients/_form.html.haml → app/views/clients/_edit_form.html.haml

@ -8,4 +8,4 @@
= render 'fields', f: f
.row
.actions.col-sm-offset-2
= f.submit class: "btn btn-default"
= f.submit "Save Changes", class: "btn btn-default"

11
app/views/clients/_new_form.html.haml

@ -0,0 +1,11 @@
= form_for @client, html: {class: 'form-horizontal'} do |f|
- if @client.errors.any?
#error_explanation
%h2= pluralize(@client.errors.count, "error") + " prohibited this client from being saved:"
%ul
- @client.errors.full_messages.each do |msg|
%li= msg
= render 'fields', f: f
.row
.actions.col-sm-offset-2
= f.submit "Save And Add Another", class: "btn btn-default"

2
app/views/clients/edit.html.haml

@ -1,5 +1,5 @@
.container
%h1 Edit client
= render 'receipt_button' if @client.bike_id
= render 'form'
= render 'edit_form'
= link_to 'Back', clients_path

2
app/views/clients/new.html.haml

@ -1,4 +1,4 @@
.container
%h1 New Client
= render 'form'
= render 'new_form'
= link_to 'Back', clients_path

2
app/views/static_pages/home.html.haml

@ -11,6 +11,8 @@
%br
%h2 Freecyclery
%br
= link_to "Add Freecyclery Clients", new_client_path
%br
= link_to "Freecyclery Clients", clients_path
%br
= link_to "Freecyclery Agencies", agencies_path

8
spec/controllers/clients_controller_spec.rb

@ -8,6 +8,14 @@ describe ClientsController do
sign_in user
end
describe "POST #create" do
it "redirects to new_client_path on success" do
client_attributes = attributes_for :client
request = post :create, client: client_attributes
expect(request).to redirect_to action: :new
end
end
describe "#print_select" do
it "only assigns clients with a bike and an agency" do
client_with_bike_and_agency = create :client, bike: create(:bike), agency: create(:agency)

Loading…
Cancel
Save