diff --git a/app/assets/stylesheets/new_design/procedure_list.scss b/app/assets/stylesheets/new_design/procedure_list.scss new file mode 100644 index 000000000..e15577c86 --- /dev/null +++ b/app/assets/stylesheets/new_design/procedure_list.scss @@ -0,0 +1,61 @@ +@import "colors"; +@import "mixins"; + +.procedure-list { + .procedure-item { + @include vertical-padding(24px); + border-bottom: 1px solid $border-grey; + + &:last-child { + border-bottom: none; + } + } + + .procedure-logo { + margin-right: 16px; + width: 40px; + height: 40px; + border-bottom: 1px solid $border-grey; + } + + .procedure-title { + min-height: 40px; + font-size: 20px; + margin-bottom: 16px; + + a { + color: $black; + + &:hover { + color: $blue; + } + } + } + + .procedure-stats { + li { + min-height: 36px; + border-left: 1px solid $border-grey; + width: 90px; + + &:last-child { + border-right: 1px solid $border-grey; + } + + .stats-number, + .stats-legend { + text-align: center; + } + + .stats-number { + font-size: 14px; + font-weight: bold; + } + + .stats-legend { + font-size: 12px; + color: $grey; + } + } + } +} diff --git a/app/controllers/new_gestionnaire/procedures_controller.rb b/app/controllers/new_gestionnaire/procedures_controller.rb index bfffad1fa..26940b425 100644 --- a/app/controllers/new_gestionnaire/procedures_controller.rb +++ b/app/controllers/new_gestionnaire/procedures_controller.rb @@ -1,6 +1,19 @@ module NewGestionnaire class ProceduresController < GestionnaireController - before_action :ensure_ownership! + layout "new_application" + + before_action :ensure_ownership!, except: [:index] + + def index + @procedures = current_gestionnaire.procedures + + dossiers = current_gestionnaire.dossiers.state_not_brouillon + @dossiers_count_per_procedure = dossiers.group(:procedure_id).count + @dossiers_nouveaux_count_per_procedure = dossiers.state_nouveaux.group(:procedure_id).count + @dossiers_archived_count_per_procedure = dossiers.archived.group(:procedure_id).count + + @followed_dossiers_count_per_procedure = current_gestionnaire.followed_dossiers.where(procedure: @procedures).group(:procedure_id).count + end private diff --git a/app/views/new_gestionnaire/procedures/index.html.haml b/app/views/new_gestionnaire/procedures/index.html.haml new file mode 100644 index 000000000..b50e4d8a4 --- /dev/null +++ b/app/views/new_gestionnaire/procedures/index.html.haml @@ -0,0 +1,36 @@ +.container + %h1 Procédures + + %ul.procedure-list + - @procedures.each do |p| + %li.procedure-item.flex.align-start + = image_tag p.logo, class: "procedure-logo" + .procedure-details + %p.procedure-title + = link_to p.libelle, backoffice_dossiers_procedure_path(p) + + %ul.procedure-stats.flex + %li + - dossier_count = @dossiers_count_per_procedure[p.id] || 0 + .stats-number + = dossier_count + .stats-legend + = "dossier".pluralize(dossier_count) + %li + - nouveaux_count = @dossiers_nouveaux_count_per_procedure[p.id] || 0 + .stats-number + = nouveaux_count + .stats-legend + = "nouveau".pluralize(nouveaux_count) + %li + - followed_count = @followed_dossiers_count_per_procedure[p.id] || 0 + .stats-number + = followed_count + .stats-legend + = "suivi".pluralize(followed_count) + %li + - archived_count = @dossiers_archived_count_per_procedure[p.id] || 0 + .stats-number + = archived_count + .stats-legend + = "archivé".pluralize(archived_count) diff --git a/config/routes.rb b/config/routes.rb index b93f66f2b..8ce8d4502 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -238,7 +238,7 @@ Rails.application.routes.draw do end scope module: 'new_gestionnaire' do - resources :procedures, only: [] do + resources :procedures, only: [:index] do resources :dossiers, only: [] do get 'attestation' end