Merge pull request #94 from pozorvlak/alphabet

Sort crops case-insensitively in the plantings form.
This commit is contained in:
Skud
2013-01-25 16:02:09 -08:00
5 changed files with 44 additions and 1 deletions

View File

@@ -4,6 +4,7 @@ class Crop < ActiveRecord::Base
attr_accessible :en_wikipedia_url, :system_name
has_many :scientific_names
has_many :plantings
default_scope order("lower(system_name) asc")
def Crop.random
@crop = Crop.offset(rand(Crop.count)).first

View File

@@ -8,7 +8,7 @@
.control-group
= f.label 'What did you plant?', :class => 'control-label'
.controls= collection_select(:planting, :crop_id, Crop.all(:order => :system_name), :id, :system_name, :selected => @crop.id)
.controls= collection_select(:planting, :crop_id, Crop.all, :id, :system_name, :selected => @crop.id)
.control-group
= f.label 'Where did you plant it?', :class => 'control-label'
.controls= collection_select(:planting, :garden_id,

View File

@@ -30,6 +30,16 @@ FactoryGirl.define do
system_name "Pear"
end
# This should have a name that is alphabetically earlier than :uppercase
# crop to ensure that the ordering tests work.
factory :lowercasecrop do
system_name "ffrench bean"
end
factory :uppercasecrop do
system_name "Swiss chard"
end
end
end

View File

@@ -42,4 +42,12 @@ describe Crop do
@rand_crop.system_name.should == 'Tomato'
end
end
context 'ordering' do
it "should be sorted case-insensitively" do
uppercase = FactoryGirl.create(:uppercasecrop)
lowercase = FactoryGirl.create(:lowercasecrop)
Crop.first.should == lowercase
end
end
end

View File

@@ -0,0 +1,24 @@
require 'spec_helper'
describe "plantings/_form" do
before(:each) do
@member = FactoryGirl.create(:member)
@garden = FactoryGirl.create(:garden, :owner => @member)
@uppercase = FactoryGirl.create(:uppercasecrop)
@lowercase = FactoryGirl.create(:lowercasecrop)
@crop = @lowercase # needed to render the form
@planting = FactoryGirl.create(:planting,
:garden => @garden,
:crop => @crop
)
render
end
context "logged in" do
it "orders crops alphabetically" do
rendered.should =~ /#{@lowercase.system_name}.*#{@uppercase.system_name}/m
end
end
end