Merge pull request #9517 from demarches-simplifiees/change-tabs-for-instructeur-dashboard-ldu
[instructeur] Mettre en avant les démarches closes avec des dossiers à traiter
This commit is contained in:
commit
a559bf54eb
7 changed files with 75 additions and 33 deletions
|
@ -12,18 +12,22 @@ module Instructeurs
|
|||
.kept
|
||||
.with_attached_logo
|
||||
.includes(:defaut_groupe_instructeur)
|
||||
|
||||
@procedures = all_procedures.order(closed_at: :desc, unpublished_at: :desc, published_at: :desc, created_at: :desc)
|
||||
@procedures_publiees = all_procedures.publiees.order(published_at: :desc).page(params[:page]).per(ITEMS_PER_PAGE)
|
||||
@procedures_draft = all_procedures.brouillons.order(created_at: :desc).page(params[:page]).per(ITEMS_PER_PAGE)
|
||||
@procedures_closed = all_procedures.closes.order(created_at: :desc).page(params[:page]).per(ITEMS_PER_PAGE)
|
||||
@procedures_publiees_count = all_procedures.publiees.count
|
||||
@procedures_draft_count = all_procedures.brouillons.count
|
||||
@procedures_closed_count = all_procedures.closes.count
|
||||
.includes(:dossiers)
|
||||
|
||||
dossiers = current_instructeur.dossiers
|
||||
.joins(groupe_instructeur: :procedure)
|
||||
.where(procedures: { hidden_at: nil })
|
||||
|
||||
@procedures = all_procedures.order(closed_at: :desc, unpublished_at: :desc, published_at: :desc, created_at: :desc)
|
||||
publiees_or_closes_with_dossiers_en_cours = all_procedures.publiees.or(all_procedures.closes.where(dossiers: { id: dossiers.en_cours.ids }))
|
||||
@procedures_en_cours = publiees_or_closes_with_dossiers_en_cours.order(published_at: :desc).page(params[:page]).per(ITEMS_PER_PAGE)
|
||||
closes_with_no_dossier_en_cours = all_procedures.closes.excluding(all_procedures.closes.where(dossiers: { id: dossiers.en_cours.ids }))
|
||||
@procedures_closes = closes_with_no_dossier_en_cours.order(created_at: :desc).page(params[:page]).per(ITEMS_PER_PAGE)
|
||||
@procedures_draft = all_procedures.brouillons.order(created_at: :desc).page(params[:page]).per(ITEMS_PER_PAGE)
|
||||
@procedures_en_cours_count = publiees_or_closes_with_dossiers_en_cours.count
|
||||
@procedures_draft_count = all_procedures.brouillons.count
|
||||
@procedures_closes_count = closes_with_no_dossier_en_cours.count
|
||||
|
||||
@dossiers_count_per_procedure = dossiers.by_statut('tous').group('groupe_instructeurs.procedure_id').reorder(nil).count
|
||||
@dossiers_a_suivre_count_per_procedure = dossiers.by_statut('a-suivre').group('groupe_instructeurs.procedure_id').reorder(nil).count
|
||||
@dossiers_archived_count_per_procedure = dossiers.by_statut('archives').group('groupe_instructeurs.procedure_id').count
|
||||
|
@ -55,7 +59,7 @@ module Instructeurs
|
|||
@procedure_ids_en_cours_with_notifications = current_instructeur.procedure_ids_with_notifications(:en_cours)
|
||||
@procedure_ids_termines_with_notifications = current_instructeur.procedure_ids_with_notifications(:termine)
|
||||
@statut = params[:statut]
|
||||
@statut.blank? ? @statut = 'publiees' : @statut = params[:statut]
|
||||
@statut.blank? ? @statut = 'en-cours' : @statut = params[:statut]
|
||||
end
|
||||
|
||||
def show
|
||||
|
|
|
@ -7,17 +7,26 @@
|
|||
|
||||
%nav.tabs{ role: 'navigation', 'aria-label': t('views.users.dossiers.secondary_menu') }
|
||||
%ul
|
||||
= tab_item(t('pluralize.published', count: @procedures_publiees_count), instructeur_procedures_path(statut: 'publiees'), active: @statut == 'publiees', badge: number_with_html_delimiter(@procedures_publiees_count))
|
||||
= tab_item('En test', instructeur_procedures_path(statut: 'brouillons'), active: @statut == 'brouillons', badge: number_with_html_delimiter(@procedures_draft_count))
|
||||
= tab_item(t('pluralize.closed', count: @procedures_closed_count), instructeur_procedures_path(statut: 'archivees'), active: @statut == 'archivees', badge: number_with_html_delimiter(@procedures_closed_count))
|
||||
= tab_item(t('pluralize.en_cours', count: @procedures_en_cours_count), instructeur_procedures_path(statut: 'en-cours'), active: @statut == 'en-cours', badge: number_with_html_delimiter(@procedures_en_cours_count))
|
||||
= tab_item(t('pluralize.en_test', count: @procedures_draft_count), instructeur_procedures_path(statut: 'brouillons'), active: @statut == 'brouillons', badge: number_with_html_delimiter(@procedures_draft_count))
|
||||
= tab_item(t('pluralize.closed', count: @procedures_closes_count), instructeur_procedures_path(statut: 'archivees'), active: @statut == 'archivees', badge: number_with_html_delimiter(@procedures_closes_count))
|
||||
|
||||
.fr-container
|
||||
- if @statut === "publiees"
|
||||
- collection = @procedures_publiees
|
||||
- if @statut.in? ["publiees", "en-cours"] # FIX ME: @statut === "en-cours" à partir du 1/11/2023
|
||||
= render Dsfr::CalloutComponent.new(title: nil) do |c|
|
||||
- c.with_body do
|
||||
= t(".procedure_en_cours_description")
|
||||
- collection = @procedures_en_cours
|
||||
- if @statut === "brouillons"
|
||||
= render Dsfr::CalloutComponent.new(title: nil) do |c|
|
||||
- c.with_body do
|
||||
= t(".procedure_en_test_description")
|
||||
- collection = @procedures_draft
|
||||
- if @statut === "archivees"
|
||||
- collection = @procedures_closed
|
||||
= render Dsfr::CalloutComponent.new(title: nil) do |c|
|
||||
- c.with_body do
|
||||
= t(".procedure_close_description")
|
||||
- collection = @procedures_closes
|
||||
|
||||
|
||||
- if collection.present?
|
||||
|
|
|
@ -733,6 +733,9 @@ en:
|
|||
en_cours:
|
||||
one: in progress
|
||||
other: in progress
|
||||
en_test:
|
||||
one: in testing
|
||||
other: in testing
|
||||
traites:
|
||||
one: finished
|
||||
other: finished
|
||||
|
@ -755,17 +758,17 @@ en:
|
|||
one: "%{count} file found"
|
||||
other: "%{count} files found"
|
||||
published:
|
||||
one: Published
|
||||
other: Published
|
||||
one: published
|
||||
other: published
|
||||
closed:
|
||||
one: Closed
|
||||
other: Closed
|
||||
one: finished
|
||||
other: finished
|
||||
draft:
|
||||
one: Draft
|
||||
other: Drafts
|
||||
one: draft
|
||||
other: drafts
|
||||
deleted:
|
||||
one: Deleted
|
||||
other: Deleted
|
||||
one: deleted
|
||||
other: deleted
|
||||
administrateurs:
|
||||
activate:
|
||||
new:
|
||||
|
|
|
@ -745,6 +745,9 @@ fr:
|
|||
en_cours:
|
||||
one: en cours
|
||||
other: en cours
|
||||
en_test:
|
||||
one: en test
|
||||
other: en test
|
||||
traites:
|
||||
one: traité
|
||||
other: traités
|
||||
|
@ -767,17 +770,17 @@ fr:
|
|||
one: "%{count} dossier trouvé"
|
||||
other: "%{count} dossiers trouvés"
|
||||
published:
|
||||
one: Publiée
|
||||
other: Publiées
|
||||
one: publiée
|
||||
other: publiées
|
||||
closed:
|
||||
one: Close
|
||||
other: Closes
|
||||
one: terminée
|
||||
other: terminées
|
||||
draft:
|
||||
one: Brouillon
|
||||
other: Brouillons
|
||||
one: brouillon
|
||||
other: brouillons
|
||||
deleted:
|
||||
one: Supprimée
|
||||
other: Supprimées
|
||||
one: supprimée
|
||||
other: supprimées
|
||||
procedures:
|
||||
one: Démarche
|
||||
other: Démarches
|
||||
|
|
|
@ -2,6 +2,9 @@ en:
|
|||
instructeurs:
|
||||
procedures:
|
||||
index:
|
||||
procedure_en_cours_description: The “in progress” tab groups published procedures as well as closed procedures that still have files to process.
|
||||
procedure_en_test_description: The “in testing” tab groups unpublished procedures. Files submitted during the test phase will be automatically deleted when the procedure is modified or published.
|
||||
procedure_close_description: The “finished” tab groups closed procedures with no more files to process.
|
||||
to_follow: to follow
|
||||
followed: followed
|
||||
processed: processed
|
||||
|
|
|
@ -2,6 +2,9 @@ fr:
|
|||
instructeurs:
|
||||
procedures:
|
||||
index:
|
||||
procedure_en_cours_description: L'onglet « en cours » regroupe les démarches publiées ainsi que les démarches closes ayant encore des dossiers à traiter.
|
||||
procedure_en_test_description: L'onglet « en test » regroupe les démarches qui ne sont pas encore publiées. Les dossiers déposés pendant la phase de test seront automatiquement supprimés lors de la modification ou de la publication de la démarche.
|
||||
procedure_close_description: L'onglet « terminée » regroupe les démarches closes n'ayant plus de dossiers à traiter.
|
||||
to_follow: à suivre
|
||||
followed: suivis
|
||||
processed: traités
|
||||
|
|
|
@ -105,6 +105,8 @@ describe Instructeurs::ProceduresController, type: :controller do
|
|||
|
||||
context "with not draft state on multiple procedures" do
|
||||
let(:procedure2) { create(:procedure, :published, :expirable) }
|
||||
let(:procedure3) { create(:procedure, :closed, :expirable) }
|
||||
let(:procedure4) { create(:procedure, :closed, :expirable) }
|
||||
let(:state) { Dossier.states.fetch(:en_construction) }
|
||||
|
||||
before do
|
||||
|
@ -132,6 +134,13 @@ describe Instructeurs::ProceduresController, type: :controller do
|
|||
state: Dossier.states.fetch(:sans_suite),
|
||||
processed_at: 8.months.ago,
|
||||
hidden_by_user_at: 1.day.ago) # counted as expirable because even if user remove it, instructeur see it
|
||||
|
||||
instructeur.groupe_instructeurs << procedure3.defaut_groupe_instructeur
|
||||
create(:dossier, :followed, procedure: procedure3, state: Dossier.states.fetch(:en_construction))
|
||||
create(:dossier, procedure: procedure3, state: Dossier.states.fetch(:sans_suite))
|
||||
|
||||
instructeur.groupe_instructeurs << procedure4.defaut_groupe_instructeur
|
||||
create(:dossier, procedure: procedure4, state: Dossier.states.fetch(:sans_suite))
|
||||
subject
|
||||
end
|
||||
|
||||
|
@ -148,12 +157,20 @@ describe Instructeurs::ProceduresController, type: :controller do
|
|||
it { expect(assigns(:dossiers_archived_count_per_procedure)[procedure2.id]).to eq(nil) }
|
||||
it { expect(assigns(:dossiers_termines_count_per_procedure)[procedure2.id]).to eq(1) }
|
||||
|
||||
it { expect(assigns(:dossiers_count_per_procedure)[procedure3.id]).to eq(2) }
|
||||
|
||||
it { expect(assigns(:all_dossiers_counts)['à suivre']).to eq(3 + 0) }
|
||||
it { expect(assigns(:all_dossiers_counts)['suivis']).to eq(0 + 1) }
|
||||
it { expect(assigns(:all_dossiers_counts)['traités']).to eq(2 + 1) }
|
||||
it { expect(assigns(:all_dossiers_counts)['dossiers']).to eq(5 + 3) }
|
||||
it { expect(assigns(:all_dossiers_counts)['traités']).to eq(2 + 1 + 1 + 1) }
|
||||
it { expect(assigns(:all_dossiers_counts)['dossiers']).to eq(5 + 3 + 2 + 1) }
|
||||
it { expect(assigns(:all_dossiers_counts)['archivés']).to eq(1 + 0) }
|
||||
it { expect(assigns(:all_dossiers_counts)['expirant']).to eq(2 + 0) }
|
||||
|
||||
it { expect(assigns(:procedures_en_cours)).to eq([procedure2, procedure, procedure3]) }
|
||||
it { expect(assigns(:procedures_en_cours_count)).to eq(3) }
|
||||
|
||||
it { expect(assigns(:procedures_closes)).to eq([procedure4]) }
|
||||
it { expect(assigns(:procedures_closes_count)).to eq(1) }
|
||||
end
|
||||
|
||||
context 'with not draft state on discarded procedure' do
|
||||
|
|
Loading…
Add table
Reference in a new issue