correctif(dolist): utilise des liens vers les logos des procedures plutôt que des attachements.inlined

This commit is contained in:
Martin 2023-07-27 11:44:14 +02:00 committed by mfo
parent 28de1a7453
commit a3c6a2c46f
8 changed files with 33 additions and 21 deletions

View file

@ -8,18 +8,4 @@ class ApplicationMailer < ActionMailer::Base
layout 'mailer'
before_action -> { Sentry.set_tags(mailer: mailer_name, action: action_name) }
# Attach the procedure logo to the email (if any).
# Returns the attachment url.
def attach_logo(procedure)
if procedure.logo.attached?
logo_filename = procedure.logo.filename.to_s
attachments.inline[logo_filename] = procedure.logo.download
attachments[logo_filename].url
end
rescue StandardError => e
# A problem occured when reading logo, maybe the logo is missing and we should clean the procedure to remove logo reference ?
Sentry.capture_exception(e, extra: { procedure_id: procedure.id })
nil
end
end

View file

@ -12,7 +12,7 @@ class DossierMailer < ApplicationMailer
@dossier = params[:dossier]
I18n.with_locale(@dossier.user_locale) do
@service = @dossier.procedure.service
@logo_url = attach_logo(@dossier.procedure)
@logo_url = @dossier.procedure.email_logo_url
@subject = default_i18n_subject(libelle_demarche: @dossier.procedure.libelle)
mail(to: @dossier.user_email_for(:notification), subject: @subject) do |format|
@ -27,7 +27,7 @@ class DossierMailer < ApplicationMailer
I18n.with_locale(dossier.user_locale) do
@dossier = dossier
@service = dossier.procedure.service
@logo_url = attach_logo(dossier.procedure)
@logo_url = @dossier.procedure.email_logo_url
@body = commentaire.body
@subject = default_i18n_subject(dossier_id: dossier.id, libelle_demarche: dossier.procedure.libelle)
@ -52,7 +52,7 @@ class DossierMailer < ApplicationMailer
I18n.with_locale(dossier.user_locale) do
@dossier = dossier
@service = dossier.procedure.service
@logo_url = attach_logo(dossier.procedure)
@logo_url = @dossier.procedure.email_logo_url
@correction = commentaire.dossier_correction
@subject = default_i18n_subject(dossier_id: dossier.id, libelle_demarche: dossier.procedure.libelle)
@ -85,7 +85,7 @@ class DossierMailer < ApplicationMailer
I18n.with_locale(dossier.user_locale) do
@dossier = dossier
@service = dossier.procedure.service
@logo_url = attach_logo(dossier.procedure)
@logo_url = @dossier.procedure.email_logo_url
@subject = default_i18n_subject(dossier_id: dossier.id, libelle_demarche: dossier.procedure.libelle)
mail(to: dossier.user_email_for(:notification), subject: @subject) do |format|

View file

@ -17,7 +17,7 @@ class NotificationMailer < ApplicationMailer
def send_notification
@service = @dossier.procedure.service
@logo_url = attach_logo(@dossier.procedure)
@logo_url = @dossier.procedure.email_logo_url
attachments[@attachment[:filename]] = @attachment[:content] if @attachment.present?
I18n.with_locale(@dossier.user_locale) do
mail(subject: @subject, to: @email, template_name: 'send_notification')

View file

@ -158,7 +158,9 @@ class Procedure < ApplicationRecord
belongs_to :defaut_groupe_instructeur, class_name: 'GroupeInstructeur', inverse_of: false, optional: true
has_one_attached :logo
has_one_attached :logo do |attachable|
attachable.variant :email, resize_to_limit: [150, 150]
end
has_one_attached :notice
has_one_attached :deliberation
@ -633,6 +635,14 @@ class Procedure < ApplicationRecord
result
end
def email_logo_url
if logo.attached?
logo.variant(:email).processed.blob.url(expires_in: 1.year)
else
ActionController::Base.helpers.image_url(PROCEDURE_DEFAULT_LOGO_SRC)
end
end
def logo_url
if logo.attached?
Rails.application.routes.url_helpers.url_for(logo)