make gardens page look like plantings/seeds

This commit is contained in:
Skud committed 2013-07-26 14:48:55 +10:00
1 parent 82da4a09f0
commit ebb8765583
4 files changed
+73 -25

No files matched your search

+5 -1
View File
@@ -3,7 +3,11 @@ class GardensController < ApplicationController
# GET /gardens
# GET /gardens.json
def index
@gardens = Garden.all
@gardens = Garden.paginate(:page => params[:page])
@owner = Member.find_by_id(params[:owner_id])
if @owner
@gardens = @owner.gardens.paginate(:page => params[:page])
end
respond_to do |format|
format.html # index.html.erb
+54 -18
View File
@@ -1,23 +1,59 @@
%h1 Listing gardens
- content_for :title, @owner ? "#{@owner}'s gardens" : "Everyone's gardens"
- if can? :create, Garden
%p= link_to 'New Garden', new_garden_path, :class => 'btn btn-primary'
%p
- if can? :create, Garden
- if @owner
%p
- if @owner == current_member
= link_to 'Add a garden', new_garden_path, :class => 'btn btn-primary'
= link_to "View everyone's gardens", gardens_path, :class => 'btn'
- else # everyone's gardens
= link_to 'Add a garden', new_garden_path, :class => 'btn btn-primary'
- if current_member
= link_to 'View your gardens', gardens_path(:owner_id => current_member.id), :class => 'btn'
- else
= render :partial => 'shared/signin_signup', :locals => { :to => 'add a new garden' }
%table
%tr
%th Name
%th User
%th Slug
%th
%th
- if @gardens.length > 0
- @gardens.each do |garden|
%div.pagination
= page_entries_info @gardens, :model => "gardens"
= will_paginate @gardens
%table.table.table-striped
%tr
%td= link_to garden.name, garden
%td= garden.owner
%td= garden.slug
- if can? :edit, garden
%td= link_to 'Edit', edit_garden_path(garden), :class => 'btn btn-mini'
- if can? :destroy, garden
%td= link_to 'Delete', garden, method: :delete, data: { confirm: 'Are you sure?' }, :class => 'btn btn-mini'
- unless @owner
%th Owner
%th Garden name
%th Description
%th Plantings
%th
- @gardens.each do |garden|
%tr
- unless @owner
%td= link_to garden.owner.login_name, garden.owner
%td= link_to garden.name, garden
%td= garden.description
%td
- if garden.plantings.empty?
None
- else
%ul
- garden.plantings.each do |p|
%li
= p.quantity
= link_to p.crop.system_name, p
- if p.planted_at
planted on
= p.planted_at
%td= link_to 'Details', garden, :class => 'btn btn-mini'
%div.pagination
= page_entries_info @gardens, :model => "gardens"
= will_paginate @gardens
- else
%p There are no gardens to display.
+4 -2
View File
@@ -22,7 +22,8 @@
%table.table.table-striped
%tr
%th Owner
- unless @owner
%th Owner
%th Crop
%th Description
%th Quantity
@@ -33,7 +34,8 @@
- @seeds.each do |seed|
%tr
%td= link_to seed.owner.login_name, seed.owner
- unless @owner
%td= link_to seed.owner.login_name, seed.owner
%td= link_to seed.crop.system_name, seed.crop
%td= seed.description
%td= seed.quantity
+10 -4
View File
@@ -4,10 +4,16 @@ describe "gardens/index" do
before(:each) do
controller.stub(:current_user) { nil }
@owner = FactoryGirl.create(:member)
assign(:gardens, [
FactoryGirl.create(:garden, :owner => @owner),
FactoryGirl.create(:garden, :owner => @owner)
])
page = 1
per_page = 2
total_entries = 2
gardens = WillPaginate::Collection.create(page, per_page, total_entries) do |pager|
pager.replace([
FactoryGirl.create(:garden, :owner => @owner),
FactoryGirl.create(:garden, :owner => @owner)
])
end
assign(:gardens, gardens)
end
it "renders a list of gardens" do