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