feat(refactor): unify dossiers header
This commit is contained in:
parent
357c684688
commit
7deedf8245
5 changed files with 81 additions and 72 deletions
|
@ -122,6 +122,16 @@ module Instructeurs
|
|||
.deleted_dossiers
|
||||
.order(:dossier_id)
|
||||
.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
|
||||
|
||||
def update_displayed_fields
|
||||
|
|
|
@ -61,4 +61,11 @@ module ProcedureHelper
|
|||
def can_manage_groupe_instructeurs?(procedure)
|
||||
procedure.routee? && current_administrateur.present? && current_administrateur.owns?(procedure)
|
||||
end
|
||||
|
||||
def can_send_groupe_message?(procedure)
|
||||
procedure.dossiers
|
||||
.state_brouillon
|
||||
.includes(:groupe_instructeur)
|
||||
.exists?(groupe_instructeur: current_instructeur.groupe_instructeurs)
|
||||
end
|
||||
end
|
||||
|
|
46
app/views/instructeurs/procedures/_header.html.haml
Normal file
46
app/views/instructeurs/procedures/_header.html.haml
Normal 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))
|
|
@ -7,35 +7,15 @@
|
|||
.procedure-logo{ style: "background-image: url(#{@procedure.logo_url})",
|
||||
role: 'img', 'aria-label': "logo de la démarche #{@procedure.libelle}" }
|
||||
|
||||
.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'
|
||||
- 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)
|
||||
= render partial: 'header', locals: { procedure: @procedure,
|
||||
statut: @statut,
|
||||
a_suivre_count: @a_suivre_count,
|
||||
suivis_count: @suivis_count,
|
||||
traites_count: @traites_count,
|
||||
tous_count: @tous_count,
|
||||
archives_count: @archives_count,
|
||||
has_en_cours_notifications: @has_en_cours_notifications,
|
||||
has_termine_notifications: @has_termine_notifications }
|
||||
|
||||
.container
|
||||
%h1.titre-dossiers Dossiers supprimés
|
||||
|
|
|
@ -7,49 +7,15 @@
|
|||
.procedure-logo{ style: "background-image: url(#{@procedure.logo_url})",
|
||||
role: 'img', 'aria-label': "logo de la démarche #{@procedure.libelle}" }
|
||||
|
||||
.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'
|
||||
- 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))
|
||||
= render partial: 'header', locals: { procedure: @procedure,
|
||||
statut: @statut,
|
||||
a_suivre_count: @a_suivre_count,
|
||||
suivis_count: @suivis_count,
|
||||
traites_count: @traites_count,
|
||||
tous_count: @tous_count,
|
||||
archives_count: @archives_count,
|
||||
has_en_cours_notifications: @has_en_cours_notifications,
|
||||
has_termine_notifications: @has_termine_notifications }
|
||||
|
||||
.procedure-actions
|
||||
= render partial: "download_dossiers", locals: { procedure: @procedure, exports: @exports, dossier_count: @tous_count + @archives_count }
|
||||
|
|
Loading…
Reference in a new issue