store instructeur_email in traitement

This commit is contained in:
Christophe Robillard 2020-07-07 10:43:07 +02:00
parent 9b6c5fd7fd
commit 1253bb5994
6 changed files with 14 additions and 11 deletions

View file

@ -548,7 +548,7 @@ class Dossier < ApplicationRecord
end
def after_accepter(instructeur, motivation, justificatif = nil)
self.traitements.build(state: Dossier.states.fetch(:accepte), instructeur: instructeur, motivation: motivation, processed_at: Time.zone.now)
self.traitements.build(state: Dossier.states.fetch(:accepte), instructeur_email: instructeur.email, motivation: motivation, processed_at: Time.zone.now)
if justificatif
self.justificatif_motivation.attach(justificatif)
@ -564,7 +564,7 @@ class Dossier < ApplicationRecord
end
def after_accepter_automatiquement
self.traitements.build(state: Dossier.states.fetch(:accepte), instructeur: nil, motivation: nil, processed_at: Time.zone.now)
self.traitements.build(state: Dossier.states.fetch(:accepte), instructeur_email: nil, motivation: nil, processed_at: Time.zone.now)
self.en_instruction_at ||= Time.zone.now
if attestation.nil?
@ -577,7 +577,7 @@ class Dossier < ApplicationRecord
end
def after_refuser(instructeur, motivation, justificatif = nil)
self.traitements.build(state: Dossier.states.fetch(:refuse), instructeur: instructeur, motivation: motivation, processed_at: Time.zone.now)
self.traitements.build(state: Dossier.states.fetch(:refuse), instructeur_email: instructeur.email, motivation: motivation, processed_at: Time.zone.now)
if justificatif
self.justificatif_motivation.attach(justificatif)
@ -589,7 +589,7 @@ class Dossier < ApplicationRecord
end
def after_classer_sans_suite(instructeur, motivation, justificatif = nil)
self.traitements.build(state: Dossier.states.fetch(:sans_suite), instructeur: instructeur, motivation: motivation, processed_at: Time.zone.now)
self.traitements.build(state: Dossier.states.fetch(:sans_suite), instructeur_email: instructeur.email, motivation: motivation, processed_at: Time.zone.now)
if justificatif
self.justificatif_motivation.attach(justificatif)

View file

@ -1,6 +1,5 @@
class Traitement < ApplicationRecord
belongs_to :dossier
belongs_to :instructeur
scope :termine_close_to_expiration, -> do
joins(dossier: :procedure)

View file

@ -6,7 +6,7 @@
= render partial: 'instructeurs/dossiers/envoyer_dossier_block', locals: { dossier: @dossier, potential_recipients: @potential_recipients }
- @dossier.traitements.each do |traitement|
= render partial: 'instructeurs/dossiers/personnes_impliquees_block', locals: { emails_collection: [traitement.instructeur.email], title: "Instructeur qui a #{t(traitement.state, scope: 'activerecord.attributes.traitement.state').downcase} le dossier (#{l(traitement.processed_at)})" }
= render partial: 'instructeurs/dossiers/personnes_impliquees_block', locals: { emails_collection: [traitement.instructeur_email], title: "Instructeur qui a #{t(traitement.state, scope: 'activerecord.attributes.traitement.state').downcase} le dossier (#{l(traitement.processed_at)})" }
= render partial: 'instructeurs/dossiers/personnes_impliquees_block', locals: { emails_collection: @following_instructeurs_emails, title: "Instructeurs qui suivent actuellement le dossier", blank: "Aucun instructeur ne suit ce dossier" }

View file

@ -0,0 +1,6 @@
class RemoveInstructeurIdAndAddInstructeurEmailToTraitements < ActiveRecord::Migration[5.2]
def change
add_column :traitements, :instructeur_email, :string
remove_column :traitements, :instructeur_id
end
end

View file

@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 2020_06_30_140356) do
ActiveRecord::Schema.define(version: 2020_07_07_082256) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@ -562,12 +562,11 @@ ActiveRecord::Schema.define(version: 2020_06_30_140356) do
create_table "traitements", force: :cascade do |t|
t.bigint "dossier_id"
t.bigint "instructeur_id"
t.string "motivation"
t.string "state"
t.datetime "processed_at"
t.string "instructeur_email"
t.index ["dossier_id"], name: "index_traitements_on_dossier_id"
t.index ["instructeur_id"], name: "index_traitements_on_instructeur_id"
end
create_table "trusted_device_tokens", force: :cascade do |t|
@ -671,7 +670,6 @@ ActiveRecord::Schema.define(version: 2020_06_30_140356) do
add_foreign_key "refused_mails", "procedures"
add_foreign_key "services", "administrateurs"
add_foreign_key "traitements", "dossiers"
add_foreign_key "traitements", "instructeurs"
add_foreign_key "trusted_device_tokens", "instructeurs"
add_foreign_key "types_de_champ", "types_de_champ", column: "parent_id"
add_foreign_key "users", "administrateurs"

View file

@ -915,7 +915,7 @@ describe Dossier do
it { expect(dossier.traitements.last.motivation).to eq('motivation') }
it { expect(dossier.motivation).to eq('motivation') }
it { expect(dossier.traitements.last.instructeur).to eq(instructeur) }
it { expect(dossier.traitements.last.instructeur_email).to eq(instructeur.email) }
it { expect(dossier.en_instruction_at).to eq(dossier.en_instruction_at) }
it { expect(dossier.traitements.last.processed_at).to eq(now) }
it { expect(dossier.processed_at).to eq(now) }