Merge pull request #11012 from demarches-simplifiees/update-export-administration-info
ETQ superadmin je peux générer les exports adaptés pour la newsletter
This commit is contained in:
commit
c10bec342a
5 changed files with 54 additions and 22 deletions
|
@ -40,16 +40,20 @@ module Manager
|
||||||
def data_exports
|
def data_exports
|
||||||
end
|
end
|
||||||
|
|
||||||
def export_last_month
|
def export_last_half_year
|
||||||
administrateurs = Administrateur.joins(:user).where(created_at: 6.months.ago..).where.not(users: { email_verified_at: nil })
|
administrateurs = Administrateur.joins(:user).where(created_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']
|
csv = generate_csv(administrateurs)
|
||||||
administrateurs.each do |administrateur|
|
|
||||||
csv << [administrateur.id, administrateur.email, administrateur.created_at]
|
send_data csv, filename: "administrateurs_recents_#{Date.today.strftime('%d-%m-%Y')}.csv"
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
send_data csv, filename: "administrateurs_#{Date.today.strftime('%d-%m-%Y')}.csv"
|
def export_with_publiee_procedure
|
||||||
|
administrateurs = Administrateur.joins(:user).where.not(users: { email_verified_at: nil }).joins(:procedures).where(procedures: { aasm_state: [:publiee] })
|
||||||
|
|
||||||
|
csv = generate_csv(administrateurs)
|
||||||
|
|
||||||
|
send_data csv, filename: "administrateurs_actifs_#{Date.today.strftime('%d-%m-%Y')}.csv"
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
|
@ -56,5 +56,14 @@ module Manager
|
||||||
|
|
||||||
payload[:to_log] = to_log
|
payload[:to_log] = to_log
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def generate_csv(users)
|
||||||
|
CSV.generate(headers: true) do |csv|
|
||||||
|
csv << ['ID', 'Email', 'Date de création']
|
||||||
|
users.each do |user|
|
||||||
|
csv << [user.id, user.email, user.created_at]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -23,16 +23,20 @@ module Manager
|
||||||
redirect_to manager_instructeurs_path
|
redirect_to manager_instructeurs_path
|
||||||
end
|
end
|
||||||
|
|
||||||
def export_last_month
|
def export_last_half_year
|
||||||
instructeurs = Instructeur.joins(:user).where(created_at: 6.months.ago..).where.not(users: { email_verified_at: nil })
|
instructeurs = Instructeur.joins(:user).where(created_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']
|
csv = generate_csv(instructeurs)
|
||||||
instructeurs.each do |instructeur|
|
|
||||||
csv << [instructeur.id, instructeur.email, instructeur.created_at]
|
send_data csv, filename: "instructeurs_recents_#{Date.today.strftime('%d-%m-%Y')}.csv"
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
send_data csv, filename: "instructeurs_#{Date.today.strftime('%d-%m-%Y')}.csv"
|
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 = generate_csv(instructeurs)
|
||||||
|
|
||||||
|
send_data csv, filename: "instructeurs_actifs_#{Date.today.strftime('%d-%m-%Y')}.csv"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -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_month">Export des administrateurs (6 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_month">Export des instructeurs (6 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>
|
||||||
|
|
|
@ -115,8 +115,10 @@ Rails.application.routes.draw do
|
||||||
end
|
end
|
||||||
|
|
||||||
get 'data_exports' => 'administrateurs#data_exports'
|
get 'data_exports' => 'administrateurs#data_exports'
|
||||||
get 'exports/administrateurs/last_month' => 'administrateurs#export_last_month'
|
get 'exports/administrateurs/last_half_year' => 'administrateurs#export_last_half_year'
|
||||||
get 'exports/instructeurs/last_month' => 'instructeurs#export_last_month'
|
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'
|
||||||
|
|
Loading…
Reference in a new issue