Merge pull request #252 from AyuntamientoMadrid/votes-cache-counters
Votes cache counters
This commit is contained in:
@@ -49,7 +49,15 @@ class Comment < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def total_votes
|
||||
votes_for.size
|
||||
cached_votes_total
|
||||
end
|
||||
|
||||
def total_likes
|
||||
cached_votes_up
|
||||
end
|
||||
|
||||
def total_dislikes
|
||||
cached_votes_down
|
||||
end
|
||||
|
||||
def not_visible?
|
||||
|
||||
@@ -40,15 +40,15 @@ class Debate < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def likes
|
||||
get_likes.size
|
||||
cached_votes_up
|
||||
end
|
||||
|
||||
def dislikes
|
||||
get_dislikes.size
|
||||
cached_votes_down
|
||||
end
|
||||
|
||||
def total_votes
|
||||
votes_for.size
|
||||
cached_votes_total
|
||||
end
|
||||
|
||||
def editable?
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<span>
|
||||
<!-- <%= t('debates.comment.votes_weighted_score', score: comment.weighted_score) %> -->
|
||||
<%= t('debates.comment.votes', count: comment.total_votes) %>
|
||||
</span>
|
||||
|
|
||||
@@ -8,7 +7,7 @@
|
||||
method: "post", remote: true do %>
|
||||
<i class="icon-angle-up"></i>
|
||||
<% end %>
|
||||
<%= comment.get_likes.size %>
|
||||
<%= comment.total_likes %>
|
||||
</span>
|
||||
|
||||
<span class="against">
|
||||
@@ -16,5 +15,5 @@
|
||||
method: "post", remote: true do %>
|
||||
<i class="icon-angle-down"></i>
|
||||
<% end %>
|
||||
<%= comment.get_dislikes.size %>
|
||||
<%= comment.total_dislikes %>
|
||||
</span>
|
||||
|
||||
@@ -61,7 +61,6 @@ en:
|
||||
zero: No votes
|
||||
one: 1 vote
|
||||
other: "%{count} votes"
|
||||
votes_weighted_score: "Total: %{score}"
|
||||
form:
|
||||
debate_title: Debate title
|
||||
title_instructions: "SBe clear and precise with the title, but make it informative"
|
||||
|
||||
@@ -61,7 +61,6 @@ es:
|
||||
zero: Sin votos
|
||||
one: 1 voto
|
||||
other: "%{count} votos"
|
||||
votes_weighted_score: "Total: %{score}"
|
||||
form:
|
||||
debate_title: Título del debate
|
||||
title_instructions: "Sé claro y conciso a la hora de poner un título, pero recuerda que debe explicar bien tu idea, ¡es tu carta de entrada!"
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
class AddsVotableCacheFieldToComments < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :comments, :cached_votes_total, :integer, default: 0
|
||||
add_column :comments, :cached_votes_up, :integer, default: 0
|
||||
add_column :comments, :cached_votes_down, :integer, default: 0
|
||||
|
||||
add_index :comments, :cached_votes_total
|
||||
add_index :comments, :cached_votes_up
|
||||
add_index :comments, :cached_votes_down
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,11 @@
|
||||
class AddsVotableCacheFieldToDebates < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :debates, :cached_votes_total, :integer, default: 0
|
||||
add_column :debates, :cached_votes_up, :integer, default: 0
|
||||
add_column :debates, :cached_votes_down, :integer, default: 0
|
||||
|
||||
add_index :debates, :cached_votes_total
|
||||
add_index :debates, :cached_votes_up
|
||||
add_index :debates, :cached_votes_down
|
||||
end
|
||||
end
|
||||
12
db/schema.rb
12
db/schema.rb
@@ -54,8 +54,14 @@ ActiveRecord::Schema.define(version: 20150826112411) do
|
||||
t.datetime "archived_at"
|
||||
t.integer "moderator_id"
|
||||
t.integer "administrator_id"
|
||||
t.integer "cached_votes_total", default: 0
|
||||
t.integer "cached_votes_up", default: 0
|
||||
t.integer "cached_votes_down", default: 0
|
||||
end
|
||||
|
||||
add_index "comments", ["cached_votes_down"], name: "index_comments_on_cached_votes_down", using: :btree
|
||||
add_index "comments", ["cached_votes_total"], name: "index_comments_on_cached_votes_total", using: :btree
|
||||
add_index "comments", ["cached_votes_up"], name: "index_comments_on_cached_votes_up", using: :btree
|
||||
add_index "comments", ["commentable_id", "commentable_type"], name: "index_comments_on_commentable_id_and_commentable_type", using: :btree
|
||||
add_index "comments", ["hidden_at"], name: "index_comments_on_hidden_at", using: :btree
|
||||
add_index "comments", ["user_id"], name: "index_comments_on_user_id", using: :btree
|
||||
@@ -70,9 +76,15 @@ ActiveRecord::Schema.define(version: 20150826112411) do
|
||||
t.datetime "hidden_at"
|
||||
t.datetime "flagged_as_inappropiate_at"
|
||||
t.integer "inappropiate_flags_count", default: 0
|
||||
t.integer "cached_votes_total", default: 0
|
||||
t.integer "cached_votes_up", default: 0
|
||||
t.integer "cached_votes_down", default: 0
|
||||
t.datetime "archived_at"
|
||||
end
|
||||
|
||||
add_index "debates", ["cached_votes_down"], name: "index_debates_on_cached_votes_down", using: :btree
|
||||
add_index "debates", ["cached_votes_total"], name: "index_debates_on_cached_votes_total", using: :btree
|
||||
add_index "debates", ["cached_votes_up"], name: "index_debates_on_cached_votes_up", using: :btree
|
||||
add_index "debates", ["hidden_at"], name: "index_debates_on_hidden_at", using: :btree
|
||||
|
||||
create_table "identities", force: :cascade do |t|
|
||||
|
||||
@@ -37,6 +37,9 @@ FactoryGirl.define do
|
||||
association :votable, factory: :debate
|
||||
association :voter, factory: :user
|
||||
vote_flag true
|
||||
after(:create) do |vote, _|
|
||||
vote.votable.update_cached_votes
|
||||
end
|
||||
end
|
||||
|
||||
factory :comment do
|
||||
|
||||
Reference in New Issue
Block a user