diff --git a/app/models/member.rb b/app/models/member.rb index ed6dae747..30a69728d 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -5,6 +5,7 @@ class Member < ActiveRecord::Base has_many :posts, :foreign_key => 'author_id' has_many :comments, :foreign_key => 'author_id' has_many :gardens, :foreign_key => 'owner_id' + has_many :plantings, :through => :gardens has_many :forums, :foreign_key => 'owner_id' has_and_belongs_to_many :roles diff --git a/app/models/planting.rb b/app/models/planting.rb index 9971e19d1..559e50e42 100644 --- a/app/models/planting.rb +++ b/app/models/planting.rb @@ -6,6 +6,7 @@ class Planting < ActiveRecord::Base belongs_to :garden belongs_to :crop + belongs_to :forum def planting_slug "#{owner.login_name}-#{garden.name}-#{crop.system_name}".downcase.gsub(' ', '-') diff --git a/app/views/home/index.html.haml b/app/views/home/index.html.haml index 389bfdee2..932748680 100644 --- a/app/views/home/index.html.haml +++ b/app/views/home/index.html.haml @@ -2,23 +2,71 @@ %h1= "Welcome, #{current_member.login_name}" - %p - %b Your profile: - =link_to current_member, current_member + .row + .span6 + %p + %b Your profile: + =link_to current_member, current_member - %p - %b Your gardens: + %p + %b Your location: + = current_member.location ? current_member.location : 'Not set' + %small + = link_to "Edit", edit_registration_path(current_member) - %ul.inline - - current_member.gardens.each do |g| - %li= link_to g.name, g + %ul.inline + %li.first + %b Your gardens: + - current_member.gardens.each do |g| + %li= link_to g.name, g + - if can? :create, Garden + %li= link_to 'Add a garden', new_garden_path + .span6 + - if current_member.has_role?(:admin) + %p + %b You are an ADMIN USER. - %p - %b Recently planted: - %ul - %li coming soon + - if current_member.forums + %p + %b Forums you administer: + %ul + - current_member.forums.each do |f| + %li= link_to f.name, f - %h2 Recent comments on your posts + .row + .span6 + %h2 Your recent plantings + - if current_member.plantings.count > 0 + %ul + - current_member.plantings.limit(10).each do |p| + %li + = link_to "#{p.crop.system_name} in #{p.location}", p + - if p.planted_at + on + = p.planted_at.to_s(:date) + - else + %p None yet. + - if can? :create, Planting + %p= link_to "Plant something", new_planting_path, :class => 'btn btn-primary' + + .span6 + %h2 Your recent posts + - if current_member.posts.count > 0 + %ul + - current_member.posts.limit(10).each do |p| + %li + = link_to p.subject, p + - if p.forum + in + = link_to p.forum.name, p.forum + on + = p.created_at.to_s(:date) + - else + %p None yet. + - if can? :create, Planting + %p= link_to "Post something", new_post_path, :class => 'btn btn-primary' + + .span6 - else diff --git a/app/views/layouts/_header.html.haml b/app/views/layouts/_header.html.haml index 0f7937a4e..b62d0ee0f 100644 --- a/app/views/layouts/_header.html.haml +++ b/app/views/layouts/_header.html.haml @@ -12,10 +12,6 @@ %li= link_to "Members", members_path %li= link_to "Posts", posts_path %li= link_to "Forums", forums_path - - if can? :create, Post - %li= link_to("Post something", new_post_path) - - if can? :create, Planting - %li= link_to("Plant something", new_planting_path) %li.divider-vertical - if member_signed_in? %li.dropdown< diff --git a/spec/models/member_spec.rb b/spec/models/member_spec.rb index f86b3f3b4..04f87dcea 100644 --- a/spec/models/member_spec.rb +++ b/spec/models/member_spec.rb @@ -50,6 +50,14 @@ describe 'member' do @member.gardens.first.name.should eq "Garden" end + it 'has many plantings through gardens' do + @member.save + @planting = FactoryGirl.create(:planting, + :garden => @member.gardens.first + ) + @member.plantings.count.should eq 1 + end + it "has many comments" do @member.save @comment1 = FactoryGirl.create(:comment, :author => @member) diff --git a/spec/views/layouts/application_spec.rb b/spec/views/layouts/application_spec.rb index 426579e9b..7686ae416 100644 --- a/spec/views/layouts/application_spec.rb +++ b/spec/views/layouts/application_spec.rb @@ -33,14 +33,6 @@ describe 'layouts/application.html.haml', :type => "view" do rendered.should contain /member\d+/ end - it 'should have a "Post" link' do - rendered.should contain 'Post something' - end - - it 'should have a plant something link' do - rendered.should contain 'Plant something' - end - it "should show member's name" do assert_select("a[href=/members/#{@member.login_name}]", "Profile") end