mirror of
https://github.com/fspc/BikeShed-1.git
synced 2025-02-28 08:43:23 -05:00
Make wheel size an combobox option on bikes
This commit is contained in:
parent
f17c168d1d
commit
4aed82cf80
@ -23,7 +23,7 @@ class Bikes < Netzke::Basepack::Grid
|
||||
{ :id => :bike_style__style, :name => :bike_style__style, :text => 'Style' },
|
||||
{ :name => :seat_tube_height, :text => 'Seat Tube (in)'},
|
||||
{ :name => :top_tube_length, :text => 'Top Tube (in)'},
|
||||
{ :name => :wheel_size, :text => 'Wheel Size (in)'},
|
||||
{ :name => :bike_wheel_size__display_string, :text => 'Wheel Size'},
|
||||
:value,
|
||||
{ :id => :bike_condition__condition, :name => :bike_condition__condition, :text => 'Condition'},
|
||||
{ :id => :bike_purpose__purpose, :name => :bike_purpose__purpose, :text => 'Purpose'},
|
||||
@ -53,7 +53,7 @@ class Bikes < Netzke::Basepack::Grid
|
||||
{ :name => :bike_style__style, :field_label => 'Style', :min_chars => 1},
|
||||
{ :name => :seat_tube_height, :field_label => 'Seat Tube (in)'},
|
||||
{ :name => :top_tube_length, :field_label => 'Top Tube (in)'},
|
||||
{ :name => :wheel_size, :field_label => 'Wheel Size (in)'},
|
||||
{ :name => :bike_wheel_size__display_string, :field_label => 'Wheel Size'},
|
||||
{ :name => :value, :field_label => 'Value'},
|
||||
{ :name => :bike_condition__condition, :field_label => 'Condition', :min_chars => 1},
|
||||
{ :name => :bike_purpose__purpose, :field_label => 'Purpose', :min_chars => 1}
|
||||
|
@ -1,7 +1,7 @@
|
||||
class Bike < ActiveRecord::Base
|
||||
acts_as_loggable
|
||||
attr_accessible :shop_id, :serial_number, :bike_brand_id, :model, :color, :bike_style_id, :seat_tube_height,
|
||||
:top_tube_length, :wheel_size, :value, :bike_condition_id, :bike_purpose_id
|
||||
:top_tube_length, :bike_wheel_size_id, :value, :bike_condition_id, :bike_purpose_id
|
||||
|
||||
has_many :transactions
|
||||
|
||||
@ -11,6 +11,7 @@ class Bike < ActiveRecord::Base
|
||||
belongs_to :bike_style
|
||||
belongs_to :bike_condition
|
||||
belongs_to :bike_purpose
|
||||
belongs_to :bike_wheel_size
|
||||
|
||||
validates :shop_id, :presence => true, :uniqueness => true, :numericality => { :only_integer => true }
|
||||
validates :serial_number, :length => { :minimum => 3 }
|
||||
@ -20,8 +21,7 @@ class Bike < ActiveRecord::Base
|
||||
validates :bike_style_id, :presence => true
|
||||
validates :seat_tube_height, :presence => true
|
||||
validates :top_tube_length, :presence => true
|
||||
validates :wheel_size, :presence => true
|
||||
#validates :value, :presence => true
|
||||
validates :bike_wheel_size_id, :presence => true
|
||||
validates :bike_condition_id, :presence => true
|
||||
validates :bike_purpose_id, :presence => true
|
||||
|
||||
@ -45,6 +45,10 @@ class Bike < ActiveRecord::Base
|
||||
self.bike_purpose
|
||||
end
|
||||
|
||||
def wheel_size
|
||||
self.bike_wheel_size
|
||||
end
|
||||
|
||||
def to_s
|
||||
"#{brand} - #{model} - #{style}"
|
||||
end
|
||||
|
11
app/models/bike_wheel_size.rb
Normal file
11
app/models/bike_wheel_size.rb
Normal file
@ -0,0 +1,11 @@
|
||||
class BikeWheelSize < ActiveRecord::Base
|
||||
belongs_to :bike
|
||||
|
||||
def display_string
|
||||
["#{twmm}-#{rdmm}", "#{rdin}x#{twin}", "#{rdfr}x#{twfr}", description].join(" | ")
|
||||
end
|
||||
|
||||
def to_s
|
||||
"#{twmm}-#{rdmm} #{rdin}x#{twin} #{rdfr}x#{twfr} '#{description}' #{tire_common_score}"
|
||||
end
|
||||
end
|
22
db/migrate/20131019150459_create_bike_wheel_sizes.rb
Normal file
22
db/migrate/20131019150459_create_bike_wheel_sizes.rb
Normal file
@ -0,0 +1,22 @@
|
||||
class CreateBikeWheelSizes < ActiveRecord::Migration
|
||||
def up
|
||||
create_table(:bike_wheel_sizes) do |t|
|
||||
t.string :twmm
|
||||
t.string :rdmm
|
||||
t.string :twin
|
||||
t.string :rdin
|
||||
t.string :twfr
|
||||
t.string :rdfr
|
||||
t.string :description
|
||||
t.string :tire_common_score
|
||||
end
|
||||
|
||||
#create the default undetermined wheel size record
|
||||
BikeWheelSize.create( twmm: 0, rdmm: 0, rdin: 0, twin: 0, rdfr: 0, twfr: 0, description: "UNDETERMINED", tire_common_score: 0)
|
||||
ActiveRecord::Base.connection.execute(IO.read(File.join(Rails.root, "db", "seed", "sql", "common_wheel_sizes.sql")))
|
||||
end
|
||||
|
||||
def down
|
||||
drop_table :bike_wheel_sizes
|
||||
end
|
||||
end
|
34
db/migrate/20131019170248_alter_bike_wheel_to_id.rb
Normal file
34
db/migrate/20131019170248_alter_bike_wheel_to_id.rb
Normal file
@ -0,0 +1,34 @@
|
||||
class AlterBikeWheelToId < ActiveRecord::Migration
|
||||
def up
|
||||
add_column :bikes, :bike_wheel_size_id, :integer
|
||||
|
||||
undetermined_id = BikeWheelSize.find_by_rdin("0")
|
||||
Bike.find_each do |bike|
|
||||
wheel_size = BikeWheelSize.find_by_rdin(bike.wheel_size.to_s)
|
||||
|
||||
if wheel_size.nil?
|
||||
wheel_size_id = undetermined_id
|
||||
else
|
||||
wheel_size_id = wheel_size.id
|
||||
end
|
||||
bike.bike_wheel_size_id = wheel_size_id
|
||||
bike.save
|
||||
end
|
||||
|
||||
remove_column :bikes, :wheel_size
|
||||
end
|
||||
|
||||
def down
|
||||
|
||||
add_column :bikes, :wheel_size, :integer
|
||||
|
||||
Bike.find_each do |bike|
|
||||
wheel_size = BikeWheelSize.find_by_id(bike.bike_wheel_size_id)
|
||||
bike.wheel_size = wheel_size.rdin.to_i
|
||||
bike.save
|
||||
end
|
||||
|
||||
remove_column :bikes, :bike_wheel_size_id
|
||||
|
||||
end
|
||||
end
|
27
db/schema.rb
27
db/schema.rb
@ -11,7 +11,7 @@
|
||||
#
|
||||
# It's strongly recommended to check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(:version => 20131019023429) do
|
||||
ActiveRecord::Schema.define(:version => 20131019170248) do
|
||||
|
||||
create_table "bike_actions", :force => true do |t|
|
||||
t.string "action", :limit => 128, :null => false
|
||||
@ -46,22 +46,33 @@ ActiveRecord::Schema.define(:version => 20131019023429) do
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "bike_wheel_sizes", :force => true do |t|
|
||||
t.string "twmm"
|
||||
t.string "rdmm"
|
||||
t.string "twin"
|
||||
t.string "rdin"
|
||||
t.string "twfr"
|
||||
t.string "rdfr"
|
||||
t.string "description"
|
||||
t.string "tire_common_score"
|
||||
end
|
||||
|
||||
create_table "bikes", :force => true do |t|
|
||||
t.string "serial_number"
|
||||
t.integer "bike_brand_id", :null => false
|
||||
t.integer "bike_brand_id", :null => false
|
||||
t.integer "bike_model_id"
|
||||
t.string "color"
|
||||
t.integer "bike_style_id", :null => false
|
||||
t.integer "bike_style_id", :null => false
|
||||
t.float "seat_tube_height"
|
||||
t.float "top_tube_length"
|
||||
t.integer "wheel_size"
|
||||
t.float "value"
|
||||
t.integer "bike_condition_id", :null => false
|
||||
t.integer "bike_purpose_id", :null => false
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.integer "bike_condition_id", :null => false
|
||||
t.integer "bike_purpose_id", :null => false
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.string "model"
|
||||
t.integer "shop_id"
|
||||
t.integer "bike_wheel_size_id"
|
||||
end
|
||||
|
||||
create_table "credit_conversions", :force => true do |t|
|
||||
|
37
db/seed/sql/common_wheel_sizes.sql
Normal file
37
db/seed/sql/common_wheel_sizes.sql
Normal file
@ -0,0 +1,37 @@
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (54,110,'8 1/2','2','','','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (62,203,'12','1/2 x 2 1/4','320 ','57','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (47,305,'16','1,75 [x 2]','','','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (32,369,'16','1 1/4','','','Moulton',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (47,355,'18','1,75 [ x 2]','','','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (28,406,'20','1 1/8','','','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (37,406,'20','1 3/8','','','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (47,406,'20','1,75 [ x 2]','','','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (47,507,'24','1,75 [ x 2]','600 ','50C','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (37,540,'24','1 3/8 A','600 ','35A','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (25,559,'26','1','','','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (32,559,'26','1,3','','','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (37,559,'26','1,5','','','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (40,559,'26','1,6','','','MTB',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (44,559,'26','1,6','','','City/trekking',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (47,559,'26','1,75 [ x 2]','650 ','50','City/Trekking',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (NULL,NULL,'26','1,9','','','MTB',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (50,'559','26','1,9','','','City/Trekking',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (NULL,NULL,'26','2','','','MTB',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (54,559,'26','2,1','','','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (57,559,'26','2,3 [2,125]','','','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (20,571,'','','650 ','20C','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (23,571,'','','650 ','23C','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (28,584,'26','1 1/8 x 1 1/2 B','','','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (37,584,'26','1 3/8 x 1 1/2 B','650 ','38A','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (37,590,'26','1 3/8','650 [','35] A','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (20,622,'','','700 ','20C','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (23,622,'','','700 ','23C','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (25,622,'','','700 ','25C','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (28,622,'28','1 5/8 x 1 3/8','700 ','28C [700C]','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (32,622,'28','1 1/4 x 1 3/4','700 ','32C [700C Course]','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (37,622,'28','1 3/8 x 1 5/8','700 ','37C [35C]','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (42,622,'28','1,6','700 ','42C [40C]','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (47,622,'28','1,75','700 ','47C [45C]','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (28,630,'27','1 1/8 [1 1/4 fifty]','','','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (32,630,'27','1 1/4','','','',1);
|
||||
INSERT INTO bike_wheel_sizes (TWMM, RDMM,RDIN,TWIN,RDFR,TWFR,DESCRIPTION,tire_common_score) values (40,635,'28','1 1/2 [1 3/8]','700 ','38B [35B]','',1);
|
@ -12,7 +12,7 @@ FactoryGirl.define do
|
||||
bike_style_id 1
|
||||
seat_tube_height 5
|
||||
top_tube_length 6
|
||||
wheel_size 27
|
||||
bike_wheel_size_id 1
|
||||
value 100
|
||||
bike_condition_id 1
|
||||
bike_purpose_id 1
|
||||
|
Loading…
x
Reference in New Issue
Block a user