feat(manager data exports): add exports for newsletter

This commit is contained in:
Eric Leroy-Terquem 2024-11-04 17:55:22 +01:00
parent 7cf81d3e9b
commit d5de21fac4
No known key found for this signature in database
GPG key ID: 53D8FAECEF207605
4 changed files with 43 additions and 4 deletions

View file

@ -49,7 +49,19 @@ module Manager
end end
end end
send_data csv, filename: "administrateurs_#{Date.today.strftime('%d-%m-%Y')}.csv" send_data csv, filename: "administrateurs_recents_#{Date.today.strftime('%d-%m-%Y')}.csv"
end
def export_with_publiee_procedure
administrateurs = Administrateur.joins(:user).where.not(users: { email_verified_at: nil }).joins(:procedures).where(procedures: { aasm_state: [:publiee] })
csv = CSV.generate(headers: true) do |csv|
csv << ['ID', 'Email', 'Date de création']
administrateurs.each do |administrateur|
csv << [administrateur.id, administrateur.email, administrateur.created_at]
end
end
send_data csv, filename: "administrateurs_actifs_#{Date.today.strftime('%d-%m-%Y')}.csv"
end end
private private

View file

@ -32,7 +32,19 @@ module Manager
end end
end end
send_data csv, filename: "instructeurs_#{Date.today.strftime('%d-%m-%Y')}.csv" send_data csv, filename: "instructeurs_recents_#{Date.today.strftime('%d-%m-%Y')}.csv"
end
def export_currently_active
instructeurs = Instructeur.joins(:user).where(users: { current_sign_in_at: 6.months.ago.. }).where.not(users: { email_verified_at: nil })
csv = CSV.generate(headers: true) do |csv|
csv << ['ID', 'Email', 'Date de création']
instructeurs.each do |instructeur|
csv << [instructeur.id, instructeur.email, instructeur.created_at]
end
end
send_data csv, filename: "instructeurs_actifs_#{Date.today.strftime('%d-%m-%Y')}.csv"
end end
end end
end end

View file

@ -1,6 +1,19 @@
<div> <header class="main-content__header">
<h1 class="main-content__page-title">
Export des administrateurs et instructeurs
</h1>
</header>
<section class="main-content__body">
<h2>Pour les invitations aux webinaires</h2>
<ul> <ul>
<li><a href="/manager/exports/administrateurs/last_half_year">Export des administrateurs créés dans les 6 derniers mois</a></li> <li><a href="/manager/exports/administrateurs/last_half_year">Export des administrateurs créés dans les 6 derniers mois</a></li>
<li><a href="/manager/exports/instructeurs/last_half_year">Export des instructeurs créés dans les 6 derniers mois</a></li> <li><a href="/manager/exports/instructeurs/last_half_year">Export des instructeurs créés dans les 6 derniers mois</a></li>
</ul> </ul>
</div>
<h2>Pour les newsletters</h2>
<ul>
<li><a href="/manager/exports/administrateurs/with_publiee_procedure">Export des administrateurs avec au moins une démarche publiée</a></li>
<li><a href="/manager/exports/instructeurs/currently_active">Export des instructeurs qui se sont connectés dans les 6 derniers mois</a></li>
</ul>
</section>

View file

@ -117,6 +117,8 @@ Rails.application.routes.draw do
get 'data_exports' => 'administrateurs#data_exports' get 'data_exports' => 'administrateurs#data_exports'
get 'exports/administrateurs/last_half_year' => 'administrateurs#export_last_half_year' get 'exports/administrateurs/last_half_year' => 'administrateurs#export_last_half_year'
get 'exports/instructeurs/last_half_year' => 'instructeurs#export_last_half_year' get 'exports/instructeurs/last_half_year' => 'instructeurs#export_last_half_year'
get 'exports/administrateurs/with_publiee_procedure' => 'administrateurs#export_with_publiee_procedure'
get 'exports/instructeurs/currently_active' => 'instructeurs#export_currently_active'
get 'import_procedure_tags' => 'procedures#import_data' get 'import_procedure_tags' => 'procedures#import_data'
post 'import_tags' => 'procedures#import_tags' post 'import_tags' => 'procedures#import_tags'