DG IZ; user's visible posts method queries group objects for their posts
This commit is contained in:
parent
055c222fc2
commit
4d86933f4a
3 changed files with 24 additions and 5 deletions
|
|
@ -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'
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue