Use revision instead of groupe instructeur as dossier procedure link
This commit is contained in:
parent
1e10298859
commit
9c3e72c84a
6 changed files with 11 additions and 14 deletions
|
@ -12,13 +12,13 @@ module Instructeurs
|
|||
DONNES_STATUS = 'donnes'
|
||||
|
||||
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)
|
||||
end
|
||||
|
||||
def procedure
|
||||
@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_donnes = instructeur_avis.with_answer
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ module Mutations
|
|||
def authorized?(dossier:, groupe_instructeur:)
|
||||
if dossier.groupe_instructeur == groupe_instructeur
|
||||
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}' n’appartient pas à la même démarche que le dossier"] }
|
||||
else
|
||||
true
|
||||
|
|
|
@ -22,6 +22,7 @@ class Avis < ApplicationRecord
|
|||
belongs_to :instructeur, optional: true
|
||||
belongs_to :experts_procedure, optional: true
|
||||
belongs_to :claimant, class_name: 'Instructeur', optional: false
|
||||
has_one :procedure, through: :dossier
|
||||
|
||||
has_one_attached :piece_justificative_file
|
||||
has_one_attached :introduction_file
|
||||
|
@ -79,10 +80,6 @@ class Avis < ApplicationRecord
|
|||
]
|
||||
end
|
||||
|
||||
def procedure
|
||||
dossier.procedure
|
||||
end
|
||||
|
||||
def revoked?
|
||||
revoked_at.present?
|
||||
end
|
||||
|
|
|
@ -293,8 +293,8 @@ class Dossier < ApplicationRecord
|
|||
# select users who have submitted dossier for the given 'procedures.id'
|
||||
users_who_submitted =
|
||||
state_not_brouillon
|
||||
.joins(:groupe_instructeur)
|
||||
.where("groupe_instructeurs.procedure_id = procedures.id")
|
||||
.joins(:revision)
|
||||
.where("procedure_revisions.procedure_id = procedures.id")
|
||||
.select(:user_id)
|
||||
# select dossier in brouillon where procedure closes in two days and for which the user has not submitted a Dossier
|
||||
state_brouillon
|
||||
|
@ -321,7 +321,7 @@ class Dossier < ApplicationRecord
|
|||
delegate :siret, :siren, to: :etablissement, allow_nil: true
|
||||
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
|
||||
|
||||
after_save :send_dossier_received
|
||||
|
@ -427,7 +427,7 @@ class Dossier < ApplicationRecord
|
|||
end
|
||||
|
||||
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)
|
||||
unfollow_stale_instructeurs
|
||||
|
||||
|
|
|
@ -125,10 +125,10 @@ class AdministrateurUsageStatisticsService
|
|||
result = {}
|
||||
|
||||
Dossier
|
||||
.joins(groupe_instructeur: { procedure: [:administrateurs] })
|
||||
.joins(revision: { procedure: [:administrateurs] })
|
||||
.group(
|
||||
'administrateurs.id',
|
||||
'groupe_instructeurs.procedure_id',
|
||||
'procedure_revisions.procedure_id',
|
||||
<<~EOSQL
|
||||
CASE
|
||||
WHEN state IN('accepte', 'refuse', 'sans_suite') THEN 'termine'
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
= link_to 'J’ai déjà un compte', commencer_sign_in_path(path: @procedure.path), class: ['button large expand']
|
||||
|
||||
- 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)
|
||||
- not_drafts = dossiers.merge(Dossier.state_not_brouillon)
|
||||
|
||||
|
|
Loading…
Reference in a new issue