<% preset_hints = { "to_send" => "Chi in campagna è ancora da contattare. È la scelta giusta quasi sempre.", "all" => "Tutte le società del progetto, anche già inviate o clienti.", "test_a" => "Solo chi ha già Test A in scheda.", "test_b" => "Solo chi ha già Test B in scheda." } extra_parts = @filters.summary_parts.drop(1) compact_select = "#{input_class} h-28 py-1" org_open = @filters.organization_extra_active? || @open_sections.include?("organization") campaign_open = @filters.campaign_extra_active? || @open_sections.include?("campaign") history_open = @filters.history_active? || @open_sections.include?("history") exclude_open = @filters.exclusions_active? || @open_sections.include?("exclusions") %>
<%= render "mailings/wizard", mailing: @mailing, current: :audience %>

Destinatari

Scegli da dove parti, eventualmente raffina, poi genera la lista. I filtri avanzati stanno nei box sotto.

<%= form_with url: audience_mailing_path(@mailing), method: :patch, class: "grid gap-6 xl:grid-cols-[1fr_20rem]", data: { controller: "audience-preview", action: "change->audience-preview#refresh" } do %> <%= hidden_field_tag :intent, "preview", data: { audience_preview_target: "intent" } %>

Chi deve ricevere questa email?

Tre cose bastano: lista di partenza, sport, regione. Il resto è opzionale.

<%= select_tag "filters[preset]", options_for_select(Catalog::MAILING_AUDIENCES.map { |k, v| [v, k] }, @filters.preset), class: input_class %>

<%= preset_hints[@filters.preset] %>

<%= hidden_field_tag "filters[sports][]", "" %> <%= select_tag "filters[sports][]", options_for_select(@sport_options, @filters["sports"]), multiple: true, size: 5, class: compact_select %>

Vuoto = tutti gli sport. Tieni premuto Ctrl o Cmd per più valori.

<%= hidden_field_tag "filters[regions][]", "" %> <%= select_tag "filters[regions][]", options_for_select(@region_options, @filters["regions"]), multiple: true, size: 5, class: compact_select %>
<% if extra_parts.any? %>
<% extra_parts.each do |part| %> <%= part %> <% end %>
<% end %>
<%= render layout: "mailings/audience_disclosure", locals: { name: "organization", title: "Altri dati società", hint: "M/F, provincia, streaming, stato, numero in lista", open: org_open, count: @filters.organization_extra_count } do %>
<%= hidden_field_tag "filters[team_genders][]", "" %> <%= select_tag "filters[team_genders][]", options_for_select(Catalog::TEAM_GENDERS.map { |k, v| [v, k] }, @filters["team_genders"]), multiple: true, size: 3, class: compact_select %>
<%= hidden_field_tag "filters[provinces][]", "" %> <%= select_tag "filters[provinces][]", options_for_select(@province_options, @filters["provinces"]), multiple: true, size: 4, class: compact_select %>
<%= hidden_field_tag "filters[streaming_statuses][]", "" %> <%= select_tag "filters[streaming_statuses][]", options_for_select(Catalog::STREAMING_STATUSES.map { |k, v| [v, k] }, @filters["streaming_statuses"]), multiple: true, size: 4, class: compact_select %>
<%= hidden_field_tag "filters[statuses][]", "" %> <%= select_tag "filters[statuses][]", options_for_select(Catalog::ORGANIZATION_STATUSES.map { |k, v| [v, k] }, @filters["statuses"]), multiple: true, size: 4, class: compact_select %>
<%= number_field_tag "filters[list_min]", @filters["list_min"], min: 1, class: input_class %>
<%= number_field_tag "filters[list_max]", @filters["list_max"], min: 1, class: input_class %>
<% end %> <%= render layout: "mailings/audience_disclosure", locals: { name: "campaign", title: "Campagna e trattativa", hint: "Stato invio, test A/B, stage, valore stimato", open: campaign_open, count: @filters.campaign_extra_count } do %>
<%= hidden_field_tag "filters[send_statuses][]", "" %> <%= select_tag "filters[send_statuses][]", options_for_select(Catalog::SEND_STATUSES.map { |k, v| [v, k] }, @filters["send_statuses"]), multiple: true, size: 3, class: compact_select %>

Serve soprattutto se la lista di partenza è «tutte».

<%= hidden_field_tag "filters[ab_variants][]", "" %> <%= select_tag "filters[ab_variants][]", options_for_select(Catalog::AB_VARIANTS.map { |k, v| [v, k] }, @filters["ab_variants"]), multiple: true, size: 2, class: compact_select %>
<%= hidden_field_tag "filters[pipeline_stages][]", "" %> <%= select_tag "filters[pipeline_stages][]", options_for_select(Catalog::PIPELINE_STAGES.map { |k, v| [v, k] }, @filters["pipeline_stages"]), multiple: true, size: 5, class: compact_select %>
<%= select_tag "filters[estimated_value]", options_for_select([["Qualsiasi", "any"], ["Presente", "present"], ["Assente", "blank"]], @filters["estimated_value"]), class: input_class %>
<% end %> <%= render layout: "mailings/audience_disclosure", locals: { name: "history", title: "Storico email", hint: "Chi ha già ricevuto o aperto una campagna", open: history_open, count: @filters.history_active? ? 1 : 0 } do %>
<%= select_tag "filters[history_kind]", options_for_select([ ["Nessun filtro storico", ""], ["Mai ricevuta una campagna", "never"], ["Ha ricevuto questa campagna", "received"], ["Non ha ricevuto questa campagna", "not_received"], ["Ha aperto questa campagna", "opened"], ["Ha ricevuto ma non aperto questa campagna", "not_opened"], ["Inviata negli ultimi N giorni", "recent"] ], @filters.history_kind), class: input_class %>
<%= select_tag "filters[history_mailing_id]", options_from_collection_for_select(@history_mailings, :id, :name, @filters.history_mailing_id), include_blank: "Scegli campagna", class: input_class %>
<%= number_field_tag "filters[history_days]", @filters.history_days, min: 1, placeholder: "30", class: input_class %>
<% end %> <%= render layout: "mailings/audience_disclosure", locals: { name: "exclusions", title: "Escludi dalla lista", hint: "Clienti, già ricevute, già aperte, invii recenti", open: exclude_open, count: @filters.exclusions_count } do %>
<%= hidden_field_tag "filters[exclude_received_mailing_ids][]", "" %> <%= select_tag "filters[exclude_received_mailing_ids][]", options_from_collection_for_select(@history_mailings, :id, :name, @filters["exclude_received_mailing_ids"]), multiple: true, size: 4, class: compact_select %>
<%= hidden_field_tag "filters[exclude_opened_mailing_ids][]", "" %> <%= select_tag "filters[exclude_opened_mailing_ids][]", options_from_collection_for_select(@history_mailings, :id, :name, @filters["exclude_opened_mailing_ids"]), multiple: true, size: 4, class: compact_select %>
<%= number_field_tag "filters[exclude_mailed_within_days]", @filters["exclude_mailed_within_days"], min: 1, class: input_class %>
<% end %>
<%= button_tag "Genera lista e rivedi", type: "submit", class: "#{btn_primary} w-full sm:w-auto", data: { action: "audience-preview#apply" } %> <%= link_to "Vai alla revisione senza rigenerare", @mailing, class: "#{btn_secondary} w-full sm:w-auto" %>
<% end %>