diff --git a/app/helpers/communities_helper.rb b/app/helpers/communities_helper.rb index beba4bf23..b8b7e7d35 100644 --- a/app/helpers/communities_helper.rb +++ b/app/helpers/communities_helper.rb @@ -18,7 +18,12 @@ module CommunitiesHelper end def is_author?(community, participant) - community.topics.pluck(:author_id).include?(participant.id) + if community.from_proposal? + community.proposal.author_id == participant.id + else + investment = Budget::Investment.where(community_id: community.id).first + investment.author_id == participant.id + end end end diff --git a/app/models/community.rb b/app/models/community.rb index 893e36b6c..710982200 100644 --- a/app/models/community.rb +++ b/app/models/community.rb @@ -4,7 +4,9 @@ class Community < ActiveRecord::Base has_many :topics def participants - users_participants = users_who_commented_by(self) + users_who_topics_author_by(self) + users_participants = users_who_commented_by + + users_who_topics_author_by + + author_from_community users_participants.uniq end @@ -14,14 +16,24 @@ class Community < ActiveRecord::Base private - def users_who_commented_by(community) - topics_ids = community.topics.pluck(:id) + def users_who_commented_by + topics_ids = topics.pluck(:id) query = "comments.commentable_id IN (?)and comments.commentable_type = 'Topic'" User.by_comments(query, topics_ids) end - def users_who_topics_author_by(community) - author_ids = community.topics.pluck(:author_id) + def users_who_topics_author_by + author_ids = topics.pluck(:author_id) User.by_authors(author_ids) end + + def author_from_community + if from_proposal? + User.where(id: proposal.author_id) + else + investment = Budget::Investment.where(community_id: id).first + User.where(id: investment.author_id) + end + end + end