Rende usabili i filtri destinatari e permette di eliminare le bozze email.
CI / scan_ruby (push) Failing after 12m54s
CI / scan_js (push) Successful in 12m34s
CI / lint (push) Failing after 13m10s

Le listbox non applicavano sport e altri criteri; ora i filtri sono checkbox, c'è «mai contattati» e dal cruscotto si cancellano le bozze. La lista organizzazioni allinea le colonne al foglio campagna.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-07 07:57:50 +02:00
co-authored by Cursor
parent e492c43bf8
commit 3e73e708e4
16 changed files with 1114 additions and 90 deletions
@@ -47,6 +47,24 @@ class MailingsAudienceQueryTest < ActiveSupport::TestCase
assert_includes ids, @volley.id
end
test "never contacted checkbox maps to history never" do
filters = Mailings::AudienceFilters.new("preset" => "all", "never_contacted" => "1")
assert_equal "never", filters.history_kind
end
test "history never excludes orgs with email_sent activity" do
Activity.create!(
organization: @acme,
activity_type: "email_sent",
subject: "Lancio già inviato",
happened_at: 1.day.ago
)
ids = query({ "preset" => "all", "never_contacted" => "1" }).relation.pluck(:id)
assert_not_includes ids, @acme.id
assert_includes ids, @volley.id
end
test "exclude customers drops active customers" do
@volley.update!(status: "active_customer")
ids = query({ "preset" => "all", "exclude_customers" => true }).relation.pluck(:id)