Merge pull request #6406 from betagouv/main

2021-08-20-01
This commit is contained in:
Kara Diaby 2021-08-20 16:21:32 +02:00 committed by GitHub
commit 17cc5fa819
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 102 additions and 35 deletions

View file

@ -0,0 +1,9 @@
class Cron::PurgeOldSibMailsJob < Cron::CronJob
self.schedule_expression = "every day at midnight"
def perform
sib = Sendinblue::API.new
day_to_delete = (Time.zone.today - 31.days).strftime("%Y-%m-%d")
sib.delete_events(day_to_delete)
end
end

View file

@ -55,6 +55,21 @@ class Sendinblue::API
[] []
end end
def delete_events(day, opts = {})
client = ::SibApiV3Sdk::TransactionalEmailsApi.new
event_opts = { start_date: day, end_date: day, limit: 100 }.merge(opts)
while (events = client.get_email_event_report(event_opts).events).present?
message_ids = events.map(&:message_id).uniq
message_ids.each do |message_id|
client.smtp_log_message_id_delete(message_id)
end
end
true
rescue ::SibApiV3Sdk::ApiError => e
Rails.logger.error e.message
false
end
def unblock_user(email_address) def unblock_user(email_address)
client = ::SibApiV3Sdk::TransactionalEmailsApi.new client = ::SibApiV3Sdk::TransactionalEmailsApi.new
client.smtp_blocked_contacts_email_delete(email_address) client.smtp_blocked_contacts_email_delete(email_address)

View file

@ -2,13 +2,13 @@
.commencer.form .commencer.form
- if !user_signed_in? - if !user_signed_in?
%h2.huge-title Commencer la démarche %h2.huge-title= t('views.commencer.show.start_procedure')
= render partial: 'shared/france_connect_login', locals: { url: commencer_france_connect_path(path: @procedure.path) } = render partial: 'shared/france_connect_login', locals: { url: commencer_france_connect_path(path: @procedure.path) }
= link_to commencer_sign_up_path(path: @procedure.path), class: ['button large expand primary'] do = link_to commencer_sign_up_path(path: @procedure.path), class: ['button large expand primary'] do
Créer un compte = t('views.shared.account.create')
%span.optional-on-small-screens %span.optional-on-small-screens
#{APPLICATION_NAME} #{APPLICATION_NAME}
= link_to 'Jai déjà un compte', commencer_sign_in_path(path: @procedure.path), class: ['button large expand'] = link_to t('views.shared.account.already_user'), commencer_sign_in_path(path: @procedure.path), class: ['button large expand']
- else - else
- dossiers = current_user.dossiers.where(revision: @revision.draft? ? @revision : @procedure.revisions.where.not(id: @procedure.draft_revision_id)) - dossiers = current_user.dossiers.where(revision: @revision.draft? ? @revision : @procedure.revisions.where.not(id: @procedure.draft_revision_id))
@ -20,33 +20,29 @@
- elsif drafts.count == 1 && not_drafts.count == 0 - elsif drafts.count == 1 && not_drafts.count == 0
- dossier = drafts.first - dossier = drafts.first
%h2.huge-title Vous avez déjà commencé à remplir un dossier %h2.huge-title= t('views.commencer.show.already_draft')
%p %p
Il y a <strong>#{time_ago_in_words(dossier.created_at)}</strong>, = t('views.commencer.show.already_draft_detail_html', time_ago: time_ago_in_words(dossier.created_at), procedure: dossier.procedure.libelle)
vous avez commencé à remplir un dossier sur la démarche « #{dossier.procedure.libelle} ». = link_to t('views.commencer.show.continue_file'), brouillon_dossier_path(dossier), class: ['button large expand primary']
= link_to 'Continuer à remplir mon dossier', brouillon_dossier_path(dossier), class: ['button large expand primary'] = link_to t('views.commencer.show.start_new_file'), url_for_new_dossier(@revision), class: ['button large expand']
= link_to 'Commencer un nouveau dossier', url_for_new_dossier(@revision), class: ['button large expand']
- elsif not_drafts.count == 1 - elsif not_drafts.count == 1
- dossier = not_drafts.first - dossier = not_drafts.first
%h2.huge-title Vous avez déjà déposé un dossier %h2.huge-title= t('views.commencer.show.already_not_draft')
%p %p
Il y a <strong>#{time_ago_in_words(dossier.en_construction_at)}</strong>, = t('views.commencer.show.already_not_draft_detail_html', time_ago: time_ago_in_words(dossier.en_construction_at), procedure: dossier.procedure.libelle)
vous avez déposé un dossier sur la démarche « #{dossier.procedure.libelle} ». = link_to t('views.commencer.show.show_my_submitted_file'), dossier_path(dossier), class: ['button large expand primary']
= link_to 'Voir mon dossier déposé', dossier_path(dossier), class: ['button large expand primary'] = link_to t('views.commencer.show.start_new_file'), url_for_new_dossier(@revision), class: ['button large expand']
= link_to 'Commencer un nouveau dossier', url_for_new_dossier(@revision), class: ['button large expand']
- else - else
%h2.huge-title= t('views.commencer.show.existing_dossiers') %h2.huge-title= t('views.commencer.show.existing_dossiers')
= link_to t('views.commencer.show.show_dossiers'), dossiers_path, class: ['button large expand primary'] = link_to t('views.commencer.show.show_dossiers'), dossiers_path, class: ['button large expand primary']
= link_to t('views.commencer.show.start_new_dossier'), url_for_new_dossier(@revision), class: ['button large expand'] = link_to t('views.commencer.show.start_new_file'), url_for_new_dossier(@revision), class: ['button large expand']
- if @procedure.feature_enabled?(:dossier_pdf_vide) - if @procedure.feature_enabled?(:dossier_pdf_vide)
- pdf_link = @revision.draft? ? commencer_dossier_vide_test_path(path: @procedure.path) : commencer_dossier_vide_path(path: @procedure.path) - pdf_link = @revision.draft? ? commencer_dossier_vide_test_path(path: @procedure.path) : commencer_dossier_vide_path(path: @procedure.path)
%hr %hr
%p %p= t('views.commencer.show.want_empty_pdf', service: @procedure&.service&.nom, adresse: @procedure&.service&.adresse)
Vous souhaitez effectuer une demande par papier ? Vous pouvez télécharger un dossier vide au format PDF,
et l'envoyer à ladministration concernée :
#{@procedure&.service&.nom} - #{@procedure&.service&.adresse}
%br %br
= link_to 'Télécharger un dossier vide au format PDF', pdf_link, class: ['button large expand'] = link_to t('views.commencer.show.download_empty_pdf'), pdf_link, class: ['button large expand']

View file

@ -65,9 +65,9 @@
- elsif request.path != new_user_session_path - elsif request.path != new_user_session_path
- if request.path == new_user_registration_path - if request.path == new_user_registration_path
%li %li
Vous avez déjà un compte ? = t('views.shared.account.already_user_question')
%li %li
= link_to "Connexion", new_user_session_path, class: "button secondary" = link_to t('views.shared.account.signin'), new_user_session_path, class: "button secondary"
%li %li
- if dossier.present? && nav_bar_profile == :user - if dossier.present? && nav_bar_profile == :user

View file

@ -1,4 +1,4 @@
= form_for(commentaire, url: form_url, html: { class: 'form', data: { persisted_content_id: @dossier.id } }) do |f| = form_for(commentaire, url: form_url, html: { class: 'form', data: { persisted_content_id: @dossier.present? ? @dossier.id : "bulk-message-#{@procedure.id}" } }) do |f|
- dossier = commentaire.dossier - dossier = commentaire.dossier
- placeholder = t('views.shared.dossiers.messages.form.write_message_to_administration_placeholder') - placeholder = t('views.shared.dossiers.messages.form.write_message_to_administration_placeholder')
- if instructeur_signed_in? || administrateur_signed_in? - if instructeur_signed_in? || administrateur_signed_in?

View file

@ -1 +1 @@
= link_to 'Aide', FAQ_URL, class: 'button primary' = link_to t('help'), FAQ_URL, class: 'button primary'

View file

@ -3,27 +3,27 @@
.auth-form .auth-form
= devise_error_messages! = devise_error_messages!
= form_for resource, url: user_registration_path, html: { class: "form" } do |f| = form_for resource, url: user_registration_path, html: { class: "form" } do |f|
%h1 Créez-vous un compte #{APPLICATION_NAME} %h1= t('views.registrations.new.title', name: APPLICATION_NAME)
= render partial: 'shared/france_connect_login', locals: { url: france_connect_particulier_path } = render partial: 'shared/france_connect_login', locals: { url: france_connect_particulier_path }
= f.label :email, "Email (nom@site.com)", id: :user_email_label = f.label :email, t('views.registrations.new.email_label'), id: :user_email_label
= f.text_field :email, type: :email, autocomplete: 'email', autofocus: true, placeholder: "Votre adresse email", 'aria-describedby': :user_email_label = f.text_field :email, type: :email, autocomplete: 'email', autofocus: true, placeholder: t('views.registrations.new.email_placeholder'), 'aria-describedby': :user_email_label
.suspect-email.hidden .suspect-email.hidden
.email-suggestion-title .email-suggestion-title
Voulez-vous dire = t('views.registrations.new.wanna_say')
%span.email-suggestion-address blabla@gmail.com %span.email-suggestion-address blabla@gmail.com
&nbsp;? &nbsp;?
.email-suggestion-answer .email-suggestion-answer
= button_tag type: 'button', class: 'button small', onclick: "DS.acceptEmailSuggestion()" do = button_tag type: 'button', class: 'button small', onclick: "DS.acceptEmailSuggestion()" do
Oui = t('simple_form.yes')
= button_tag type: 'button', class: 'button small', onclick: "DS.discardEmailSuggestionBox()" do = button_tag type: 'button', class: 'button small', onclick: "DS.discardEmailSuggestionBox()" do
Non = t('simple_form.no')
= f.label :password, "Mot de passe (#{PASSWORD_MIN_LENGTH} caractères minimum)", id: :user_password_label = f.label :password, t('views.registrations.new.password_label', min_length: PASSWORD_MIN_LENGTH), id: :user_password_label
= f.password_field :password, autocomplete: 'new-password', value: @user.password, placeholder: "#{PASSWORD_MIN_LENGTH} caractères minimum", 'aria-describedby': :user_password_label = f.password_field :password, autocomplete: 'new-password', value: @user.password, placeholder: t('views.registrations.new.password_placeholder', min_length: PASSWORD_MIN_LENGTH), 'aria-describedby': :user_password_label
= f.submit "Créer un compte", class: "button large primary expand" = f.submit t('views.shared.account.create'), class: "button large primary expand"

View file

@ -30,6 +30,7 @@
# available at http://guides.rubyonrails.org/i18n.html. # available at http://guides.rubyonrails.org/i18n.html.
en: en:
help: 'Help'
utils: utils:
deconnexion: "Log out" deconnexion: "Log out"
pj: "Attachments" pj: "Attachments"
@ -51,6 +52,23 @@ en:
existing_dossiers: You already have files for this procedure existing_dossiers: You already have files for this procedure
show_dossiers: View my current files show_dossiers: View my current files
start_new_dossier: Start a new file start_new_dossier: Start a new file
already_draft: "You already started to fill a file"
already_draft_detail_html: "You started to fill a file for the \"%{procedure}\" procedure <strong>%{time_ago} ago</strong>"
already_not_draft: "You already submitted a file"
already_not_draft_detail_html: "You submitted a file for the \"%{procedure}\" procedure <strong>%{time_ago} ago</strong>."
continue_file: "Continue to fill my file"
start_new_file: "Start a new file"
show_my_submitted_file: 'Show my submitted file'
want_empty_pdf: "You prefer to submit a paper form? You can download an empty PDF file, and send it to the right administration : %{service} - %{adresse}"
download_empty_pdf: 'Download an empty PDF file'
registrations:
new:
title: "Create an account %{name}"
email_label: 'Email (name@site.com)'
email_placeholder: 'Your email address'
wanna_say: 'Do you mean to say'
password_label: "Password (%{min_length} characters minimum)"
password_placeholder: "%{min_length} characters minimum"
invites: invites:
dropdown: dropdown:
invite_to_edit: Invite someone to edit this file invite_to_edit: Invite someone to edit this file

View file

@ -20,6 +20,7 @@
# available at http://guides.rubyonrails.org/i18n.html. # available at http://guides.rubyonrails.org/i18n.html.
fr: fr:
help: 'Aide'
utils: utils:
deconnexion: "Déconnexion" deconnexion: "Déconnexion"
pj: "Pièces jointes" pj: "Pièces jointes"
@ -40,7 +41,25 @@ fr:
start_procedure: Commencer la démarche start_procedure: Commencer la démarche
existing_dossiers: Vous avez déjà des dossiers pour cette démarche existing_dossiers: Vous avez déjà des dossiers pour cette démarche
show_dossiers: Voir mes dossiers en cours show_dossiers: Voir mes dossiers en cours
start_new_dossier: Commencer un nouveau dossier already_draft: "Vous avez déjà commencé à remplir un dossier"
already_draft_detail_html: "Il y a <strong>%{time_ago}</strong>, vous avez commencé à remplir un dossier sur la démarche « %{procedure} »."
already_not_draft: "Vous avez déjà déposé un dossier"
already_not_draft_detail_html: "Il y a <strong>%{time_ago}</strong>, vous avez déposé un dossier sur la démarche « %{procedure} »."
continue_file: 'Continuer à remplir mon dossier'
start_new_file: 'Commencer un nouveau dossier'
show_my_submitted_file: 'Voir mon dossier déposé'
want_empty_pdf: "Vous souhaitez effectuer une demande par papier ? Vous pouvez télécharger un dossier vide au format PDF, et l'envoyer à ladministration concernée : %{service} - %{adresse}"
download_empty_pdf: 'Télécharger un dossier vide au format PDF'
registrations:
new:
title: "Créez-vous un compte %{name}"
email_label: 'Email (nom@site.com)'
email_placeholder: 'Votre adresse email'
wanna_say: 'Voulez-vous dire'
password_label: "Mot de passe (%{min_length} caractères minimum)"
password_placeholder: "%{min_length} caractères minimum"
invites: invites:
dropdown: dropdown:
invite_to_edit: Inviter une personne à modifier ce dossier invite_to_edit: Inviter une personne à modifier ce dossier

View file

@ -5,5 +5,10 @@ en:
title: "With FranceConnect" title: "With FranceConnect"
description: "France connect is a solution proposed by the government to secure and simplify the connection to web services." description: "France connect is a solution proposed by the government to secure and simplify the connection to web services."
login_button: "Sign in with FranceConnect" login_button: "Sign in with FranceConnect"
help_link: What is FranceConnect ? help_link: What is FranceConnect?
separator: or separator: or
account:
already_user_question: 'Do you already have an account?'
already_user: "I already have an account"
create: 'Create an account'
signin: 'Sign in'

View file

@ -15,3 +15,8 @@ fr:
login_button: "Sidentifier avec FranceConnect" login_button: "Sidentifier avec FranceConnect"
help_link: "Quest-ce que FranceConnect ?" help_link: "Quest-ce que FranceConnect ?"
separator: 'ou' separator: 'ou'
account:
already_user_question: 'Vous avez déjà un compte ?'
already_user: 'Jai déjà un compte'
create: 'Créer un compte'
signin: 'Connexion'