Merge pull request #10048 from demarches-simplifiees/etq-admin-je-vois-les-messages-envoyes-aux-brouillons
ETQ instructeur je vois les messages envoyés aux usagers avec un dossier en brouillon
This commit is contained in:
commit
e94ae3498c
8 changed files with 15 additions and 5 deletions
|
@ -258,7 +258,7 @@ module Instructeurs
|
||||||
|
|
||||||
def email_usagers
|
def email_usagers
|
||||||
@procedure = procedure
|
@procedure = procedure
|
||||||
@bulk_messages = BulkMessage.includes(:groupe_instructeurs).where(groupe_instructeurs: { procedure: procedure })
|
@bulk_messages = BulkMessage.where(procedure: procedure)
|
||||||
@bulk_message = current_instructeur.bulk_messages.build
|
@bulk_message = current_instructeur.bulk_messages.build
|
||||||
@dossiers_without_groupe_count = procedure.dossiers.state_brouillon.for_groupe_instructeur(nil).count
|
@dossiers_without_groupe_count = procedure.dossiers.state_brouillon.for_groupe_instructeur(nil).count
|
||||||
end
|
end
|
||||||
|
@ -283,7 +283,8 @@ module Instructeurs
|
||||||
dossier_state: Dossier.states.fetch(:brouillon),
|
dossier_state: Dossier.states.fetch(:brouillon),
|
||||||
sent_at: Time.zone.now,
|
sent_at: Time.zone.now,
|
||||||
instructeur_id: current_instructeur.id,
|
instructeur_id: current_instructeur.id,
|
||||||
groupe_instructeurs: GroupeInstructeur.for_dossiers(dossiers)
|
groupe_instructeurs: GroupeInstructeur.for_dossiers(dossiers),
|
||||||
|
procedure_id: @procedure.id
|
||||||
)
|
)
|
||||||
bulk_message.save!
|
bulk_message.save!
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
class BulkMessage < ApplicationRecord
|
class BulkMessage < ApplicationRecord
|
||||||
belongs_to :instructeur
|
belongs_to :instructeur
|
||||||
|
belongs_to :procedure
|
||||||
has_and_belongs_to_many :groupe_instructeurs, -> { order(:label) }
|
has_and_belongs_to_many :groupe_instructeurs, -> { order(:label) }
|
||||||
end
|
end
|
||||||
|
|
|
@ -33,5 +33,5 @@
|
||||||
.width-100
|
.width-100
|
||||||
%h2.claimant
|
%h2.claimant
|
||||||
%span.email= message.instructeur.email
|
%span.email= message.instructeur.email
|
||||||
%span.date message envoyé à #{@dossiers_count} usagers le #{message.sent_at.strftime('%d/%m/%y à %H:%M')}
|
%span.date a envoyé ce message à #{@dossiers_without_groupe_count} usagers le #{message.sent_at.strftime('%d/%m/%y à %H:%M')}
|
||||||
%p= message.body
|
%p= message.body
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
class AddProcedureIdToBulkMessages < ActiveRecord::Migration[7.0]
|
||||||
|
def change
|
||||||
|
add_column :bulk_messages, :procedure_id, :bigint
|
||||||
|
end
|
||||||
|
end
|
|
@ -10,7 +10,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema[7.0].define(version: 2024_02_15_164247) do
|
ActiveRecord::Schema[7.0].define(version: 2024_02_27_163855) do
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "pgcrypto"
|
enable_extension "pgcrypto"
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
@ -224,6 +224,7 @@ ActiveRecord::Schema[7.0].define(version: 2024_02_15_164247) do
|
||||||
t.string "dossier_state"
|
t.string "dossier_state"
|
||||||
t.bigint "instructeur_id", null: false
|
t.bigint "instructeur_id", null: false
|
||||||
t.datetime "sent_at", precision: nil, null: false
|
t.datetime "sent_at", precision: nil, null: false
|
||||||
|
t.bigint "procedure_id"
|
||||||
t.datetime "updated_at", null: false
|
t.datetime "updated_at", null: false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -183,7 +183,7 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
|
||||||
let!(:gi_1_3) { create(:groupe_instructeur, label: 'groupe instructeur 3', procedure: procedure) }
|
let!(:gi_1_3) { create(:groupe_instructeur, label: 'groupe instructeur 3', procedure: procedure) }
|
||||||
let!(:dossier12) { create(:dossier, :en_construction, :with_individual, procedure: procedure, groupe_instructeur: gi_1_1) }
|
let!(:dossier12) { create(:dossier, :en_construction, :with_individual, procedure: procedure, groupe_instructeur: gi_1_1) }
|
||||||
let!(:instructeur) { create(:instructeur) }
|
let!(:instructeur) { create(:instructeur) }
|
||||||
let!(:bulk_message) { BulkMessage.create(dossier_count: 2, dossier_state: "brouillon", body: "hello", sent_at: Time.zone.now, groupe_instructeurs: [gi_1_1, gi_1_3], instructeur: instructeur) }
|
let!(:bulk_message) { BulkMessage.create(dossier_count: 2, dossier_state: "en_construction", body: "hello", sent_at: Time.zone.now, groupe_instructeurs: [gi_1_1, gi_1_3], instructeur: instructeur, procedure: procedure) }
|
||||||
|
|
||||||
describe 'when the new group is a group of the procedure' do
|
describe 'when the new group is a group of the procedure' do
|
||||||
before do
|
before do
|
||||||
|
|
|
@ -704,6 +704,7 @@ describe Instructeurs::ProceduresController, type: :controller do
|
||||||
expect(BulkMessage.count).to eq(1)
|
expect(BulkMessage.count).to eq(1)
|
||||||
expect(bulk_message.body).to eq("avant\napres")
|
expect(bulk_message.body).to eq("avant\napres")
|
||||||
expect(bulk_message.groupe_instructeurs).to be_empty
|
expect(bulk_message.groupe_instructeurs).to be_empty
|
||||||
|
expect(bulk_message.procedure_id).to eq(procedure.id)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "creates a flash notice" do
|
it "creates a flash notice" do
|
||||||
|
|
|
@ -6,5 +6,6 @@ FactoryBot.define do
|
||||||
sent_at { 1.day.ago }
|
sent_at { 1.day.ago }
|
||||||
instructeur { association :instructeur }
|
instructeur { association :instructeur }
|
||||||
groupe_instructeurs { [association(:groupe_instructeur, strategy: :build)] }
|
groupe_instructeurs { [association(:groupe_instructeur, strategy: :build)] }
|
||||||
|
procedure { association :procedure }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue