Prevent authors or users that already scored from scoring related content

This commit is contained in:
Bertocq
2017-12-20 03:06:41 +01:00
parent c67851df53
commit 3eecabe9a8
2 changed files with 10 additions and 3 deletions

View File

@@ -28,6 +28,11 @@ class RelatedContent < ActiveRecord::Base
hide_with_opposite if (related_content_scores.sum(:value) / self.related_content_scores_count) < RELATED_CONTENT_SCORE_THRESHOLD hide_with_opposite if (related_content_scores.sum(:value) / self.related_content_scores_count) < RELATED_CONTENT_SCORE_THRESHOLD
end end
def scored_by_user?(user)
related_content_scores.where(user: user).count > 0
end
private private
def hide_with_opposite def hide_with_opposite
@@ -36,7 +41,8 @@ class RelatedContent < ActiveRecord::Base
end end
def create_opposite_related_content def create_opposite_related_content
related_content = RelatedContent.create!(opposite_related_content: self, parent_relationable: child_relationable, child_relationable: parent_relationable) related_content = RelatedContent.create!(opposite_related_content: self, parent_relationable: child_relationable,
child_relationable: parent_relationable, author: author)
self.opposite_related_content = related_content self.opposite_related_content = related_content
end end

View File

@@ -1,9 +1,10 @@
<ul class="related-content-list" id="related-content-list"> <ul class="related-content-list" id="related-content-list">
<% @related_contents.each do |related| %> <% @related_contents.each do |related| %>
<li id="related-content-<%= related.find_related_content(relationable).id %>"> <li id="related-content-<%= related.find_related_content(relationable).id %>">
<% if current_user %> <% related_content = related.find_related_content(relationable) %>
<% if current_user && related_content.author != current_user && !related_content.scored_by_user?(current_user)%>
<span id="<%= dom_id(related.find_related_content(relationable)) %>" class="js-score-actions score-actions"> <span id="<%= dom_id(related.find_related_content(relationable)) %>" class="js-score-actions score-actions">
<%= render 'relationable/score', related: related.find_related_content(relationable) %> <%= render 'relationable/score', related: related_content %>
</span> </span>
<% end %> <% end %>