Merge pull request #252 from AyuntamientoMadrid/votes-cache-counters

Votes cache counters
This commit is contained in:
Enrique García
2015-08-26 16:50:22 +02:00
9 changed files with 51 additions and 9 deletions

View File

@@ -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?

View File

@@ -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?

View File

@@ -1,5 +1,4 @@
<span>
<!-- <%= t('debates.comment.votes_weighted_score', score: comment.weighted_score) %> -->
<%= t('debates.comment.votes', count: comment.total_votes) %>
</span>
&nbsp;|&nbsp;
@@ -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>

View File

@@ -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"

View File

@@ -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!"

View File

@@ -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

View File

@@ -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

View File

@@ -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|

View File

@@ -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