diff --git a/app/models/group.rb b/app/models/group.rb index e872bc30cbf6aa8a86cd4a59689c6abe31740e10..6b8f1892131882d3db7e8c42e5279ff9b6304174 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -5,11 +5,11 @@ class Group key :person_ids, Array key :request_ids, Array - key :my_post_ids, Array + key :post_ids, Array many :people, :in => :person_ids, :class_name => 'Person' many :requests, :in => :request_ids, :class_name => 'Request' - many :my_posts, :in => :my_post_ids, :class_name => 'Post' + many :posts, :in => :post_ids, :class_name => 'Post' belongs_to :user, :class_name => 'User' diff --git a/app/models/user.rb b/app/models/user.rb index a979af879db4c43fd32f2d70cfd13e400cfe7e0e..210714fcd765bd0fd3587e64d8454079f4f51289 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -58,7 +58,7 @@ class User if group_id group = self.groups.find_by_id(group_id) - group.my_posts << post + group.posts << post group.save end @@ -68,7 +68,7 @@ class User def visible_posts( opts = {} ) if opts[:by_members_of] group = self.groups.find_by_id( opts[:by_members_of].id ) - self.raw_visible_posts.find_all_by_person_id( (group.person_ids + [self.person.id] ), :order => "created_at desc") + group.posts end end @@ -267,6 +267,11 @@ class User self.raw_visible_posts << object self.save + groups = self.groups_with_person(object.person) + groups.each{ |group| group.posts << object + group.save + } + groups = groups_with_person(object.person) object.socket_to_uid(id, :group_id => groups.first.id) if (object.respond_to?(:socket_to_uid) && !self.owns?(object)) end diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb index 035e9be2fa5ef58fd1a9881fdecc4bd0fd88fec2..26f3397d452215b27590923312b0752fd0cd167d 100644 --- a/spec/models/group_spec.rb +++ b/spec/models/group_spec.rb @@ -60,7 +60,21 @@ describe Group do status_message = @user.post( :status_message, :message => "hey", :group_id => @group.id ) @group.reload - @group.my_posts.include?(status_message).should be true + @group.posts.include?(status_message).should be true + end + + it 'should add post to group via receive method' do + group = @user.group(:name => 'losers') + group2 = @user2.group(:name => 'winners') + friend_users(@user, group, @user2, group2) + + message = @user2.post(:status_message, :message => "Hey Dude") + + @user.receive message.to_diaspora_xml + + group.reload + group.posts.include?(message).should be true + @user.visible_posts(:by_members_of => group).include?(message).should be true end end