diff --git a/app/controllers/backoffice/dossiers_controller.rb b/app/controllers/backoffice/dossiers_controller.rb index 77478f2c5..753b40302 100644 --- a/app/controllers/backoffice/dossiers_controller.rb +++ b/app/controllers/backoffice/dossiers_controller.rb @@ -1,6 +1,7 @@ class Backoffice::DossiersController < Backoffice::DossiersListController respond_to :html, :xlsx, :ods, :csv + prepend_before_action :store_current_location, only: :show before_action :ensure_gestionnaire_is_authorized, only: :show def index @@ -192,6 +193,12 @@ class Backoffice::DossiersController < Backoffice::DossiersListController private + def store_current_location + if !gestionnaire_signed_in? + store_location_for(:gestionnaire, request.url) + end + end + def ensure_gestionnaire_is_authorized unless current_gestionnaire.can_view_dossier?(params[:id]) flash.alert = t('errors.messages.dossier_not_found') diff --git a/app/controllers/users/sessions_controller.rb b/app/controllers/users/sessions_controller.rb index 3e8efd878..2a990beaf 100644 --- a/app/controllers/users/sessions_controller.rb +++ b/app/controllers/users/sessions_controller.rb @@ -33,7 +33,8 @@ class Users::SessionsController < Sessions::SessionsController if user_signed_in? redirect_to after_sign_in_path_for(:user) elsif gestionnaire_signed_in? - redirect_to backoffice_path + location = stored_location_for(:gestionnaire) || backoffice_path + redirect_to location elsif administrateur_signed_in? redirect_to admin_path else diff --git a/app/mailers/avis_mailer.rb b/app/mailers/avis_mailer.rb index 601ee464d..cf435cefc 100644 --- a/app/mailers/avis_mailer.rb +++ b/app/mailers/avis_mailer.rb @@ -1,6 +1,6 @@ class AvisMailer < ApplicationMailer - def you_are_invited_on_dossier(avis) + def avis_invitation(avis) @avis = avis email = @avis.gestionnaire.try(:email) || @avis.email mail(to: email, subject: "Donnez votre avis sur le dossier nº #{@avis.dossier.id} (#{@avis.dossier.procedure.libelle})") diff --git a/app/models/avis.rb b/app/models/avis.rb index dfbebbc23..2d2480a2e 100644 --- a/app/models/avis.rb +++ b/app/models/avis.rb @@ -15,7 +15,7 @@ class Avis < ApplicationRecord end def notify_gestionnaire - AvisMailer.you_are_invited_on_dossier(self).deliver_now + AvisMailer.avis_invitation(self).deliver_now end def self.link_avis_to_gestionnaire(gestionnaire) diff --git a/app/views/avis_mailer/you_are_invited_on_dossier.html.haml b/app/views/avis_mailer/avis_invitation.html.haml similarity index 88% rename from app/views/avis_mailer/you_are_invited_on_dossier.html.haml rename to app/views/avis_mailer/avis_invitation.html.haml index 26b129266..78added0b 100644 --- a/app/views/avis_mailer/you_are_invited_on_dossier.html.haml +++ b/app/views/avis_mailer/avis_invitation.html.haml @@ -12,7 +12,7 @@ - if @avis.gestionnaire.present? %p - = link_to "Connectez-vous pour donner votre avis", new_gestionnaire_session_url + = link_to "Connectez-vous pour donner votre avis", backoffice_dossier_url(@avis.dossier) - else %p = link_to "Inscrivez-vous pour donner votre avis", avis_sign_up_url(@avis.id, @avis.email) diff --git a/spec/mailers/avis_mailer_spec.rb b/spec/mailers/avis_mailer_spec.rb index cc5320d7a..83673e899 100644 --- a/spec/mailers/avis_mailer_spec.rb +++ b/spec/mailers/avis_mailer_spec.rb @@ -1,10 +1,10 @@ require "rails_helper" RSpec.describe AvisMailer, type: :mailer do - describe '.you_are_invited_on_dossier' do + describe '.avis_invitation' do let(:avis) { create(:avis) } - subject { described_class.you_are_invited_on_dossier(avis) } + subject { described_class.avis_invitation(avis) } it { expect(subject.subject).to eq("Donnez votre avis sur le dossier nº #{avis.dossier.id} (#{avis.dossier.procedure.libelle})") } it { expect(subject.body).to include("Vous avez été invité par #{avis.claimant.email} à donner votre avis sur le dossier nº #{avis.dossier.id} de la procédure : #{avis.dossier.procedure.libelle}.") } diff --git a/spec/mailers/previews/avis_mailer_preview.rb b/spec/mailers/previews/avis_mailer_preview.rb index c911615e6..55d153cd1 100644 --- a/spec/mailers/previews/avis_mailer_preview.rb +++ b/spec/mailers/previews/avis_mailer_preview.rb @@ -1,8 +1,8 @@ # Preview all emails at http://localhost:3000/rails/mailers/avis_mailer class AvisMailerPreview < ActionMailer::Preview - def you_are_invited_on_dossier - AvisMailer.you_are_invited_on_dossier(Avis.last) + def avis_invitation + AvisMailer.avis_invitation(Avis.last) end end