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
+15 -7
View File
@@ -127,10 +127,12 @@ class MailingsController < ApplicationController
@mailing.rebuild_recipients!
redirect_to @mailing, notice: "Lista generata: #{@mailing.pending_count} da inviare, #{@mailing.skipped_count} esclusi."
else
@page_title = "Destinatari · #{@mailing.name}"
load_audience_options
assign_audience_preview
render :audience
open_sections = Array(params[:open_sections]).map(&:to_s).compact_blank
if open_sections.any?
redirect_to audience_mailing_path(@mailing, open_sections: open_sections)
else
redirect_to audience_mailing_path(@mailing)
end
end
end
@@ -285,9 +287,15 @@ class MailingsController < ApplicationController
end
def audience_filter_params
params.fetch(:filters, ActionController::Parameters.new).permit(
:preset, :list_min, :list_max, :estimated_value, :history_kind, :history_mailing_id, :history_days,
:exclude_customers, :exclude_mailed_within_days,
raw = params.fetch(:filters, ActionController::Parameters.new)
copied = raw.respond_to?(:to_unsafe_h) ? raw.to_unsafe_h : raw.to_h
Mailings::AudienceFilters::ARRAY_KEYS.each do |key|
copied[key] = Array(copied[key]) if copied.key?(key)
end
ActionController::Parameters.new(copied).permit(
:preset, :list_min, :list_max, :estimated_value, :history_kind, :history_days,
:history_mailing_id, :never_contacted, :exclude_customers, :exclude_mailed_within_days,
sports: [], team_genders: [], regions: [], provinces: [], streaming_statuses: [], statuses: [],
send_statuses: [], ab_variants: [], pipeline_stages: [],
exclude_received_mailing_ids: [], exclude_opened_mailing_ids: []