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'
|
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
|
||||||
|
|
||||||
|
|
|
@ -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}' n’appartient pas à la même démarche que le dossier"] }
|
return false, { errors: ["Le groupe instructeur '#{groupe_instructeur.label}' n’appartient pas à la même démarche que le dossier"] }
|
||||||
else
|
else
|
||||||
true
|
true
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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'
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
= link_to 'J’ai déjà un compte', commencer_sign_in_path(path: @procedure.path), class: ['button large expand']
|
= link_to 'J’ai 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)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue