Browse Source

lk | update bike & report to use fixed_at instead of entry_date

master
Louis Knapp 8 years ago
parent
commit
8a46a95678
  1. 4
      app/controllers/bikes_controller.rb
  2. 6
      app/models/report.rb
  3. 4
      app/views/bikes/_fields.html.haml
  4. 58
      db/schema.rb

4
app/controllers/bikes_controller.rb

@ -45,6 +45,7 @@ class BikesController < ApplicationController
end end
def update def update
if @bike.update(bike_params) if @bike.update(bike_params)
redirect_to @bike, notice: 'Bike was successfully updated.' redirect_to @bike, notice: 'Bike was successfully updated.'
else else
@ -73,8 +74,9 @@ class BikesController < ApplicationController
end end
def bike_params def bike_params
params[:bike][:fixed_at] = DateTime.strptime(params[:bike][:fixed_at], "%m/%d/%Y") if params[:bike][:fixed_at]
params.require(:bike).permit( params.require(:bike).permit(
:entry_date, :fixed_at,
:brand, :brand,
:model, :model,
:bike_type, :bike_type,

6
app/models/report.rb

@ -4,8 +4,8 @@ class Report
def self.bikes_fixed_per_week def self.bikes_fixed_per_week
beginning_of_year = Time.now.beginning_of_year beginning_of_year = Time.now.beginning_of_year
bikes = Bike.where("entry_date > ?", beginning_of_year) bikes = Bike.where("fixed_at > ? AND purpose = ?", beginning_of_year, Bike::SALE)
weekly_data = bikes.group_by{|b| DateTime.strptime(b.entry_date, "%m/%d/%y").beginning_of_week} weekly_data = bikes.group_by{|b| b.fixed_at.beginning_of_week}
weekly_data.to_a.sort!{|a, b| a.first <=> b.first}.to_h weekly_data.to_a.sort!{|a, b| a.first <=> b.first}.to_h
end end
@ -26,7 +26,7 @@ class Report
average_price = float_prices.inject{ |sum, el| el + sum } / float_prices.size average_price = float_prices.inject{ |sum, el| el + sum } / float_prices.size
{k => average_price} {k => average_price}
} }
average_prices = average_price_array.reduce({}, :merge) average_price_array.reduce({}, :merge)
end end
def self.yearly_data def self.yearly_data

4
app/views/bikes/_fields.html.haml

@ -52,9 +52,9 @@
= f.text_field :serial_number, class: "form-control", disabled: disabled = f.text_field :serial_number, class: "form-control", disabled: disabled
.form-group .form-group
= f.label "Date Finished:", class: "col-sm-4 control-label" = f.label "Date Fixed:", class: "col-sm-4 control-label"
.col-sm-6 .col-sm-6
= f.text_field :entry_date, class: "form-control datepicker", disabled: disabled = f.text_field :fixed_at, class: "form-control datepicker", :value => @bike.fixed_at ? @bike.fixed_at.strftime("%m/%d/%Y") : "", disabled: disabled
.row .row
.col-sm-6 .col-sm-6

58
db/schema.rb

@ -17,26 +17,26 @@ ActiveRecord::Schema.define(version: 20160717165815) do
enable_extension "plpgsql" enable_extension "plpgsql"
create_table "agencies", force: :cascade do |t| create_table "agencies", force: :cascade do |t|
t.string "agency_name", limit: 255 t.string "agency_name"
t.string "contact_name", limit: 255 t.string "contact_name"
t.string "street_address", limit: 255 t.string "street_address"
t.string "city", limit: 255 t.string "city"
t.string "state", limit: 255 t.string "state"
t.string "postal_code", limit: 255 t.string "postal_code"
t.string "phone_number", limit: 255 t.string "phone_number"
t.string "email", limit: 255 t.string "email"
end end
create_table "bikes", force: :cascade do |t| create_table "bikes", force: :cascade do |t|
t.string "entry_date", limit: 255 t.string "entry_date"
t.string "brand", limit: 255 t.string "brand"
t.string "model", limit: 255 t.string "model"
t.string "bike_type", limit: 255 t.string "bike_type"
t.string "color", limit: 255 t.string "color"
t.string "serial_number", limit: 255 t.string "serial_number"
t.text "work_done" t.text "work_done"
t.text "new_parts" t.text "new_parts"
t.string "price", limit: 255 t.string "price"
t.datetime "created_at" t.datetime "created_at"
t.datetime "updated_at" t.datetime "updated_at"
t.float "seat_tube_size" t.float "seat_tube_size"
@ -50,17 +50,17 @@ ActiveRecord::Schema.define(version: 20160717165815) do
end end
create_table "clients", force: :cascade do |t| create_table "clients", force: :cascade do |t|
t.string "first_name", limit: 255 t.string "first_name"
t.string "last_name", limit: 255 t.string "last_name"
t.date "application_date_bkp" t.date "application_date_bkp"
t.string "gender", limit: 255 t.string "gender"
t.integer "age" t.integer "age"
t.boolean "helmet" t.boolean "helmet"
t.boolean "lock" t.boolean "lock"
t.datetime "created_at" t.datetime "created_at"
t.datetime "updated_at" t.datetime "updated_at"
t.integer "bike_id" t.integer "bike_id"
t.string "bike_type_requested", limit: 255 t.string "bike_type_requested"
t.boolean "will_pay" t.boolean "will_pay"
t.integer "agency_id" t.integer "agency_id"
t.text "notes" t.text "notes"
@ -68,7 +68,7 @@ ActiveRecord::Schema.define(version: 20160717165815) do
t.integer "number_of_calls" t.integer "number_of_calls"
t.boolean "application_voided" t.boolean "application_voided"
t.date "pickup_date_bkp" t.date "pickup_date_bkp"
t.string "volunteer_at_pickup", limit: 255 t.string "volunteer_at_pickup"
t.float "weight" t.float "weight"
t.float "height" t.float "height"
t.datetime "application_date" t.datetime "application_date"
@ -79,16 +79,16 @@ ActiveRecord::Schema.define(version: 20160717165815) do
add_index "clients", ["bike_id"], name: "index_clients_on_bike_id", using: :btree add_index "clients", ["bike_id"], name: "index_clients_on_bike_id", using: :btree
create_table "users", force: :cascade do |t| create_table "users", force: :cascade do |t|
t.string "email", limit: 255, default: "", null: false t.string "email", default: "", null: false
t.string "encrypted_password", limit: 255, default: "", null: false t.string "encrypted_password", default: "", null: false
t.string "reset_password_token", limit: 255 t.string "reset_password_token"
t.datetime "reset_password_sent_at" t.datetime "reset_password_sent_at"
t.datetime "remember_created_at" t.datetime "remember_created_at"
t.integer "sign_in_count", default: 0, null: false t.integer "sign_in_count", default: 0, null: false
t.datetime "current_sign_in_at" t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at" t.datetime "last_sign_in_at"
t.string "current_sign_in_ip", limit: 255 t.string "current_sign_in_ip"
t.string "last_sign_in_ip", limit: 255 t.string "last_sign_in_ip"
t.datetime "created_at" t.datetime "created_at"
t.datetime "updated_at" t.datetime "updated_at"
end end
@ -97,9 +97,9 @@ ActiveRecord::Schema.define(version: 20160717165815) do
add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree
create_table "volunteers", force: :cascade do |t| create_table "volunteers", force: :cascade do |t|
t.string "name", limit: 255 t.string "name"
t.string "email", limit: 255 t.string "email"
t.string "phone", limit: 255 t.string "phone"
t.date "orientation_date" t.date "orientation_date"
t.integer "other_volunteer_hours" t.integer "other_volunteer_hours"
t.text "referral" t.text "referral"

Loading…
Cancel
Save