Skip to content

Commit

Permalink
add plants is now a new site and action
Browse files Browse the repository at this point in the history
  • Loading branch information
chrigu committed Sep 20, 2011
1 parent bb6bb6c commit 4aeb353
Show file tree
Hide file tree
Showing 14 changed files with 86 additions and 96 deletions.
60 changes: 24 additions & 36 deletions app/controllers/beds_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,76 +4,64 @@ class BedsController < ApplicationController
load_and_authorize_resource :bed, :through => :garden

def show
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @bed }
end
end

# called before render the form
def new
@possible_states = init_possible_states

respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @bed }
end
end

def edit
# @bed = @garden.beds.find(params[:id])
@possible_states = init_possible_states
@possible_plants = @bed.possible_plants.collect{|plant| [plant.name, plant.id]}
end

def update
if @bed.update_attributes(params[:bed])
redirect_to [@garden, @bed], :notice => "Successfully updated garden."
else
render :action => 'edit'
end
end

# called after submitting the new form
def create
@possible_states = init_possible_states
# @bed = Bed.new(params[:bed])
@bed.garden = @garden
respond_to do |format|
if @bed.save
format.html { redirect_to(@garden, :notice => 'Bed was successfully created.') }
format.xml { render :xml => @bed, :status => :created, :location => @bed }
redirect_to(@garden, :notice => 'Bed was successfully created.')
else
format.html { render :action => "new" }
format.xml { render :xml => @bed.errors, :status => :unprocessable_entity }
render :action => "new"
end
end
end

# PUT /beds/1
# PUT /beds/1.xml
def update
plant_ids=params[:selected_plants][:plant_ids].collect { |s|s.to_i }
puts plant_ids
@bed.plant_ids = @bed.plant_ids.concat plant_ids


def add_plants
@possible_plants = @bed.possible_plants.collect{|plant| [plant.name, plant.id]}
end

respond_to do |format|
if @bed.update_attributes(params[:bed])
format.html { redirect_to(@garden, :notice => 'Bed was successfully updated.') }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @garden.errors, :status => :unprocessable_entity }
end
end
def update_add_plants
add_selected_plants()
#redirect_to([@garden, @bed], :notice => 'plant was added')
@possible_plants = @bed.possible_plants.collect{|plant| [plant.name, plant.id]}
render :action => "add_plants"
end

def destroy
@bed.destroy
respond_to do |format|
format.html { redirect_to(@garden) }
format.xml { head :ok }
end
redirect_to(@garden)
end

private

def init_possible_states
FieldState::all_states.collect{|state| [state.id, state.id]}
end

def add_selected_plants
plant_ids=params[:selected_plants][:plant_ids].collect { |s| s.to_i }
@bed.plant_ids = @bed.plant_ids.concat plant_ids
end

end
1 change: 0 additions & 1 deletion app/helpers/application_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ def to_html_tag(string)
replace_umlaute(s)
else
a = "string_is_nil"
puts a
a
end

Expand Down
2 changes: 1 addition & 1 deletion app/views/beds/_form_add_plants.html.erb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<%= form_for [@garden, @bed] do |f| %>
<%= form_for [@garden, @bed], :url => { :action => "update_add_plants"} do |f| %>
<% if @bed.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@bed.errors.count, "error") %> prohibited this bed from being saved:</h2>
Expand Down
18 changes: 18 additions & 0 deletions app/views/beds/add_plants.html.haml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
- title "Pflanzen zufügen"

%p
%b Name:
= @bed.name
%p
%p
%b Status:
= @bed.field_state
%p
%p
%b Gewählte Pflanzen:
- @bed.plants.each do |plant|
= plant.name
%p
= render 'form_add_plants'

= link_to "zurück", [@garden, @bed]
24 changes: 4 additions & 20 deletions app/views/beds/edit.html.erb
Original file line number Diff line number Diff line change
@@ -1,21 +1,5 @@
<% title "Pflanzen hinzufügen" %>
<% title "Beet editieren" %>
<p>
<b>Name:</b>
<%= @bed.name%>
</p>
<p>
<b>Status:</b>
<%= @bed.field_state%>
</p>
<p>
<b>Gewählte Pflanzen:</b>
<% @bed.plants.each do |plant| %>
<%= plant.name %>
<% end %>
</p>

<%= render 'form_add_plants' %>
<%= link_to 'Show', [@garden, @bed] %> |
<%= link_to 'Back', @garden %>
<%= render 'form'%>
<%= link_to 'Beet', [@garden, @bed] %> |
<%= link_to 'zum Garten', @garden %>
1 change: 1 addition & 0 deletions app/views/beds/show.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,6 @@
</p>

<%= link_to 'Edit', edit_garden_bed_path(@garden, @bed) %> |
<%= link_to 'Pflanzen hinzufügen', add_plants_garden_bed_path(@garden, @bed) %> |
<%= link_to 'Destroy', [@garden, @bed], :confirm => 'Are you sure?', :method => :delete %> |
<%= link_to 'zurück zum Garten', @garden %>
2 changes: 1 addition & 1 deletion app/views/layouts/application.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,4 @@
- if show_title?
%h1= yield(:title)

= yield
= yield
5 changes: 4 additions & 1 deletion config/routes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@
match 'login' => 'sessions#new', :as => :login

resources :gardens do
resources :beds
resources :beds do
get :add_plants, :on => :member
put :update_add_plants, :on => :member
end
end

resources :sessions
Expand Down
1 change: 0 additions & 1 deletion features/application_driver_layers/pages/base_page.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ class BasePage
def initialize(app)
@app = app
end
#left

def move_to_home
click_link "home"
Expand Down
14 changes: 14 additions & 0 deletions features/application_driver_layers/pages/bed_add_plants_page.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
class BedAddPlantsPage < BasePage

def add_plant(plant_name)
select plant_name
click_button "bed_submit"
next_page(:BedAddPlantsPage)
end

def move_to_bed_page
click_link "zurück"
next_page(:BedPage)
end

end
5 changes: 0 additions & 5 deletions features/application_driver_layers/pages/bed_edit_page.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
class BedEditPage < BasePage

def add_plant(plant_name)
select plant_name
click_button "bed_submit"
next_page(:GardenPage)
end
end
5 changes: 5 additions & 0 deletions features/application_driver_layers/pages/bed_page.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@ def move_to_edit_page
next_page(:BedEditPage)
end

def move_to_add_plants_page
click_link "Pflanzen hinzufügen"
next_page(:BedAddPlantsPage)
end

def move_to_garden_page
click_link "zurück zum Garten"
next_page(:GardenPage)
Expand Down
34 changes: 8 additions & 26 deletions features/application_driver_layers/webrat_driver.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ def create_new_family(family_name, energy_name, type_name)
new_family_page.create_new(family_name, energy_name, type_name)
end

def page_should_contain(text_array)
def page_should_contain text_array
content = gurke_mock.current_page.content
text_array.each do |text|
content.should contain text
Expand Down Expand Up @@ -99,13 +99,15 @@ def edit_bed_details(garden_name, bed_name)
def add_plants_to_bed(garden_name, bed_name, plant_names)
gardens_page = gurke_mock.current_page.move_to_gardens_page
garden_page = gardens_page.move_to_detail_page(garden_name)
bed_page = garden_page.move_to_detail_page(bed_name)
bed_add_plant_page = bed_page.move_to_add_plants_page
plant_names.each do |plant_name|
bed_page = garden_page.move_to_detail_page(bed_name)
bed_edit_page = bed_page.move_to_edit_page
garden_page = bed_edit_page.add_plant(plant_name)
garden_page.content.should contain plant_name
bed_add_plant_page = bed_add_plant_page.add_plant(plant_name)
end
bed_page = bed_add_plant_page.move_to_bed_page
plant_names.each do |plant_name|
bed_page.content.should contain plant_name
end

end

private
Expand All @@ -132,24 +134,4 @@ def gurke_mock
@gurke_mock
end

# def app
# begin
# puts "hHHHHHHHHHHHHHHHAAAAAAAAAAAAAALLLLLLLLLLLLLOOOOOOOOOOO"
# puts parse_caller(caller(2).first).inspect
# rescue Exception => e
# puts e.backtrace
# end
# end
#
#
# def parse_caller(at)
# if /^(.+?):(\d+)(?::in `(.*)')?/ =~ at
# file = Regexp.last_match[1]
# line = Regexp.last_match[2].to_i
# method = Regexp.last_match[3]
# [file, line, method]
# end
# end


end
10 changes: 6 additions & 4 deletions test/unit/features/page_objects_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -92,12 +92,14 @@ def test_garden_pages
bed_page = garden_page.move_to_detail_page("bed_name")
assert_page(BedPage, a, bed_page)

bed_edit_page = bed_page.move_to_edit_page
assert_page(BedEditPage, a, bed_edit_page)
bed_add_plants_page = bed_page.move_to_add_plants_page
assert_page(BedAddPlantsPage, a, bed_add_plants_page)

garden_page = bed_edit_page.add_plant("plant_name")
assert_page(GardenPage, a, garden_page)
bed_add_plants_page = bed_add_plants_page.add_plant("plant_name")
assert_page(BedAddPlantsPage, a, bed_add_plants_page)

bed_page = bed_add_plants_page.move_to_bed_page
assert_page(BedPage, a, bed_page)
end


Expand Down

0 comments on commit 4aeb353

Please sign in to comment.