mirror of
https://github.com/fspc/BikeShed-1.git
synced 2025-02-28 08:43:23 -05:00
Merge pull request #72 from spacemunkay/sorting-and-shop-id-fix-68-63
Sorting and shop id fix 68 63
This commit is contained in:
commit
f17c168d1d
@ -33,6 +33,10 @@ class Bikes < Netzke::Basepack::Grid
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# Default the sorting to ASC on shop_id
|
||||||
|
c.data_store.sorters = [{ property: 'shop_id', direction: 'ASC' }]
|
||||||
|
|
||||||
@bike = Bike.all
|
@bike = Bike.all
|
||||||
c.prohibit_update = true if cannot? :update, @bike
|
c.prohibit_update = true if cannot? :update, @bike
|
||||||
c.prohibit_create = true if cannot? :create, @bike
|
c.prohibit_create = true if cannot? :create, @bike
|
||||||
|
@ -12,9 +12,7 @@ class Bike < ActiveRecord::Base
|
|||||||
belongs_to :bike_condition
|
belongs_to :bike_condition
|
||||||
belongs_to :bike_purpose
|
belongs_to :bike_purpose
|
||||||
|
|
||||||
default_scope order('shop_id ASC')
|
validates :shop_id, :presence => true, :uniqueness => true, :numericality => { :only_integer => true }
|
||||||
|
|
||||||
validates :shop_id, :presence => true, :uniqueness => true, :length => { :minimum => 3 }
|
|
||||||
validates :serial_number, :length => { :minimum => 3 }
|
validates :serial_number, :length => { :minimum => 3 }
|
||||||
validates :model, :length => { :maximum => 50 }
|
validates :model, :length => { :maximum => 50 }
|
||||||
validates :bike_brand_id, :presence => true
|
validates :bike_brand_id, :presence => true
|
||||||
|
23
db/migrate/20131019023429_change_bike_shop_id.rb
Normal file
23
db/migrate/20131019023429_change_bike_shop_id.rb
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
class ChangeBikeShopId < ActiveRecord::Migration
|
||||||
|
# We don't use change_column because we have arbitrary strings we
|
||||||
|
# need to strip the characters from to make the integer values
|
||||||
|
def up
|
||||||
|
bikes = Bike.all
|
||||||
|
remove_column :bikes, :shop_id
|
||||||
|
add_column :bikes, :shop_id, :integer, :unique => true
|
||||||
|
|
||||||
|
# deconflict shop ids
|
||||||
|
bikes.each do |bike|
|
||||||
|
new_id = bike.shop_id.gsub(/[^\d]/, '').to_i rescue 1
|
||||||
|
while bikes.map(&:shop_id).include? new_id
|
||||||
|
new_id += 1
|
||||||
|
end
|
||||||
|
bike.shop_id = new_id
|
||||||
|
end
|
||||||
|
bikes.each(&:save)
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
change_column :bikes, :shop_id, :string
|
||||||
|
end
|
||||||
|
end
|
@ -11,7 +11,7 @@
|
|||||||
#
|
#
|
||||||
# It's strongly recommended to check this file into your version control system.
|
# It's strongly recommended to check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(:version => 20130902201853) do
|
ActiveRecord::Schema.define(:version => 20131019023429) do
|
||||||
|
|
||||||
create_table "bike_actions", :force => true do |t|
|
create_table "bike_actions", :force => true do |t|
|
||||||
t.string "action", :limit => 128, :null => false
|
t.string "action", :limit => 128, :null => false
|
||||||
@ -60,12 +60,10 @@ ActiveRecord::Schema.define(:version => 20130902201853) do
|
|||||||
t.integer "bike_purpose_id", :null => false
|
t.integer "bike_purpose_id", :null => false
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at", :null => false
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at", :null => false
|
||||||
t.string "shop_id"
|
|
||||||
t.string "model"
|
t.string "model"
|
||||||
|
t.integer "shop_id"
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "bikes", ["shop_id"], :name => "index_bikes_on_shop_id", :unique => true
|
|
||||||
|
|
||||||
create_table "credit_conversions", :force => true do |t|
|
create_table "credit_conversions", :force => true do |t|
|
||||||
t.integer "conversion", :default => 1
|
t.integer "conversion", :default => 1
|
||||||
t.datetime "created_at", :null => false
|
t.datetime "created_at", :null => false
|
||||||
|
@ -16,8 +16,10 @@ end
|
|||||||
if BikeBrand.all.empty? and BikeModel.all.empty?
|
if BikeBrand.all.empty? and BikeModel.all.empty?
|
||||||
# Need to use DEFAULT instead of explicit IDs that are used in the sql file,
|
# Need to use DEFAULT instead of explicit IDs that are used in the sql file,
|
||||||
# so that the PG table ID sequence is incremented
|
# so that the PG table ID sequence is incremented
|
||||||
|
#
|
||||||
|
# Note the drop(1) which assumes we have a junk PRAGMA line at the top
|
||||||
load_statements = File.readlines(File.join(Rails.root, 'db', 'seed', 'sql', 'bike_brands_and_models.sql')).drop(1).map do |statement|
|
load_statements = File.readlines(File.join(Rails.root, 'db', 'seed', 'sql', 'bike_brands_and_models.sql')).drop(1).map do |statement|
|
||||||
statement.sub(/VALUES\(\d+,/, 'VALUES(DEFAULT,').tap {|x| puts x }
|
statement.sub(/VALUES\(\d+,/, 'VALUES(DEFAULT,')
|
||||||
end
|
end
|
||||||
ActiveRecord::Base.connection.execute(load_statements.join)
|
ActiveRecord::Base.connection.execute(load_statements.join)
|
||||||
end
|
end
|
||||||
|
@ -2,9 +2,7 @@
|
|||||||
|
|
||||||
FactoryGirl.define do
|
FactoryGirl.define do
|
||||||
factory :bike do
|
factory :bike do
|
||||||
sequence :shop_id do |n|
|
sequence(:shop_id) {|n| n}
|
||||||
"Shop ID #{n}"
|
|
||||||
end
|
|
||||||
sequence :serial_number do |n|
|
sequence :serial_number do |n|
|
||||||
"S/N# #{n}"
|
"S/N# #{n}"
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user