Add polls (#10111)
* Add polls Fix #1629 * Add tests * Fixes * Change API for creating polls * Use name instead of content for votes * Remove poll validation for remote polls * Add polls to public pages * When updating the poll, update options just in case they were changed * Fix public pages showing both poll and other media
This commit is contained in:
parent
99dc212ae5
commit
230a012f00
47 changed files with 1038 additions and 19 deletions
29
app/models/poll_vote.rb
Normal file
29
app/models/poll_vote.rb
Normal file
|
@ -0,0 +1,29 @@
|
|||
# frozen_string_literal: true
|
||||
# == Schema Information
|
||||
#
|
||||
# Table name: poll_votes
|
||||
#
|
||||
# id :bigint(8) not null, primary key
|
||||
# account_id :bigint(8)
|
||||
# poll_id :bigint(8)
|
||||
# choice :integer default(0), not null
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
#
|
||||
|
||||
class PollVote < ApplicationRecord
|
||||
belongs_to :account
|
||||
belongs_to :poll, inverse_of: :votes
|
||||
|
||||
validates :choice, presence: true
|
||||
validates_with VoteValidator
|
||||
|
||||
after_create_commit :increment_counter_cache
|
||||
|
||||
private
|
||||
|
||||
def increment_counter_cache
|
||||
poll.cached_tallies[choice] = (poll.cached_tallies[choice] || 0) + 1
|
||||
poll.save
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue