mirror of
https://github.com/fspc/bike-database.git
synced 2025-04-04 10:03:22 -04:00
lk | client completion date is merged into client pickup date
This commit is contained in:
parent
ad76766402
commit
f694d8c238
@ -67,13 +67,6 @@ class BikesController < ApplicationController
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def mark_picked_up
|
|
||||||
@bike = Bike.find(params[:id])
|
|
||||||
@bike.mark_picked_up
|
|
||||||
flash[:notice] = @bike.name + ' was marked as picked up'
|
|
||||||
redirect_to action: "ready_for_pickup", controller: "freecyclery"
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
private
|
||||||
def set_bike
|
def set_bike
|
||||||
@bike = Bike.find(params[:id])
|
@bike = Bike.find(params[:id])
|
||||||
|
@ -24,7 +24,11 @@ class ClientsController < ApplicationController
|
|||||||
|
|
||||||
def update
|
def update
|
||||||
if @client.update(client_params)
|
if @client.update(client_params)
|
||||||
redirect_to edit_client_url(@client), notice: 'Client was successfully updated.'
|
notice = 'Client was successfully updated.'
|
||||||
|
unless @client.bike.update_attribute(:date_sold, @client.pickup_date)
|
||||||
|
notice = "Unable to update client's bike sale date"
|
||||||
|
end
|
||||||
|
redirect_to edit_client_url(@client), notice: notice
|
||||||
else
|
else
|
||||||
render action: 'edit'
|
render action: 'edit'
|
||||||
end
|
end
|
||||||
@ -46,7 +50,6 @@ class ClientsController < ApplicationController
|
|||||||
:weight,
|
:weight,
|
||||||
:helmet,
|
:helmet,
|
||||||
:lock,
|
:lock,
|
||||||
:completion_date,
|
|
||||||
:bike_id,
|
:bike_id,
|
||||||
:will_pay,
|
:will_pay,
|
||||||
:bike_type_requested,
|
:bike_type_requested,
|
||||||
|
@ -43,11 +43,6 @@ class Bike < ActiveRecord::Base
|
|||||||
all_freecyclery_bikes - assigned_bikes
|
all_freecyclery_bikes - assigned_bikes
|
||||||
end
|
end
|
||||||
|
|
||||||
def mark_picked_up
|
|
||||||
current_date = Time.new.strftime("%Y-%m-%d")
|
|
||||||
self.update_attribute(:date_sold, current_date)
|
|
||||||
end
|
|
||||||
|
|
||||||
def post_to_bike_index
|
def post_to_bike_index
|
||||||
return true if self.bike_index_id.present?
|
return true if self.bike_index_id.present?
|
||||||
BikeIndexLogger.perform_async(self.id)
|
BikeIndexLogger.perform_async(self.id)
|
||||||
|
@ -7,7 +7,7 @@ class Client < ActiveRecord::Base
|
|||||||
def self.waiting_list
|
def self.waiting_list
|
||||||
clients = Client.all
|
clients = Client.all
|
||||||
non_voided_clients = clients.select{|client| !client.application_voided}
|
non_voided_clients = clients.select{|client| !client.application_voided}
|
||||||
waiting_list_with_null_application_dates = non_voided_clients.select{|client| !client.completion_date}
|
waiting_list_with_null_application_dates = non_voided_clients.select{|client| !client.pickup_date}
|
||||||
clients_with_bikes = Client.all.select{|c| !c.bike_id.nil?}
|
clients_with_bikes = Client.all.select{|c| !c.bike_id.nil?}
|
||||||
waiting_list = waiting_list_with_null_application_dates.select{|client| !client.application_date.nil?} - clients_with_bikes
|
waiting_list = waiting_list_with_null_application_dates.select{|client| !client.application_date.nil?} - clients_with_bikes
|
||||||
waiting_list.sort_by!{|client| client.application_date}
|
waiting_list.sort_by!{|client| client.application_date}
|
||||||
@ -18,7 +18,7 @@ class Client < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def self.closed_applications
|
def self.closed_applications
|
||||||
Client.all.select{|client| client.application_voided || client.completion_date}
|
Client.all.select{|client| client.application_voided || client.pickup_date}
|
||||||
end
|
end
|
||||||
|
|
||||||
def bike
|
def bike
|
||||||
|
@ -60,11 +60,6 @@
|
|||||||
.col-sm-10
|
.col-sm-10
|
||||||
= f.check_box :lock, disabled: disabled
|
= f.check_box :lock, disabled: disabled
|
||||||
|
|
||||||
.form-group
|
|
||||||
= f.label "Completion Date:", class: "col-sm-2 control-label"
|
|
||||||
.col-sm-10
|
|
||||||
= f.text_field :completion_date, class: "form-control datepicker", disabled: disabled
|
|
||||||
|
|
||||||
.form-group
|
.form-group
|
||||||
= f.label "Bike:", class: "col-sm-2 control-label"
|
= f.label "Bike:", class: "col-sm-2 control-label"
|
||||||
.col-sm-10
|
.col-sm-10
|
||||||
|
@ -14,6 +14,6 @@
|
|||||||
%tr
|
%tr
|
||||||
%td= client.name
|
%td= client.name
|
||||||
%td= client.application_voided
|
%td= client.application_voided
|
||||||
%td= client.completion_date
|
%td= client.pickup_date
|
||||||
%td= link_to 'Edit', edit_client_path(client)
|
%td= link_to 'Edit', edit_client_path(client)
|
||||||
%br
|
%br
|
||||||
|
@ -7,11 +7,9 @@
|
|||||||
%tr
|
%tr
|
||||||
%th Bike
|
%th Bike
|
||||||
%th Client
|
%th Client
|
||||||
%th
|
|
||||||
%tbody
|
%tbody
|
||||||
- @bikes_for_pickup.each do |bike|
|
- @bikes_for_pickup.each do |bike|
|
||||||
%tr
|
%tr
|
||||||
%td= bike.name
|
%td= bike.name
|
||||||
%td= bike.client.name
|
%td= bike.client.name
|
||||||
%td= button_to "Mark as picked up", {controller: "bikes", action: "mark_picked_up", id: bike.id}, method: :patch, class: "btn btn-default"
|
|
||||||
|
|
||||||
|
@ -12,7 +12,6 @@ Bikedb::Application.routes.draw do
|
|||||||
get 'print_labels' => 'bikes#print_labels', on: :collection
|
get 'print_labels' => 'bikes#print_labels', on: :collection
|
||||||
get 'freecyclery_pickup' => 'bikes#freecyclery_pickup', on: :collection
|
get 'freecyclery_pickup' => 'bikes#freecyclery_pickup', on: :collection
|
||||||
patch 'mark_as_sold' => 'bikes#mark_as_sold', on: :member
|
patch 'mark_as_sold' => 'bikes#mark_as_sold', on: :member
|
||||||
patch 'mark_picked_up' => 'bikes#mark_picked_up', on: :member
|
|
||||||
end
|
end
|
||||||
|
|
||||||
resources :volunteers
|
resources :volunteers
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
class RemoveCompletionDateFromClient < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
remove_column :clients, :completion_date
|
||||||
|
end
|
||||||
|
end
|
@ -11,7 +11,7 @@
|
|||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 20151013231450) do
|
ActiveRecord::Schema.define(version: 20151205223152) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
@ -35,7 +35,6 @@ namespace :db do
|
|||||||
weight: rand(100) + 100,
|
weight: rand(100) + 100,
|
||||||
helmet: [true, false].sample,
|
helmet: [true, false].sample,
|
||||||
lock: [true, false].sample,
|
lock: [true, false].sample,
|
||||||
completion_date: [rand(30.days).ago, nil].sample,
|
|
||||||
bike_type_requested: ["Cruiser", "Road", "Mountain"].sample,
|
bike_type_requested: ["Cruiser", "Road", "Mountain"].sample,
|
||||||
will_pay: [true, false].sample,
|
will_pay: [true, false].sample,
|
||||||
notes: "A great client!",
|
notes: "A great client!",
|
||||||
|
@ -14,7 +14,7 @@ describe Client do
|
|||||||
|
|
||||||
end
|
end
|
||||||
it "does not include completed clients" do
|
it "does not include completed clients" do
|
||||||
create(:client, completion_date: 1.week.ago)
|
create(:client, pickup_date: 1.week.ago)
|
||||||
expect(Client.waiting_list).to be_empty
|
expect(Client.waiting_list).to be_empty
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user