mirror of
				https://github.com/fspc/BikeShed-1.git
				synced 2025-11-04 01:15:36 -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
 | 
			
		||||
    c.prohibit_update = true if cannot? :update, @bike
 | 
			
		||||
    c.prohibit_create = true if cannot? :create, @bike
 | 
			
		||||
 | 
			
		||||
@ -12,9 +12,7 @@ class Bike < ActiveRecord::Base
 | 
			
		||||
  belongs_to :bike_condition
 | 
			
		||||
  belongs_to :bike_purpose
 | 
			
		||||
 | 
			
		||||
  default_scope order('shop_id ASC')
 | 
			
		||||
 | 
			
		||||
  validates :shop_id, :presence => true, :uniqueness => true, :length => { :minimum => 3 }
 | 
			
		||||
  validates :shop_id, :presence => true, :uniqueness => true, :numericality => { :only_integer => true }
 | 
			
		||||
  validates :serial_number, :length => { :minimum => 3 }
 | 
			
		||||
  validates :model, :length => { :maximum => 50 }
 | 
			
		||||
  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.
 | 
			
		||||
 | 
			
		||||
ActiveRecord::Schema.define(:version => 20130902201853) do
 | 
			
		||||
ActiveRecord::Schema.define(:version => 20131019023429) do
 | 
			
		||||
 | 
			
		||||
  create_table "bike_actions", :force => true do |t|
 | 
			
		||||
    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.datetime "created_at",        :null => false
 | 
			
		||||
    t.datetime "updated_at",        :null => false
 | 
			
		||||
    t.string   "shop_id"
 | 
			
		||||
    t.string   "model"
 | 
			
		||||
    t.integer  "shop_id"
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  add_index "bikes", ["shop_id"], :name => "index_bikes_on_shop_id", :unique => true
 | 
			
		||||
 | 
			
		||||
  create_table "credit_conversions", :force => true do |t|
 | 
			
		||||
    t.integer  "conversion", :default => 1
 | 
			
		||||
    t.datetime "created_at",                :null => false
 | 
			
		||||
 | 
			
		||||
@ -16,8 +16,10 @@ end
 | 
			
		||||
if BikeBrand.all.empty? and BikeModel.all.empty?
 | 
			
		||||
  # Need to use DEFAULT instead of explicit IDs that are used in the sql file,
 | 
			
		||||
  # 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|
 | 
			
		||||
    statement.sub(/VALUES\(\d+,/, 'VALUES(DEFAULT,').tap {|x| puts x }
 | 
			
		||||
    statement.sub(/VALUES\(\d+,/, 'VALUES(DEFAULT,')
 | 
			
		||||
  end
 | 
			
		||||
  ActiveRecord::Base.connection.execute(load_statements.join)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
@ -2,9 +2,7 @@
 | 
			
		||||
 | 
			
		||||
FactoryGirl.define do
 | 
			
		||||
  factory :bike do
 | 
			
		||||
    sequence :shop_id do |n|
 | 
			
		||||
      "Shop ID #{n}"
 | 
			
		||||
    end
 | 
			
		||||
    sequence(:shop_id) {|n| n}
 | 
			
		||||
    sequence :serial_number do |n|
 | 
			
		||||
      "S/N# #{n}"
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user