feat(refactor): unify dossiers header

This commit is contained in:
Paul Chavard 2021-09-23 15:03:20 +02:00
parent 357c684688
commit 7deedf8245
5 changed files with 81 additions and 72 deletions

View file

@ -122,6 +122,16 @@ module Instructeurs
.deleted_dossiers .deleted_dossiers
.order(:dossier_id) .order(:dossier_id)
.page params[:page] .page params[:page]
@a_suivre_count, @suivis_count, @traites_count, @tous_count, @archives_count = current_instructeur
.dossiers_count_summary(groupe_instructeur_ids)
.fetch_values('a_suivre', 'suivis', 'traites', 'tous', 'archives')
notifications = current_instructeur.notifications_for_groupe_instructeurs(groupe_instructeur_ids)
@has_en_cours_notifications = notifications[:en_cours].present?
@has_termine_notifications = notifications[:termines].present?
@statut = 'supprime'
end end
def update_displayed_fields def update_displayed_fields

View file

@ -61,4 +61,11 @@ module ProcedureHelper
def can_manage_groupe_instructeurs?(procedure) def can_manage_groupe_instructeurs?(procedure)
procedure.routee? && current_administrateur.present? && current_administrateur.owns?(procedure) procedure.routee? && current_administrateur.present? && current_administrateur.owns?(procedure)
end end
def can_send_groupe_message?(procedure)
procedure.dossiers
.state_brouillon
.includes(:groupe_instructeur)
.exists?(groupe_instructeur: current_instructeur.groupe_instructeurs)
end
end end

View file

@ -0,0 +1,46 @@
.procedure-header
%h1= procedure_libelle procedure
= link_to 'gestion des notifications', email_notifications_instructeur_procedure_path(procedure), class: 'header-link'
|
= link_to 'statistiques', stats_instructeur_procedure_path(procedure), class: 'header-link'
- if procedure.instructeurs_self_management?
|
- if can_manage_groupe_instructeurs?(procedure)
= link_to 'instructeurs', admin_procedure_groupe_instructeurs_path(procedure), class: 'header-link'
- elsif procedure.routee?
= link_to 'instructeurs', instructeur_groupes_path(procedure), class: 'header-link'
- else
= link_to 'instructeurs', instructeur_groupe_path(procedure, procedure.defaut_groupe_instructeur), class: 'header-link'
- if can_send_groupe_message?(procedure)
|
= link_to 'contacter les usagers (brouillon)', email_usagers_instructeur_procedure_path(procedure), class: 'header-link'
%ul.tabs
= tab_item('à suivre',
instructeur_procedure_path(procedure, statut: 'a-suivre'),
active: statut == 'a-suivre',
badge: number_with_html_delimiter(a_suivre_count))
= tab_item(t('pluralize.followed', count: suivis_count),
instructeur_procedure_path(procedure, statut: 'suivis'),
active: statut == 'suivis',
badge: number_with_html_delimiter(suivis_count),
notification: has_en_cours_notifications)
= tab_item(t('pluralize.processed', count: traites_count),
instructeur_procedure_path(procedure, statut: 'traites'),
active: statut == 'traites',
badge: number_with_html_delimiter(traites_count),
notification: has_termine_notifications)
= tab_item('au total',
instructeur_procedure_path(procedure, statut: 'tous'),
active: statut == 'tous',
badge: number_with_html_delimiter(tous_count))
= tab_item(t('pluralize.archived', count: archives_count),
instructeur_procedure_path(procedure, statut: 'archives'),
active: statut == 'archives',
badge: number_with_html_delimiter(archives_count))

View file

@ -7,35 +7,15 @@
.procedure-logo{ style: "background-image: url(#{@procedure.logo_url})", .procedure-logo{ style: "background-image: url(#{@procedure.logo_url})",
role: 'img', 'aria-label': "logo de la démarche #{@procedure.libelle}" } role: 'img', 'aria-label': "logo de la démarche #{@procedure.libelle}" }
.procedure-header = render partial: 'header', locals: { procedure: @procedure,
%h1= procedure_libelle @procedure statut: @statut,
= link_to 'gestion des notifications', email_notifications_instructeur_procedure_path(@procedure), class: 'header-link' a_suivre_count: @a_suivre_count,
| suivis_count: @suivis_count,
= link_to 'statistiques', stats_instructeur_procedure_path(@procedure), class: 'header-link' traites_count: @traites_count,
tous_count: @tous_count,
- if @procedure.instructeurs_self_management? archives_count: @archives_count,
| has_en_cours_notifications: @has_en_cours_notifications,
- if can_manage_groupe_instructeurs?(@procedure) has_termine_notifications: @has_termine_notifications }
= link_to 'instructeurs', admin_procedure_groupe_instructeurs_path(@procedure), class: 'header-link'
- else
= link_to 'instructeurs', instructeur_groupes_path(@procedure), class: 'header-link'
%ul.tabs
= tab_item('à suivre',
instructeur_procedure_path(@procedure, statut: 'a-suivre'))
= tab_item(t('pluralize.followed', count: 1),
instructeur_procedure_path(@procedure, statut: 'suivis'),
active: @statut == 'suivis')
= tab_item(t('pluralize.processed', count: 1),
instructeur_procedure_path(@procedure, statut: 'traites'))
= tab_item('tous les dossiers',
instructeur_procedure_path(@procedure, statut: 'tous'))
= tab_item(t('pluralize.archived', count: 1),
instructeur_procedure_path(@procedure, statut: 'archives'),
active: true)
.container .container
%h1.titre-dossiers Dossiers supprimés %h1.titre-dossiers Dossiers supprimés

View file

@ -7,49 +7,15 @@
.procedure-logo{ style: "background-image: url(#{@procedure.logo_url})", .procedure-logo{ style: "background-image: url(#{@procedure.logo_url})",
role: 'img', 'aria-label': "logo de la démarche #{@procedure.libelle}" } role: 'img', 'aria-label': "logo de la démarche #{@procedure.libelle}" }
.procedure-header = render partial: 'header', locals: { procedure: @procedure,
%h1= procedure_libelle @procedure statut: @statut,
= link_to 'gestion des notifications', email_notifications_instructeur_procedure_path(@procedure), class: 'header-link' a_suivre_count: @a_suivre_count,
| suivis_count: @suivis_count,
= link_to 'statistiques', stats_instructeur_procedure_path(@procedure), class: 'header-link' traites_count: @traites_count,
tous_count: @tous_count,
- if @procedure.instructeurs_self_management? archives_count: @archives_count,
| has_en_cours_notifications: @has_en_cours_notifications,
- if can_manage_groupe_instructeurs?(@procedure) has_termine_notifications: @has_termine_notifications }
= link_to 'instructeurs', admin_procedure_groupe_instructeurs_path(@procedure), class: 'header-link'
- else
= link_to 'instructeurs', instructeur_groupes_path(@procedure), class: 'header-link'
- if @procedure.dossiers.state_brouillon.where(groupe_instructeur: current_instructeur.groupe_instructeur_ids).includes(:groupe_instructeur).present?
|
= link_to 'contacter les usagers (brouillon)', email_usagers_instructeur_procedure_path(@procedure), class: 'header-link'
%ul.tabs
= tab_item('à suivre',
instructeur_procedure_path(@procedure, statut: 'a-suivre'),
active: @statut == 'a-suivre',
badge: number_with_html_delimiter(@a_suivre_count))
= tab_item(t('pluralize.followed', count: @suivis_count),
instructeur_procedure_path(@procedure, statut: 'suivis'),
active: @statut == 'suivis',
badge: number_with_html_delimiter(@suivis_count),
notification: @has_en_cours_notifications)
= tab_item(t('pluralize.processed', count: @traites_count),
instructeur_procedure_path(@procedure, statut: 'traites'),
active: @statut == 'traites',
badge: number_with_html_delimiter(@traites_count),
notification: @has_termine_notifications)
= tab_item('au total',
instructeur_procedure_path(@procedure, statut: 'tous'),
active: @statut == 'tous',
badge: number_with_html_delimiter(@tous_count))
= tab_item(t('pluralize.archived', count: @archives_count),
instructeur_procedure_path(@procedure, statut: 'archives'),
active: @statut == 'archives',
badge: number_with_html_delimiter(@archives_count))
.procedure-actions .procedure-actions
= render partial: "download_dossiers", locals: { procedure: @procedure, exports: @exports, dossier_count: @tous_count + @archives_count } = render partial: "download_dossiers", locals: { procedure: @procedure, exports: @exports, dossier_count: @tous_count + @archives_count }