app/jobs/decidim/admin/newsletter_job.rb in decidim-admin-0.3.2 vs app/jobs/decidim/admin/newsletter_job.rb in decidim-admin-0.4.0

- old
+ new

@@ -6,28 +6,32 @@ # class NewsletterJob < ApplicationJob queue_as :newsletter def perform(newsletter) - newsletter.with_lock do - raise "Newsletter already sent" if newsletter.sent? + @newsletter = newsletter - newsletter.update_attributes!( + @newsletter.with_lock do + raise "Newsletter already sent" if @newsletter.sent? + + @newsletter.update_attributes!( sent_at: Time.current, total_recipients: recipients.count, total_deliveries: 0 ) end recipients.find_each do |user| - NewsletterDeliveryJob.perform_later(user, newsletter) + NewsletterDeliveryJob.perform_later(user, @newsletter) end end private def recipients - @recipients ||= User.where(newsletter_notifications: true).where.not(email: nil, confirmed_at: nil) + @recipients ||= User.where(newsletter_notifications: true, organization: @newsletter.organization) + .where.not(email: nil, confirmed_at: nil) + .not_deleted end end end end