discourse/plugins/poll/lib/post_extension.rb

27 lines
627 B
Ruby

# frozen_string_literal: true
module DiscoursePoll
module PostExtension
extend ActiveSupport::Concern
prepended do
attr_accessor :extracted_polls
has_many :polls, dependent: :destroy
after_save do
polls = self.extracted_polls
self.extracted_polls = nil
next if polls.blank? || !polls.is_a?(Hash)
post = self
::Poll.transaction do
polls.values.each { |poll| DiscoursePoll::Poll.create!(post.id, poll) }
post.custom_fields[DiscoursePoll::HAS_POLLS] = true
post.save_custom_fields(true)
end
end
end
end
end