app/jobs/decidim/admin/newsletter_job.rb in decidim-admin-0.17.2 vs app/jobs/decidim/admin/newsletter_job.rb in decidim-admin-0.18.0

- old
+ new

@@ -5,18 +5,20 @@ # Custom ApplicationJob scoped to the admin panel. # class NewsletterJob < ApplicationJob queue_as :newsletter - def perform(newsletter) + def perform(newsletter, form, recipients_ids) @newsletter = newsletter + @form = form + @recipients_ids = recipients_ids @newsletter.with_lock do raise "Newsletter already sent" if @newsletter.sent? - @newsletter.update!( sent_at: Time.current, + extended_data: extended_data, total_recipients: recipients.count, total_deliveries: 0 ) end @@ -25,13 +27,22 @@ end end private + def extended_data + { + send_to_all_users: @form["send_to_all_users"], + send_to_followers: @form["send_to_followers"], + send_to_participants: @form["send_to_participants"], + participatory_space_types: @form["participatory_space_types"], + scope_ids: @form["scope_ids"] + } + end + def recipients @recipients ||= User.where(organization: @newsletter.organization) - .where.not(newsletter_notifications_at: nil, email: nil, confirmed_at: nil) - .not_deleted + .where(id: @recipients_ids) end end end end