mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-03-24 17:54:59 -04:00
@@ -7,6 +7,8 @@ class Garden < ActiveRecord::Base
|
||||
has_many :plantings, :order => 'created_at DESC'
|
||||
has_many :crops, :through => :plantings
|
||||
|
||||
default_scope order("lower(name) asc")
|
||||
|
||||
def garden_slug
|
||||
"#{owner.login_name}-#{name}".downcase.gsub(' ', '-')
|
||||
end
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
|
||||
.control-group
|
||||
= f.label 'What did you plant?', :class => 'control-label'
|
||||
.controls= collection_select(:planting, :crop_id, Crop.all, :id, :system_name, :selected => @crop.id)
|
||||
.controls= collection_select(:planting, :crop_id, Crop.all, :id, :system_name, :selected => @planting.crop_id || @crop.id)
|
||||
.control-group
|
||||
= f.label 'Where did you plant it?', :class => 'control-label'
|
||||
.controls= collection_select(:planting, :garden_id,
|
||||
Garden.where(:owner_id => current_member), :id, :name, :selected => @garden.id)
|
||||
Garden.where(:owner_id => current_member), :id, :name, :selected => @planting.garden_id || @garden.id)
|
||||
.control-group
|
||||
= f.label 'When?', :class => 'control-label'
|
||||
.controls= f.date_select :planted_at, options = { :include_blank => true }, html_options = { :class => "span1" }
|
||||
|
||||
@@ -3,5 +3,15 @@ FactoryGirl.define do
|
||||
name 'Springfield Community Garden'
|
||||
description "This is a **totally** cool garden"
|
||||
owner
|
||||
|
||||
# the following are used for testing alphabetical ordering
|
||||
factory :garden_a do
|
||||
name 'A garden starting with A'
|
||||
end
|
||||
|
||||
factory :garden_z do
|
||||
name 'Zzzz this garden makes me sleepy'
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@@ -59,4 +59,12 @@ describe Garden do
|
||||
end
|
||||
end
|
||||
|
||||
context 'ordering' do
|
||||
it "should be sorted alphabetically" do
|
||||
z = FactoryGirl.create(:garden_z)
|
||||
a = FactoryGirl.create(:garden_a)
|
||||
Garden.first.should == a
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -11,11 +11,17 @@ describe "plantings/edit" do
|
||||
:email => 'wrong@example.com'
|
||||
)
|
||||
|
||||
@crop = FactoryGirl.create(:crop)
|
||||
@garden = FactoryGirl.create(:garden, :owner => @right_member)
|
||||
# creating two crops to make sure that the correct one is selected
|
||||
# in the form.
|
||||
@tomato = FactoryGirl.create(:tomato)
|
||||
@maize = FactoryGirl.create(:maize)
|
||||
|
||||
# and likewise for gardens
|
||||
@garden = FactoryGirl.create(:garden_z, :owner => @right_member)
|
||||
@garden2 = FactoryGirl.create(:garden_a, :owner => @right_member)
|
||||
|
||||
@planting = assign(:planting,
|
||||
FactoryGirl.create(:planting, :garden => @garden, :crop => @crop)
|
||||
FactoryGirl.create(:planting, :garden => @garden, :crop => @tomato)
|
||||
)
|
||||
|
||||
end
|
||||
@@ -47,11 +53,20 @@ describe "plantings/edit" do
|
||||
|
||||
it "renders the edit planting form" do
|
||||
assert_select "form", :action => plantings_path(@planting), :method => "post" do
|
||||
assert_select "select#planting_garden_id", :name => "planting[garden_id]"
|
||||
assert_select "select#planting_crop_id", :name => "planting[crop_id]"
|
||||
assert_select "input#planting_quantity", :name => "planting[quantity]"
|
||||
assert_select "textarea#planting_description", :name => "planting[description]"
|
||||
end
|
||||
end
|
||||
|
||||
it "chooses the right crop" do
|
||||
assert_select "select#planting_crop_id",
|
||||
:html => /option value="#{@tomato.id}" selected="selected"/
|
||||
end
|
||||
|
||||
it "chooses the right garden" do
|
||||
assert_select "select#planting_garden_id",
|
||||
:html => /option value="#{@garden.id}" selected="selected"/
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@@ -5,12 +5,15 @@ describe "plantings/new" do
|
||||
@member = FactoryGirl.create(:member)
|
||||
|
||||
# create gardens and crops to populate dropdowns
|
||||
@garden1 = FactoryGirl.create(:garden, :owner => @member, :name => 'Garden1')
|
||||
@garden2 = FactoryGirl.create(:garden, :owner => @member, :name => 'Garden2')
|
||||
@garden_a = FactoryGirl.create(:garden, :owner => @member)
|
||||
@garden_z = FactoryGirl.create(:garden, :owner => @member)
|
||||
@crop1 = FactoryGirl.create(:tomato)
|
||||
@crop2 = FactoryGirl.create(:maize)
|
||||
|
||||
assign(:planting, FactoryGirl.create(:planting, :garden => @garden1))
|
||||
assign(:planting, FactoryGirl.create(:planting,
|
||||
:garden => @garden_a,
|
||||
:crop => @crop2
|
||||
))
|
||||
|
||||
end
|
||||
|
||||
@@ -24,8 +27,9 @@ describe "plantings/new" do
|
||||
context "logged in" do
|
||||
before(:each) do
|
||||
sign_in @member
|
||||
assign(:planting, Planting.new())
|
||||
assign(:crop, @crop2)
|
||||
assign(:garden, @garden2)
|
||||
assign(:garden, @garden_z)
|
||||
render
|
||||
end
|
||||
|
||||
@@ -45,7 +49,7 @@ describe "plantings/new" do
|
||||
|
||||
it "selects a garden given in a param" do
|
||||
assert_select "select#planting_garden_id",
|
||||
:html => /option value="#{@garden2.id}" selected="selected"/
|
||||
:html => /option value="#{@garden_z.id}" selected="selected"/
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user