😭 AASM does not support keyword arguments

https://github.com/aasm/aasm/issues/672
This commit is contained in:
simon lehericey 2021-11-26 12:19:40 +01:00
parent 7e76b35297
commit 5a0fb6237f
11 changed files with 63 additions and 40 deletions

View file

@ -112,7 +112,7 @@ module Instructeurs
def passer_en_instruction
begin
dossier.passer_en_instruction!(current_instructeur)
dossier.passer_en_instruction!(instructeur: current_instructeur)
flash.notice = 'Dossier passé en instruction.'
rescue AASM::InvalidTransition => e
flash.alert = aasm_error_message(e, target_state: :en_instruction)
@ -138,7 +138,7 @@ module Instructeurs
dossier.update!(hidden_by_user_at: nil)
end
flash.notice = "Le dossier #{dossier.id} a été repassé en instruction."
dossier.repasser_en_instruction!(current_instructeur)
dossier.repasser_en_instruction!(instructeur: current_instructeur)
rescue AASM::InvalidTransition => e
flash.alert = aasm_error_message(e, target_state: :en_instruction)
end
@ -150,19 +150,21 @@ module Instructeurs
motivation = params[:dossier] && params[:dossier][:motivation]
justificatif = params[:dossier] && params[:dossier][:justificatif_motivation]
h = { instructeur: current_instructeur, motivation: motivation, justificatif: justificatif }
begin
case params[:process_action]
when "refuser"
target_state = :refuse
dossier.refuser!(current_instructeur, motivation, justificatif: justificatif)
dossier.refuser!(h)
flash.notice = "Dossier considéré comme refusé."
when "classer_sans_suite"
target_state = :sans_suite
dossier.classer_sans_suite!(current_instructeur, motivation, justificatif: justificatif)
dossier.classer_sans_suite!(h)
flash.notice = "Dossier considéré comme sans suite."
when "accepter"
target_state = :accepte
dossier.accepter!(current_instructeur, motivation, justificatif: justificatif)
dossier.accepter!(h)
flash.notice = "Dossier traité avec succès."
end
rescue AASM::InvalidTransition => e

View file

@ -41,7 +41,7 @@ module Manager
def repasser_en_instruction
dossier = Dossier.find(params[:id])
dossier.repasser_en_instruction(current_super_admin)
dossier.repasser_en_instruction(instructeur: current_super_admin)
logger.info("Le dossier #{dossier.id} est repassé en instruction par #{current_super_admin.email}")
flash[:notice] = "Le dossier #{dossier.id} est repassé en instruction."

View file

@ -14,7 +14,7 @@ module Mutations
field :errors, [Types::ValidationErrorType], null: true
def resolve(dossier:, instructeur:, motivation: nil, justificatif: nil, disable_notification:)
dossier.accepter!(instructeur, motivation, justificatif: justificatif, disable_notification: disable_notification)
dossier.accepter!(instructeur: instructeur, motivation: motivation, justificatif: justificatif, disable_notification: disable_notification)
{ dossier: dossier }
end

View file

@ -14,7 +14,7 @@ module Mutations
field :errors, [Types::ValidationErrorType], null: true
def resolve(dossier:, instructeur:, motivation:, justificatif: nil, disable_notification:)
dossier.classer_sans_suite!(instructeur, motivation, justificatif: justificatif, disable_notification: disable_notification)
dossier.classer_sans_suite!(instructeur: instructeur, motivation: motivation, justificatif: justificatif, disable_notification: disable_notification)
{ dossier: dossier }
end

View file

@ -12,7 +12,7 @@ module Mutations
field :errors, [Types::ValidationErrorType], null: true
def resolve(dossier:, instructeur:, disable_notification:)
dossier.passer_en_instruction!(instructeur, disable_notification: disable_notification)
dossier.passer_en_instruction!(instructeur: instructeur, disable_notification: disable_notification)
{ dossier: dossier }
end

View file

@ -14,7 +14,7 @@ module Mutations
field :errors, [Types::ValidationErrorType], null: true
def resolve(dossier:, instructeur:, motivation:, justificatif: nil, disable_notification:)
dossier.refuser!(instructeur, motivation, justificatif: justificatif, disable_notification: disable_notification)
dossier.refuser!(instructeur: instructeur, motivation: motivation, justificatif: justificatif, disable_notification: disable_notification)
{ dossier: dossier }
end

View file

@ -787,7 +787,10 @@ class Dossier < ApplicationRecord
save!
end
def after_passer_en_instruction(instructeur, disable_notification: false)
def after_passer_en_instruction(h)
instructeur = h[:instructeur]
disable_notification = h.fetch(:disable_notification, false)
instructeur.follow(self)
self.en_construction_close_to_expiration_notice_sent_at = nil
@ -825,7 +828,10 @@ class Dossier < ApplicationRecord
log_dossier_operation(instructeur, :repasser_en_construction)
end
def after_repasser_en_instruction(instructeur, disable_notification: false)
def after_repasser_en_instruction(h)
instructeur = h[:instructeur]
disable_notification = h.fetch(:disable_notification, false)
create_missing_traitemets
self.archived = false
@ -843,7 +849,12 @@ class Dossier < ApplicationRecord
log_dossier_operation(instructeur, :repasser_en_instruction)
end
def after_accepter(instructeur, motivation, justificatif: nil, disable_notification: false)
def after_accepter(h)
instructeur = h[:instructeur]
motivation = h[:motivation]
justificatif = h[:justificatif]
disable_notification = h.fetch(:disable_notification, false)
self.processed_at = self.traitements
.accepter(motivation: motivation, instructeur: instructeur)
.processed_at
@ -882,7 +893,12 @@ class Dossier < ApplicationRecord
log_automatic_dossier_operation(:accepter, self)
end
def after_refuser(instructeur, motivation, justificatif: nil, disable_notification: false)
def after_refuser(h)
instructeur = h[:instructeur]
motivation = h[:motivation]
justificatif = h[:justificatif]
disable_notification = h.fetch(:disable_notification, false)
self.processed_at = self.traitements
.refuser(motivation: motivation, instructeur: instructeur)
.processed_at
@ -901,7 +917,12 @@ class Dossier < ApplicationRecord
log_dossier_operation(instructeur, :refuser, self)
end
def after_classer_sans_suite(instructeur, motivation, justificatif: nil, disable_notification: false)
def after_classer_sans_suite(h)
instructeur = h[:instructeur]
motivation = h[:motivation]
justificatif = h[:justificatif]
disable_notification = h.fetch(:disable_notification, false)
self.processed_at = self.traitements
.classer_sans_suite(motivation: motivation, instructeur: instructeur)
.processed_at