Use revision instead of groupe instructeur as dossier procedure link

This commit is contained in:
Paul Chavard 2021-03-09 11:21:25 +01:00
parent 1e10298859
commit 9c3e72c84a
6 changed files with 11 additions and 14 deletions

View file

@ -12,13 +12,13 @@ module Instructeurs
DONNES_STATUS = 'donnes' DONNES_STATUS = 'donnes'
def index def index
avis = current_instructeur.avis.includes(dossier: [groupe_instructeur: :procedure]) avis = current_instructeur.avis.includes(:procedure)
@avis_by_procedure = avis.to_a.group_by(&:procedure) @avis_by_procedure = avis.to_a.group_by(&:procedure)
end end
def procedure def procedure
@procedure = Procedure.find(params[:procedure_id]) @procedure = Procedure.find(params[:procedure_id])
instructeur_avis = current_instructeur.avis.includes(:dossier).where(dossiers: { groupe_instructeur: GroupeInstructeur.where(procedure: @procedure.id) }) instructeur_avis = current_instructeur.avis.includes(:dossier).where(dossiers: { revision: @procedure.revisions })
@avis_a_donner = instructeur_avis.without_answer @avis_a_donner = instructeur_avis.without_answer
@avis_donnes = instructeur_avis.with_answer @avis_donnes = instructeur_avis.with_answer

View file

@ -19,7 +19,7 @@ module Mutations
def authorized?(dossier:, groupe_instructeur:) def authorized?(dossier:, groupe_instructeur:)
if dossier.groupe_instructeur == groupe_instructeur if dossier.groupe_instructeur == groupe_instructeur
return false, { errors: ["Le dossier est déjà avec le grope instructeur: '#{groupe_instructeur.label}'"] } return false, { errors: ["Le dossier est déjà avec le grope instructeur: '#{groupe_instructeur.label}'"] }
elsif dossier.groupe_instructeur.procedure != groupe_instructeur.procedure elsif dossier.procedure != groupe_instructeur.procedure
return false, { errors: ["Le groupe instructeur '#{groupe_instructeur.label}' nappartient pas à la même démarche que le dossier"] } return false, { errors: ["Le groupe instructeur '#{groupe_instructeur.label}' nappartient pas à la même démarche que le dossier"] }
else else
true true

View file

@ -22,6 +22,7 @@ class Avis < ApplicationRecord
belongs_to :instructeur, optional: true belongs_to :instructeur, optional: true
belongs_to :experts_procedure, optional: true belongs_to :experts_procedure, optional: true
belongs_to :claimant, class_name: 'Instructeur', optional: false belongs_to :claimant, class_name: 'Instructeur', optional: false
has_one :procedure, through: :dossier
has_one_attached :piece_justificative_file has_one_attached :piece_justificative_file
has_one_attached :introduction_file has_one_attached :introduction_file
@ -79,10 +80,6 @@ class Avis < ApplicationRecord
] ]
end end
def procedure
dossier.procedure
end
def revoked? def revoked?
revoked_at.present? revoked_at.present?
end end

View file

@ -293,8 +293,8 @@ class Dossier < ApplicationRecord
# select users who have submitted dossier for the given 'procedures.id' # select users who have submitted dossier for the given 'procedures.id'
users_who_submitted = users_who_submitted =
state_not_brouillon state_not_brouillon
.joins(:groupe_instructeur) .joins(:revision)
.where("groupe_instructeurs.procedure_id = procedures.id") .where("procedure_revisions.procedure_id = procedures.id")
.select(:user_id) .select(:user_id)
# select dossier in brouillon where procedure closes in two days and for which the user has not submitted a Dossier # select dossier in brouillon where procedure closes in two days and for which the user has not submitted a Dossier
state_brouillon state_brouillon
@ -321,7 +321,7 @@ class Dossier < ApplicationRecord
delegate :siret, :siren, to: :etablissement, allow_nil: true delegate :siret, :siren, to: :etablissement, allow_nil: true
delegate :france_connect_information, to: :user delegate :france_connect_information, to: :user
before_save :build_default_champs, if: Proc.new { groupe_instructeur_id_was.nil? } before_save :build_default_champs, if: Proc.new { revision_id_was.nil? }
before_save :update_search_terms before_save :update_search_terms
after_save :send_dossier_received after_save :send_dossier_received
@ -427,7 +427,7 @@ class Dossier < ApplicationRecord
end end
def assign_to_groupe_instructeur(groupe_instructeur, author = nil) def assign_to_groupe_instructeur(groupe_instructeur, author = nil)
if groupe_instructeur.procedure == procedure && groupe_instructeur != self.groupe_instructeur if (groupe_instructeur.nil? || groupe_instructeur.procedure == procedure) && self.groupe_instructeur != groupe_instructeur
if update(groupe_instructeur: groupe_instructeur, groupe_instructeur_updated_at: Time.zone.now) if update(groupe_instructeur: groupe_instructeur, groupe_instructeur_updated_at: Time.zone.now)
unfollow_stale_instructeurs unfollow_stale_instructeurs

View file

@ -125,10 +125,10 @@ class AdministrateurUsageStatisticsService
result = {} result = {}
Dossier Dossier
.joins(groupe_instructeur: { procedure: [:administrateurs] }) .joins(revision: { procedure: [:administrateurs] })
.group( .group(
'administrateurs.id', 'administrateurs.id',
'groupe_instructeurs.procedure_id', 'procedure_revisions.procedure_id',
<<~EOSQL <<~EOSQL
CASE CASE
WHEN state IN('accepte', 'refuse', 'sans_suite') THEN 'termine' WHEN state IN('accepte', 'refuse', 'sans_suite') THEN 'termine'

View file

@ -11,7 +11,7 @@
= link_to 'Jai déjà un compte', commencer_sign_in_path(path: @procedure.path), class: ['button large expand'] = link_to 'Jai déjà un compte', commencer_sign_in_path(path: @procedure.path), class: ['button large expand']
- else - else
- dossiers = current_user.dossiers.where(groupe_instructeur: @procedure.groupe_instructeurs) - dossiers = current_user.dossiers.where(revision: @procedure.revisions)
- drafts = dossiers.merge(Dossier.state_brouillon) - drafts = dossiers.merge(Dossier.state_brouillon)
- not_drafts = dossiers.merge(Dossier.state_not_brouillon) - not_drafts = dossiers.merge(Dossier.state_not_brouillon)