commit
5b3fea25c7
34 changed files with 189 additions and 55 deletions
|
@ -7,3 +7,7 @@
|
||||||
.mr-1 {
|
.mr-1 {
|
||||||
margin-right: $default-spacer;
|
margin-right: $default-spacer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mb-4 {
|
||||||
|
margin-bottom: 4 * $default-spacer;
|
||||||
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ class InvitesController < ApplicationController
|
||||||
dossier: dossier,
|
dossier: dossier,
|
||||||
user: User.find_by(email: email),
|
user: User.find_by(email: email),
|
||||||
email: email,
|
email: email,
|
||||||
|
message: params[:invite_message],
|
||||||
email_sender: current_user.email
|
email_sender: current_user.email
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,14 @@ module NewAdministrateur
|
||||||
include ActionView::Helpers::SanitizeHelper
|
include ActionView::Helpers::SanitizeHelper
|
||||||
|
|
||||||
def preview
|
def preview
|
||||||
@procedure = procedure
|
mail_template = find_mail_template_by_slug(params[:id])
|
||||||
|
dossier = Dossier.new(id: '1', procedure: procedure)
|
||||||
|
|
||||||
|
@dossier = dossier
|
||||||
@logo_url = procedure.logo.url
|
@logo_url = procedure.logo.url
|
||||||
@service = procedure.service
|
@service = procedure.service
|
||||||
|
|
||||||
mail_template = find_mail_template_by_slug(params[:id])
|
|
||||||
@rendered_template = sanitize(mail_template.body)
|
@rendered_template = sanitize(mail_template.body)
|
||||||
|
@actions = mail_template.actions_for_dossier(dossier)
|
||||||
|
|
||||||
render(template: 'notification_mailer/send_notification', layout: 'mailers/notifications_layout')
|
render(template: 'notification_mailer/send_notification', layout: 'mailers/notifications_layout')
|
||||||
end
|
end
|
||||||
|
@ -16,16 +18,16 @@ module NewAdministrateur
|
||||||
private
|
private
|
||||||
|
|
||||||
def procedure
|
def procedure
|
||||||
@procedure = current_administrateur.procedures.find(params[:procedure_id])
|
@procedure ||= current_administrateur.procedures.find(params[:procedure_id])
|
||||||
end
|
end
|
||||||
|
|
||||||
def mail_templates
|
def mail_templates
|
||||||
[
|
[
|
||||||
@procedure.initiated_mail_template,
|
procedure.initiated_mail_template,
|
||||||
@procedure.received_mail_template,
|
procedure.received_mail_template,
|
||||||
@procedure.closed_mail_template,
|
procedure.closed_mail_template,
|
||||||
@procedure.refused_mail_template,
|
procedure.refused_mail_template,
|
||||||
@procedure.without_continuation_mail_template
|
procedure.without_continuation_mail_template
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,28 @@
|
||||||
module MailerHelper
|
module MailerHelper
|
||||||
def round_button(text, url)
|
def vertical_margin(height)
|
||||||
render 'shared/mailer_round_button', text: text, url: url
|
render 'shared/mailer_vertical_margin', height: height
|
||||||
|
end
|
||||||
|
|
||||||
|
def round_button(text, url, variant)
|
||||||
|
render 'shared/mailer_round_button', text: text, url: url, theme: theme(variant)
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def theme(variant)
|
||||||
|
case variant
|
||||||
|
when :primary
|
||||||
|
{ color: white, bg_color: blue, border_color: blue }
|
||||||
|
when :secondary
|
||||||
|
{ color: blue, bg_color: white, border_color: blue }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def blue
|
||||||
|
'#0069CC'
|
||||||
|
end
|
||||||
|
|
||||||
|
def white
|
||||||
|
'#FFFFFF'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -9,6 +9,7 @@ class NotificationMailer < ApplicationMailer
|
||||||
include ActionView::Helpers::SanitizeHelper
|
include ActionView::Helpers::SanitizeHelper
|
||||||
|
|
||||||
helper ServiceHelper
|
helper ServiceHelper
|
||||||
|
helper MailerHelper
|
||||||
|
|
||||||
layout 'mailers/notifications_layout'
|
layout 'mailers/notifications_layout'
|
||||||
|
|
||||||
|
@ -46,6 +47,7 @@ class NotificationMailer < ApplicationMailer
|
||||||
@service = dossier.procedure.service
|
@service = dossier.procedure.service
|
||||||
@logo_url = attach_logo(dossier.procedure)
|
@logo_url = attach_logo(dossier.procedure)
|
||||||
@rendered_template = sanitize(body)
|
@rendered_template = sanitize(body)
|
||||||
|
@actions = mail_template.actions_for_dossier(dossier)
|
||||||
|
|
||||||
mail(subject: subject, to: email, template_name: 'send_notification')
|
mail(subject: subject, to: email, template_name: 'send_notification')
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,6 +3,12 @@ module MailTemplateConcern
|
||||||
|
|
||||||
include TagsSubstitutionConcern
|
include TagsSubstitutionConcern
|
||||||
|
|
||||||
|
module Actions
|
||||||
|
SHOW = :show
|
||||||
|
ASK_QUESTION = :ask_question
|
||||||
|
REPLY = :reply
|
||||||
|
end
|
||||||
|
|
||||||
def subject_for_dossier(dossier)
|
def subject_for_dossier(dossier)
|
||||||
replace_tags(subject, dossier)
|
replace_tags(subject, dossier)
|
||||||
end
|
end
|
||||||
|
@ -11,6 +17,10 @@ module MailTemplateConcern
|
||||||
replace_tags(body, dossier)
|
replace_tags(body, dossier)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def actions_for_dossier(dossier)
|
||||||
|
[MailTemplateConcern::Actions::SHOW, MailTemplateConcern::Actions::ASK_QUESTION]
|
||||||
|
end
|
||||||
|
|
||||||
def update_rich_body
|
def update_rich_body
|
||||||
self.rich_body = self.body
|
self.rich_body = self.body
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Mails
|
||||||
SLUG = "initiated_mail"
|
SLUG = "initiated_mail"
|
||||||
DEFAULT_TEMPLATE_NAME = "notification_mailer/default_templates/initiated_mail"
|
DEFAULT_TEMPLATE_NAME = "notification_mailer/default_templates/initiated_mail"
|
||||||
DISPLAYED_NAME = 'Accusé de réception'
|
DISPLAYED_NAME = 'Accusé de réception'
|
||||||
DEFAULT_SUBJECT = 'Votre dossier nº --numéro du dossier-- a bien été reçu (--libellé démarche--)'
|
DEFAULT_SUBJECT = 'Votre dossier nº --numéro du dossier-- a bien été déposé (--libellé démarche--)'
|
||||||
DOSSIER_STATE = Dossier.states.fetch(:en_construction)
|
DOSSIER_STATE = Dossier.states.fetch(:en_construction)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Mails
|
||||||
SLUG = "received_mail"
|
SLUG = "received_mail"
|
||||||
DEFAULT_TEMPLATE_NAME = "notification_mailer/default_templates/received_mail"
|
DEFAULT_TEMPLATE_NAME = "notification_mailer/default_templates/received_mail"
|
||||||
DISPLAYED_NAME = 'Accusé de passage en instruction'
|
DISPLAYED_NAME = 'Accusé de passage en instruction'
|
||||||
DEFAULT_SUBJECT = 'Votre dossier nº --numéro du dossier-- va être instruit (--libellé démarche--)'
|
DEFAULT_SUBJECT = 'Votre dossier nº --numéro du dossier-- va être examiné (--libellé démarche--)'
|
||||||
DOSSIER_STATE = Dossier.states.fetch(:en_instruction)
|
DOSSIER_STATE = Dossier.states.fetch(:en_instruction)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -9,5 +9,9 @@ module Mails
|
||||||
DISPLAYED_NAME = 'Accusé de rejet du dossier'
|
DISPLAYED_NAME = 'Accusé de rejet du dossier'
|
||||||
DEFAULT_SUBJECT = 'Votre dossier nº --numéro du dossier-- a été refusé (--libellé démarche--)'
|
DEFAULT_SUBJECT = 'Votre dossier nº --numéro du dossier-- a été refusé (--libellé démarche--)'
|
||||||
DOSSIER_STATE = Dossier.states.fetch(:refuse)
|
DOSSIER_STATE = Dossier.states.fetch(:refuse)
|
||||||
|
|
||||||
|
def actions_for_dossier(dossier)
|
||||||
|
[MailTemplateConcern::Actions::REPLY, MailTemplateConcern::Actions::SHOW]
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -5,13 +5,14 @@
|
||||||
Bonjour,
|
Bonjour,
|
||||||
|
|
||||||
%p
|
%p
|
||||||
L’administration en charge de votre dossier vous a
|
Vous avez reçu un
|
||||||
%strong envoyé un nouveau message.
|
%strong nouveau message
|
||||||
|
de la part du service en charge de votre dossier.
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Pour le consulter et y répondre, cliquez sur le bouton ci-dessous :
|
Pour consulter le message et y répondre, cliquez sur le bouton ci-dessous :
|
||||||
|
|
||||||
= round_button('Lire le message', messagerie_dossier_url(@dossier))
|
= round_button('Lire le message', messagerie_dossier_url(@dossier), :primary)
|
||||||
|
|
||||||
= render 'layouts/mailers/signature', service: @service
|
= render 'layouts/mailers/signature', service: @service
|
||||||
|
|
||||||
|
|
|
@ -5,13 +5,16 @@
|
||||||
Bonjour,
|
Bonjour,
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Vous avez commencé à remplir un dossier pour la démarche « #{@dossier.procedure.libelle} ».
|
Vous avez commencé à remplir un dossier pour la démarche
|
||||||
|
= succeed '.' do
|
||||||
|
%strong « #{@dossier.procedure.libelle} »
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Vous pouvez
|
Vous pouvez
|
||||||
%strong retrouver et compléter votre dossier
|
%strong retrouver et compléter votre dossier
|
||||||
à l’adresse suivante :
|
en cliquant sur le bouton ci-dessous:
|
||||||
= link_to dossier_url(@dossier), dossier_url(@dossier), target: '_blank', rel: 'noopener'
|
|
||||||
|
= round_button('Afficher votre dossier', dossier_url(@dossier), :primary)
|
||||||
|
|
||||||
= render 'layouts/mailers/signature'
|
= render 'layouts/mailers/signature'
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,11 @@
|
||||||
%strong= @invite.dossier.procedure.libelle
|
%strong= @invite.dossier.procedure.libelle
|
||||||
sur demarches-simplifiees.fr.
|
sur demarches-simplifiees.fr.
|
||||||
|
|
||||||
|
- if @invite.message.present?
|
||||||
|
%blockquote
|
||||||
|
%p
|
||||||
|
= @invite.message
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Cette plateforme permet à ses utilisateurs d'établir des dossiers 100 % en ligne et de dialoguer avec plusieurs interlocuteurs privilégiés avant d'instruire un dépot.
|
Cette plateforme permet à ses utilisateurs d'établir des dossiers 100 % en ligne et de dialoguer avec plusieurs interlocuteurs privilégiés avant d'instruire un dépot.
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,11 @@
|
||||||
= @invite.email_sender
|
= @invite.email_sender
|
||||||
souhaite que vous participiez à l'élaboration d'un dossier sur demarches-simplifiees.fr.
|
souhaite que vous participiez à l'élaboration d'un dossier sur demarches-simplifiees.fr.
|
||||||
|
|
||||||
|
- if @invite.message.present?
|
||||||
|
%blockquote
|
||||||
|
%p
|
||||||
|
= @invite.message
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Pour le consulter, merci de suivre ce lien :
|
Pour le consulter, merci de suivre ce lien :
|
||||||
- url_for_link = invite_url(@invite)
|
- url_for_link = invite_url(@invite)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
%span.dropdown.invite-user-action
|
%span.dropdown.invite-user-action{ :style => "float:right;right: 10px;" }
|
||||||
%button.button.dropdown-button
|
%button.button.dropdown-button
|
||||||
%span.icon.person
|
%span.icon.person
|
||||||
- if dossier.invites.count > 0
|
- if dossier.invites.count > 0
|
||||||
|
|
|
@ -13,5 +13,10 @@
|
||||||
%p Cette personne aura le droit de modifier votre dossier.
|
%p Cette personne aura le droit de modifier votre dossier.
|
||||||
|
|
||||||
= form_tag dossier_invites_path(dossier), remote: true, method: :post, class: 'form' do
|
= form_tag dossier_invites_path(dossier), remote: true, method: :post, class: 'form' do
|
||||||
= email_field_tag :invite_email, '', class: 'small', placeholder: 'adresse email', required: true
|
.row
|
||||||
= submit_tag 'Envoyer une invitation', class: 'button accepted'
|
.col
|
||||||
|
= email_field_tag :invite_email, '', class: 'small', placeholder: 'adresse email', required: true
|
||||||
|
.col
|
||||||
|
= text_area_tag :invite_message, '', class: 'small', placeholder: 'Ajouter un message à la personne invitée (optionnel)'
|
||||||
|
.col
|
||||||
|
= submit_tag 'Envoyer une invitation', class: 'button accepted'
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<!--<![endif]-->
|
<!--<![endif]-->
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<style type="text/css"> #outlook a { padding: 0; } .ReadMsgBody { width: 100%; } .ExternalClass { width: 100%; } .ExternalClass * { line-height:100%; } body { margin: 0; padding: 0; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; } table, td { border-collapse:collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; } img { border: 0; height: auto; line-height: 100%; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; } p { display: block; margin: 13px 0; }</style>
|
<style type="text/css"> #outlook a { padding: 0; } .ReadMsgBody { width: 100%; } .ExternalClass { width: 100%; } .ExternalClass * { line-height:100%; } body { margin: 0; padding: 0; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; } table, td { border-collapse:collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; } img { border: 0; height: auto; line-height: 100%; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; } p { display: block; margin: 13px 0; } blockquote { margin: 0; } blockquote p { padding: 15px; background: #eee; border-radius: 5px; } blockquote p::before { content: '\201C'; } blockquote p::after { content: '\201D'; }</style>
|
||||||
<!--[if !mso]>
|
<!--[if !mso]>
|
||||||
<!-->
|
<!-->
|
||||||
<style type="text/css"> @media only screen and (max-width:480px) { @-ms-viewport { width:320px; } @viewport { width:320px; } }</style>
|
<style type="text/css"> @media only screen and (max-width:480px) { @-ms-viewport { width:320px; } @viewport { width:320px; } }</style>
|
||||||
|
|
13
app/views/notification_mailer/_actions.html.haml
Normal file
13
app/views/notification_mailer/_actions.html.haml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
= vertical_margin(12)
|
||||||
|
|
||||||
|
- actions.each_with_index do |action, index|
|
||||||
|
- variant = (index == 0 ? :primary : :secondary)
|
||||||
|
- case action
|
||||||
|
- when MailTemplateConcern::Actions::SHOW
|
||||||
|
= round_button('Consulter mon dossier', dossier_url(@dossier), variant)
|
||||||
|
- when MailTemplateConcern::Actions::ASK_QUESTION
|
||||||
|
= round_button('J’ai une question', messagerie_dossier_url(@dossier), variant)
|
||||||
|
- when MailTemplateConcern::Actions::REPLY
|
||||||
|
= round_button('Répondre à ce message', messagerie_dossier_url(@dossier), variant)
|
||||||
|
|
||||||
|
= vertical_margin(5)
|
|
@ -2,7 +2,9 @@
|
||||||
Bonjour,
|
Bonjour,
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Votre dossier nº --numéro du dossier-- a été accepté le --date de décision--.
|
Votre dossier nº --numéro du dossier--
|
||||||
|
%strong a été accepté
|
||||||
|
le --date de décision--.
|
||||||
|
|
||||||
%p
|
%p
|
||||||
À tout moment, vous pouvez consulter votre dossier et les éventuels messages de l'administration à cette adresse : --lien dossier--
|
À tout moment, vous pouvez consulter votre dossier et les éventuels messages de l'administration à cette adresse : --lien dossier--
|
||||||
|
|
|
@ -2,12 +2,11 @@
|
||||||
Bonjour,
|
Bonjour,
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Votre dossier nº --numéro du dossier-- a été accepté le --date de décision--.
|
Votre dossier nº --numéro du dossier--
|
||||||
|
%strong a été accepté
|
||||||
|
le --date de décision--.
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Vous pouvez télécharger votre attestation à l'adresse suivante : --lien attestation--
|
Vous pouvez télécharger votre attestation à l'adresse suivante : --lien attestation--
|
||||||
|
|
||||||
%p
|
|
||||||
À tout moment, vous pouvez consulter votre dossier et les éventuels messages de l'administration à cette adresse : --lien dossier--
|
|
||||||
|
|
||||||
= render partial: "notification_mailer/default_templates/signature"
|
= render partial: "notification_mailer/default_templates/signature"
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
Bonjour,
|
Bonjour,
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Votre administration vous confirme la bonne réception de votre dossier nº --numéro du dossier--.
|
Votre dossier nº --numéro du dossier--
|
||||||
|
= succeed '.' do
|
||||||
%p
|
%strong a bien été déposé
|
||||||
À tout moment, vous pouvez consulter votre dossier et les éventuels messages de l'administration à cette adresse : --lien dossier--
|
Si besoin est, vous pouvez encore y apporter des modifications.
|
||||||
|
|
||||||
= render partial: "notification_mailer/default_templates/signature"
|
= render partial: "notification_mailer/default_templates/signature"
|
||||||
|
|
|
@ -2,6 +2,10 @@
|
||||||
Bonjour,
|
Bonjour,
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Votre administration vous confirme la bonne réception de votre dossier nº --numéro du dossier--. Celui-ci sera instruit dans le délai légal déclaré par votre interlocuteur.
|
Votre dossier nº --numéro du dossier--
|
||||||
|
a bien été reçu et
|
||||||
|
= succeed '.' do
|
||||||
|
%strong pris en charge
|
||||||
|
Il va maintenant être examiné par le service.
|
||||||
|
|
||||||
= render partial: "notification_mailer/default_templates/signature"
|
= render partial: "notification_mailer/default_templates/signature"
|
||||||
|
|
|
@ -2,10 +2,12 @@
|
||||||
Bonjour,
|
Bonjour,
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Votre dossier nº --numéro du dossier-- a été refusé le --date de décision--.
|
Votre dossier nº --numéro du dossier--
|
||||||
|
%strong a été refusé
|
||||||
|
le --date de décision--.
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Le motif de refus est le suivant : --motivation--.
|
Le motif de refus est le suivant : « <i>--motivation--</i> ».
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Pour en savoir plus sur le motif du refus, vous pouvez consulter votre dossier et les éventuels messages de l'administration à cette adresse : --lien dossier--
|
Pour en savoir plus sur le motif du refus, vous pouvez consulter votre dossier et les éventuels messages de l'administration à cette adresse : --lien dossier--
|
||||||
|
|
|
@ -2,7 +2,9 @@
|
||||||
Bonjour,
|
Bonjour,
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Votre dossier nº --numéro du dossier-- a été classé sans suite le --date de décision--.
|
Votre dossier nº --numéro du dossier--
|
||||||
|
%strong a été classé sans suite
|
||||||
|
le --date de décision--.
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Le motif est le suivant : --motivation--.
|
Le motif est le suivant : --motivation--.
|
||||||
|
|
|
@ -3,5 +3,8 @@
|
||||||
|
|
||||||
= @rendered_template
|
= @rendered_template
|
||||||
|
|
||||||
|
- if @actions.present?
|
||||||
|
= render 'notification_mailer/actions', actions: @actions, dossier: @dossier
|
||||||
|
|
||||||
- content_for :footer do
|
- content_for :footer do
|
||||||
= render 'layouts/mailers/service_footer', service: @service, dossier: @dossier
|
= render 'layouts/mailers/service_footer', service: @service, dossier: @dossier
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
/# From https://litmus.com/blog/a-guide-to-bulletproof-buttons-in-email-design
|
/# From https://litmus.com/blog/a-guide-to-bulletproof-buttons-in-email-design
|
||||||
%table{ width: "100%", border: "0", cellspacing:"0", cellpadding:"0" }
|
%table{ width: "100%", border: "0", cellspacing:"0", cellpadding:"5" }
|
||||||
%tr
|
%tr
|
||||||
%td
|
%td{ align: "center" }
|
||||||
%table{ border:"0", cellspacing:"0", cellpadding:"0", style:"margin: auto" }
|
%table{ border:"0", cellspacing:"0", cellpadding:"0" }
|
||||||
%tr
|
%tr
|
||||||
%td{ align:"center", style:"border-radius: 5px;", bgcolor:"#0069cc" }
|
%td{ align:"center", style:"border-radius: 5px;", color: theme[:color], bgcolor: theme[:bg_color] }
|
||||||
%a{ href: url, target:"_blank", style:"font-size: 16px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; text-decoration: none; border-radius: 5px; padding: 12px 25px; border: 1px solid #0069cc; display: inline-block;" }
|
%a{ href: url, target:"_blank", rel: "noopener", style:"font-size: 16px; font-family: Helvetica, Arial, sans-serif; color: #{theme[:color]}; text-decoration: none; text-decoration: none; border-radius: 5px; padding: 12px 25px; border: 1px solid #{theme[:border_color]}; display: inline-block; min-width: 250px" }
|
||||||
= text
|
= text
|
||||||
|
|
||||||
|
|
4
app/views/shared/_mailer_vertical_margin.html.haml
Normal file
4
app/views/shared/_mailer_vertical_margin.html.haml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
%table{ cellspacing: "0", cellpadding: (height / 2), border: "0" }
|
||||||
|
%tr
|
||||||
|
%td
|
||||||
|
%div
|
|
@ -9,6 +9,20 @@
|
||||||
Actions
|
Actions
|
||||||
.dropdown-content.fade-in-down
|
.dropdown-content.fade-in-down
|
||||||
%ul.dropdown-items
|
%ul.dropdown-items
|
||||||
|
- if !dossier.read_only?
|
||||||
|
- if dossier.brouillon?
|
||||||
|
%li
|
||||||
|
= link_to(url_for_dossier(dossier)) do
|
||||||
|
%span.icon.edit
|
||||||
|
.dropdown-description
|
||||||
|
Modifier le brouillon
|
||||||
|
- else
|
||||||
|
%li
|
||||||
|
= link_to modifier_dossier_path(dossier) do
|
||||||
|
%span.icon.edit
|
||||||
|
.dropdown-description
|
||||||
|
Modifier le dossier
|
||||||
|
|
||||||
- if has_new_dossier_action
|
- if has_new_dossier_action
|
||||||
%li
|
%li
|
||||||
= link_to procedure_lien(dossier.procedure) do
|
= link_to procedure_lien(dossier.procedure) do
|
||||||
|
|
|
@ -10,5 +10,5 @@
|
||||||
|
|
||||||
.container
|
.container
|
||||||
- if !@dossier.read_only?
|
- if !@dossier.read_only?
|
||||||
= link_to "Modifier le dossier", modifier_dossier_path(@dossier), class: 'button primary edit-form'
|
= link_to "Modifier le dossier", modifier_dossier_path(@dossier), class: 'button accepted edit-form', 'title'=> "Vous pouvez modifier votre dossier tant qu'il n'est passé en instruction"
|
||||||
.clearfix
|
.clearfix
|
||||||
|
|
|
@ -11,8 +11,9 @@
|
||||||
= "- Déposé le #{l(dossier.en_construction_at, format: '%d %B %Y')}"
|
= "- Déposé le #{l(dossier.en_construction_at, format: '%d %B %Y')}"
|
||||||
|
|
||||||
- if current_user.owns?(dossier)
|
- if current_user.owns?(dossier)
|
||||||
.header-actions
|
= link_to "Modifier mon dossier", modifier_dossier_path(dossier.id), class: 'button accepted edit-form', 'title'=> "Vous pouvez modifier votre dossier tant qu'il n'est passé en instruction"
|
||||||
= render partial: 'invites/dropdown', locals: { dossier: dossier }
|
= render partial: 'invites/dropdown', locals: { dossier: dossier }
|
||||||
|
.clearfix
|
||||||
|
|
||||||
%ul.tabs
|
%ul.tabs
|
||||||
= dynamic_tab_item('Résumé', dossier_path(dossier))
|
= dynamic_tab_item('Résumé', dossier_path(dossier))
|
||||||
|
|
|
@ -8,7 +8,12 @@
|
||||||
|
|
||||||
= f.label :siret, style: "display: none"
|
= f.label :siret, style: "display: none"
|
||||||
= f.text_field :siret, placeholder: "Numéro SIRET à 14 chiffres", required: true
|
= f.text_field :siret, placeholder: "Numéro SIRET à 14 chiffres", required: true
|
||||||
|
|
||||||
= f.hidden_field :dossier_id, value: @dossier.id
|
= f.hidden_field :dossier_id, value: @dossier.id
|
||||||
|
|
||||||
= f.submit "Valider", class: "button large primary expand", data: { disable_with: "Récupération des informations…" }
|
%p.mb-4
|
||||||
|
Pour trouver votre numéro SIRET, utilisez
|
||||||
|
%a{ href: 'https://entreprise.data.gouv.fr/', target: '_blank', rel: 'noopener' }
|
||||||
|
entreprise.data.gouv.fr
|
||||||
|
ou renseignez-vous auprès de votre service comptable.
|
||||||
|
|
||||||
|
= f.submit "Valider", class: "button large primary expand mt-1", data: { disable_with: "Récupération des informations…" }
|
||||||
|
|
5
db/migrate/20190717151228_add_message_to_invites.rb
Normal file
5
db/migrate/20190717151228_add_message_to_invites.rb
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
class AddMessageToInvites < ActiveRecord::Migration[5.2]
|
||||||
|
def change
|
||||||
|
add_column :invites, :message, :text
|
||||||
|
end
|
||||||
|
end
|
|
@ -13,9 +13,17 @@ describe NewAdministrateur::MailTemplatesController, type: :controller do
|
||||||
|
|
||||||
it { expect(response).to have_http_status(:ok) }
|
it { expect(response).to have_http_status(:ok) }
|
||||||
|
|
||||||
it { expect(response.body).to have_css("img[src*='#{procedure.logo.filename}']") }
|
it 'displays the procedure logo' do
|
||||||
|
expect(response.body).to have_css("img[src*='#{procedure.logo.filename}']")
|
||||||
|
end
|
||||||
|
|
||||||
it { expect(response.body).to include(procedure.service.nom) }
|
it 'displays the action buttons' do
|
||||||
it { expect(response.body).to include(procedure.service.telephone) }
|
expect(response.body).to have_link('Consulter mon dossier')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'displays the service in the footer' do
|
||||||
|
expect(response.body).to include(procedure.service.nom)
|
||||||
|
expect(response.body).to include(procedure.service.telephone)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -28,6 +28,11 @@ RSpec.describe NotificationMailer, type: :mailer do
|
||||||
expect(mail.body).to have_link('messagerie')
|
expect(mail.body).to have_link('messagerie')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'renders the actions' do
|
||||||
|
expect(mail.body).to have_link('Consulter mon dossier', href: dossier_url(dossier))
|
||||||
|
expect(mail.body).to have_link('J’ai une question', href: messagerie_dossier_url(dossier))
|
||||||
|
end
|
||||||
|
|
||||||
context 'when the template body contains tags' do
|
context 'when the template body contains tags' do
|
||||||
let(:email_template) { create(:received_mail, subject: 'Email subject', body: 'Hello --nom--, your dossier --lien dossier-- was processed.') }
|
let(:email_template) { create(:received_mail, subject: 'Email subject', body: 'Hello --nom--, your dossier --lien dossier-- was processed.') }
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,20 @@
|
||||||
class NotificationMailerPreview < ActionMailer::Preview
|
class NotificationMailerPreview < ActionMailer::Preview
|
||||||
def send_dossier_received
|
|
||||||
NotificationMailer.send_dossier_received(Dossier.last)
|
|
||||||
end
|
|
||||||
|
|
||||||
def send_initiated_notification
|
def send_initiated_notification
|
||||||
p = Procedure.where(id: Mails::InitiatedMail.where("body like ?", "%<img%").pluck(:procedure_id).uniq).order("RANDOM()").first
|
p = Procedure.where(id: Mails::InitiatedMail.where("body like ?", "%<img%").pluck(:procedure_id).uniq).order("RANDOM()").first
|
||||||
NotificationMailer.send_initiated_notification(p.dossiers.last)
|
NotificationMailer.send_initiated_notification(p.dossiers.last)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def send_dossier_received
|
||||||
|
NotificationMailer.send_dossier_received(Dossier.last)
|
||||||
|
end
|
||||||
|
|
||||||
def send_closed_notification
|
def send_closed_notification
|
||||||
NotificationMailer.send_closed_notification(Dossier.last)
|
NotificationMailer.send_closed_notification(Dossier.last)
|
||||||
end
|
end
|
||||||
|
|
||||||
def send_refused_notification
|
def send_refused_notification
|
||||||
NotificationMailer.send_refused_notification(Dossier.last)
|
dossier = Dossier.last.tap { |d| d.assign_attributes(motivation: 'Le montant demandé dépasse le plafond autorisé') }
|
||||||
|
NotificationMailer.send_refused_notification(dossier)
|
||||||
end
|
end
|
||||||
|
|
||||||
def send_without_continuation_notification
|
def send_without_continuation_notification
|
||||||
|
|
Loading…
Reference in a new issue