change 'published' tabs by 'en cours' to highlight closed procedure with 'en cours' files
This commit is contained in:
parent
39368ab674
commit
a4c79e953b
7 changed files with 75 additions and 33 deletions
|
@ -12,18 +12,22 @@ module Instructeurs
|
||||||
.kept
|
.kept
|
||||||
.with_attached_logo
|
.with_attached_logo
|
||||||
.includes(:defaut_groupe_instructeur)
|
.includes(:defaut_groupe_instructeur)
|
||||||
|
.includes(:dossiers)
|
||||||
@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
|
|
||||||
|
|
||||||
dossiers = current_instructeur.dossiers
|
dossiers = current_instructeur.dossiers
|
||||||
.joins(groupe_instructeur: :procedure)
|
.joins(groupe_instructeur: :procedure)
|
||||||
.where(procedures: { hidden_at: nil })
|
.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.pluck(:id) }))
|
||||||
|
@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.pluck(:id) }))
|
||||||
|
@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_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_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
|
@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_en_cours_with_notifications = current_instructeur.procedure_ids_with_notifications(:en_cours)
|
||||||
@procedure_ids_termines_with_notifications = current_instructeur.procedure_ids_with_notifications(:termine)
|
@procedure_ids_termines_with_notifications = current_instructeur.procedure_ids_with_notifications(:termine)
|
||||||
@statut = params[:statut]
|
@statut = params[:statut]
|
||||||
@statut.blank? ? @statut = 'publiees' : @statut = params[:statut]
|
@statut.blank? ? @statut = 'en-cours' : @statut = params[:statut]
|
||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
|
|
|
@ -7,17 +7,26 @@
|
||||||
|
|
||||||
%nav.tabs{ role: 'navigation', 'aria-label': t('views.users.dossiers.secondary_menu') }
|
%nav.tabs{ role: 'navigation', 'aria-label': t('views.users.dossiers.secondary_menu') }
|
||||||
%ul
|
%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(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('En test', instructeur_procedures_path(statut: 'brouillons'), active: @statut == 'brouillons', badge: number_with_html_delimiter(@procedures_draft_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_closed_count), instructeur_procedures_path(statut: 'archivees'), active: @statut == 'archivees', badge: number_with_html_delimiter(@procedures_closed_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
|
.fr-container
|
||||||
- if @statut === "publiees"
|
- if @statut === "en-cours"
|
||||||
- collection = @procedures_publiees
|
= render Dsfr::CalloutComponent.new(title: nil) do |c|
|
||||||
|
- c.with_body do
|
||||||
|
= t(".procedure_en_cours_description")
|
||||||
|
- collection = @procedures_en_cours
|
||||||
- if @statut === "brouillons"
|
- if @statut === "brouillons"
|
||||||
|
= render Dsfr::CalloutComponent.new(title: nil) do |c|
|
||||||
|
- c.with_body do
|
||||||
|
= t(".procedure_en_test_description")
|
||||||
- collection = @procedures_draft
|
- collection = @procedures_draft
|
||||||
- if @statut === "archivees"
|
- 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?
|
- if collection.present?
|
||||||
|
|
|
@ -733,6 +733,9 @@ en:
|
||||||
en_cours:
|
en_cours:
|
||||||
one: in progress
|
one: in progress
|
||||||
other: in progress
|
other: in progress
|
||||||
|
en_test:
|
||||||
|
one: in testing
|
||||||
|
other: in testing
|
||||||
traites:
|
traites:
|
||||||
one: finished
|
one: finished
|
||||||
other: finished
|
other: finished
|
||||||
|
@ -755,17 +758,17 @@ en:
|
||||||
one: "%{count} file found"
|
one: "%{count} file found"
|
||||||
other: "%{count} files found"
|
other: "%{count} files found"
|
||||||
published:
|
published:
|
||||||
one: Published
|
one: published
|
||||||
other: Published
|
other: published
|
||||||
closed:
|
closed:
|
||||||
one: Closed
|
one: finished
|
||||||
other: Closed
|
other: finished
|
||||||
draft:
|
draft:
|
||||||
one: Draft
|
one: draft
|
||||||
other: Drafts
|
other: drafts
|
||||||
deleted:
|
deleted:
|
||||||
one: Deleted
|
one: deleted
|
||||||
other: Deleted
|
other: deleted
|
||||||
administrateurs:
|
administrateurs:
|
||||||
activate:
|
activate:
|
||||||
new:
|
new:
|
||||||
|
|
|
@ -745,6 +745,9 @@ fr:
|
||||||
en_cours:
|
en_cours:
|
||||||
one: en cours
|
one: en cours
|
||||||
other: en cours
|
other: en cours
|
||||||
|
en_test:
|
||||||
|
one: en test
|
||||||
|
other: en test
|
||||||
traites:
|
traites:
|
||||||
one: traité
|
one: traité
|
||||||
other: traités
|
other: traités
|
||||||
|
@ -767,17 +770,17 @@ fr:
|
||||||
one: "%{count} dossier trouvé"
|
one: "%{count} dossier trouvé"
|
||||||
other: "%{count} dossiers trouvés"
|
other: "%{count} dossiers trouvés"
|
||||||
published:
|
published:
|
||||||
one: Publiée
|
one: publiée
|
||||||
other: Publiées
|
other: publiées
|
||||||
closed:
|
closed:
|
||||||
one: Close
|
one: terminée
|
||||||
other: Closes
|
other: terminées
|
||||||
draft:
|
draft:
|
||||||
one: Brouillon
|
one: brouillon
|
||||||
other: Brouillons
|
other: brouillons
|
||||||
deleted:
|
deleted:
|
||||||
one: Supprimée
|
one: supprimée
|
||||||
other: Supprimées
|
other: supprimées
|
||||||
procedures:
|
procedures:
|
||||||
one: Démarche
|
one: Démarche
|
||||||
other: Démarches
|
other: Démarches
|
||||||
|
|
|
@ -2,6 +2,9 @@ en:
|
||||||
instructeurs:
|
instructeurs:
|
||||||
procedures:
|
procedures:
|
||||||
index:
|
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
|
to_follow: to follow
|
||||||
followed: followed
|
followed: followed
|
||||||
processed: processed
|
processed: processed
|
||||||
|
|
|
@ -2,6 +2,9 @@ fr:
|
||||||
instructeurs:
|
instructeurs:
|
||||||
procedures:
|
procedures:
|
||||||
index:
|
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
|
to_follow: à suivre
|
||||||
followed: suivis
|
followed: suivis
|
||||||
processed: traités
|
processed: traités
|
||||||
|
|
|
@ -105,6 +105,8 @@ describe Instructeurs::ProceduresController, type: :controller do
|
||||||
|
|
||||||
context "with not draft state on multiple procedures" do
|
context "with not draft state on multiple procedures" do
|
||||||
let(:procedure2) { create(:procedure, :published, :expirable) }
|
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) }
|
let(:state) { Dossier.states.fetch(:en_construction) }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
|
@ -132,6 +134,13 @@ describe Instructeurs::ProceduresController, type: :controller do
|
||||||
state: Dossier.states.fetch(:sans_suite),
|
state: Dossier.states.fetch(:sans_suite),
|
||||||
processed_at: 8.months.ago,
|
processed_at: 8.months.ago,
|
||||||
hidden_by_user_at: 1.day.ago) # counted as expirable because even if user remove it, instructeur see it
|
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
|
subject
|
||||||
end
|
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_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_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)['à suivre']).to eq(3 + 0) }
|
||||||
it { expect(assigns(:all_dossiers_counts)['suivis']).to eq(0 + 1) }
|
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)['traités']).to eq(2 + 1 + 1 + 1) }
|
||||||
it { expect(assigns(:all_dossiers_counts)['dossiers']).to eq(5 + 3) }
|
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)['archivés']).to eq(1 + 0) }
|
||||||
it { expect(assigns(:all_dossiers_counts)['expirant']).to eq(2 + 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
|
end
|
||||||
|
|
||||||
context 'with not draft state on discarded procedure' do
|
context 'with not draft state on discarded procedure' do
|
||||||
|
|
Loading…
Add table
Reference in a new issue