From 70d1c31733de4a16a38e88d26364a856f38c3c87 Mon Sep 17 00:00:00 2001 From: zhitomirskiyi Date: Wed, 30 Mar 2011 11:26:36 -0700 Subject: [PATCH] fixed the issue of nothing showing up for empty aspects --- app/controllers/aspects_controller.rb | 9 +++++---- spec/controllers/aspects_controller_spec.rb | 14 ++++++++++---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/app/controllers/aspects_controller.rb b/app/controllers/aspects_controller.rb index 568da5f74..947762b20 100644 --- a/app/controllers/aspects_controller.rb +++ b/app/controllers/aspects_controller.rb @@ -101,10 +101,11 @@ class AspectsController < ApplicationController @contacts_in_aspect = @aspect.contacts.includes(:person => :profile).all.sort! { |x, y| x.person.name <=> y.person.name } c = Contact.arel_table - @contacts_not_in_aspect = current_user.contacts.where(c[:id].not_in(@contacts_in_aspect.map(&:id))).includes(:person => :profile).all.sort! { |x, y| x.person.name <=> y.person.name } - - pp @contacts_not_in_aspect - pp @contacts_in_aspect + if @contacts_in_aspect.empty? + @contacts_not_in_aspect = current_user.contacts.includes(:person => :profile).all.sort! { |x, y| x.person.name <=> y.person.name } + else + @contacts_not_in_aspect = current_user.contacts.where(c[:id].not_in(@contacts_in_aspect.map(&:id))).includes(:person => :profile).all.sort! { |x, y| x.person.name <=> y.person.name } + end @contacts = @contacts_in_aspect + @contacts_not_in_aspect diff --git a/spec/controllers/aspects_controller_spec.rb b/spec/controllers/aspects_controller_spec.rb index ae93940cb..cd6abd11d 100644 --- a/spec/controllers/aspects_controller_spec.rb +++ b/spec/controllers/aspects_controller_spec.rb @@ -305,6 +305,9 @@ describe AspectsController do @katz.profile.save @katz.save + connect_users(@alice, @alices_aspect_2, @eve, @eve.aspects.first) + connect_users(@alice, @alices_aspect_2, @zed, @zed.aspects.first) + connect_users(@alice, @alices_aspect_1, @katz, @katz.aspects.first) end it 'renders' do get :edit, :id => @alices_aspect_1.id @@ -312,13 +315,16 @@ describe AspectsController do end it 'assigns the contacts in alphabetical order with people in aspects first' do - connect_users(@alice, @alices_aspect_2, @eve, @eve.aspects.first) - connect_users(@alice, @alices_aspect_2, @zed, @zed.aspects.first) - connect_users(@alice, @alices_aspect_1, @katz, @katz.aspects.first) - get :edit, :id => @alices_aspect_2.id assigns[:contacts].map(&:id).should == [@alice.contact_for(@eve.person), @alice.contact_for(@zed.person), @alice.contact_for(@bob.person), @alice.contact_for(@katz.person)].map(&:id) end + + it 'assigns all the contacts if noone is there' do + alices_aspect_3 = @alice.aspects.create(:name => "aspect 3") + + get :edit, :id => alices_aspect_3.id + assigns[:contacts].map(&:id).should == [@alice.contact_for(@bob.person), @alice.contact_for(@eve.person), @alice.contact_for(@katz.person), @alice.contact_for(@zed.person)].map(&:id) + end end describe "#toggle_contact_visibility" do