DEV: Fix poll plugin causing error when server reloads in dev env.

This commit is contained in:
Guo Xiang Tan 2020-05-08 14:58:39 +08:00
parent d8d54a92f1
commit 6359a5f8a9
No known key found for this signature in database
GPG Key ID: FBD110179AAC1F20

@ -451,28 +451,30 @@ after_initialize do
mount ::DiscoursePoll::Engine, at: "/polls" mount ::DiscoursePoll::Engine, at: "/polls"
end end
Post.class_eval do reloadable_patch do
attr_accessor :extracted_polls Post.class_eval do
attr_accessor :extracted_polls
has_many :polls, dependent: :destroy has_many :polls, dependent: :destroy
after_save do after_save do
polls = self.extracted_polls polls = self.extracted_polls
next if polls.blank? || !polls.is_a?(Hash) next if polls.blank? || !polls.is_a?(Hash)
post = self post = self
Poll.transaction do Poll.transaction do
polls.values.each do |poll| polls.values.each do |poll|
DiscoursePoll::Poll.create!(post.id, poll) DiscoursePoll::Poll.create!(post.id, poll)
end
post.custom_fields[DiscoursePoll::HAS_POLLS] = true
post.save_custom_fields(true)
end end
post.custom_fields[DiscoursePoll::HAS_POLLS] = true
post.save_custom_fields(true)
end end
end end
end
User.class_eval do User.class_eval do
has_many :poll_votes, dependent: :delete_all has_many :poll_votes, dependent: :delete_all
end
end end
validate(:post, :validate_polls) do |force = nil| validate(:post, :validate_polls) do |force = nil|