From 7f3b38cfeea5395443d8adf3e6b346e6c0754010 Mon Sep 17 00:00:00 2001 From: kara Diaby Date: Tue, 7 Jul 2020 14:53:06 +0200 Subject: [PATCH] Merge admin dashboard to new design for procedure details --- app/assets/stylesheets/new_design/badges.scss | 4 + .../stylesheets/new_design/buttons.scss | 11 ++ app/assets/stylesheets/new_design/card.scss | 43 ++++++ .../procedures_controller.rb | 4 + .../procedures/monavis.html.haml | 2 +- .../procedures/show.html.haml | 136 ++++++++++++++++++ config/routes.rb | 5 +- spec/features/admin/procedure_cloning_spec.rb | 1 + .../features/admin/procedure_creation_spec.rb | 3 +- spec/features/admin/procedure_locked_spec.rb | 2 +- spec/features/admin/procedure_publish_spec.rb | 3 + spec/features/admin/procedure_update_spec.rb | 6 +- spec/features/routing/full_scenario_spec.rb | 3 +- 13 files changed, 214 insertions(+), 9 deletions(-) create mode 100644 app/views/new_administrateur/procedures/show.html.haml diff --git a/app/assets/stylesheets/new_design/badges.scss b/app/assets/stylesheets/new_design/badges.scss index 854929d48..26bb9ce4e 100644 --- a/app/assets/stylesheets/new_design/badges.scss +++ b/app/assets/stylesheets/new_design/badges.scss @@ -11,6 +11,10 @@ background-color: rgba(0, 0, 0, 0.08); vertical-align: top; + &.baseline { + vertical-align: baseline; + } + &.warning { background-color: $orange; color: #FFFFFF; diff --git a/app/assets/stylesheets/new_design/buttons.scss b/app/assets/stylesheets/new_design/buttons.scss index f7bfe4ea1..90b633bfc 100644 --- a/app/assets/stylesheets/new_design/buttons.scss +++ b/app/assets/stylesheets/new_design/buttons.scss @@ -317,3 +317,14 @@ .link { color: $blue; } + +.card-admin-action-btn { + width: 90px; + height: 36px; + border-radius: 30px; + border: solid 1px #BBBBBB; + background: #FFFFFF; + cursor: pointer; + padding-left: 10px; + padding-right: 10px; +} diff --git a/app/assets/stylesheets/new_design/card.scss b/app/assets/stylesheets/new_design/card.scss index 5506635af..7a09d831b 100644 --- a/app/assets/stylesheets/new_design/card.scss +++ b/app/assets/stylesheets/new_design/card.scss @@ -62,3 +62,46 @@ margin-bottom: $default-spacer; } } + +.card-admin-list { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(236px, 1fr)); + grid-gap: 20px; + margin: auto; + margin-bottom: 20px; +} + +.card-admin { + padding-top: 10px; + padding-bottom: 10px; + width: 236px; + height: 200px; + border-radius: 4px; + border: solid 1px $border-grey; + text-align: center; + margin: auto; + display: flex; + flex-direction: column; + + .card-admin-status-accept { + color: #50AA75; + } + + .card-admin-status-todo { + color: #246AC5; + } + + .card-admin-title { + font-weight: bold; + font-size: 18px; + margin-bottom: $default-spacer; + } + + .card-admin-subtitle { + font-size: 14px; + } + + .card-admin-action { + margin-top: auto; + } +} diff --git a/app/controllers/new_administrateur/procedures_controller.rb b/app/controllers/new_administrateur/procedures_controller.rb index a27895847..997ab5af0 100644 --- a/app/controllers/new_administrateur/procedures_controller.rb +++ b/app/controllers/new_administrateur/procedures_controller.rb @@ -12,6 +12,10 @@ module NewAdministrateur @procedure ||= Procedure.new(for_individual: true) end + def show + @procedure = current_administrateur.procedures.find(params[:id]) + end + def edit end diff --git a/app/views/new_administrateur/procedures/monavis.html.haml b/app/views/new_administrateur/procedures/monavis.html.haml index c10497e5d..db68638c6 100644 --- a/app/views/new_administrateur/procedures/monavis.html.haml +++ b/app/views/new_administrateur/procedures/monavis.html.haml @@ -1,7 +1,7 @@ = render partial: 'new_administrateur/breadcrumbs', locals: { steps: [link_to('Démarches', admin_procedures_path), link_to(@procedure.libelle, admin_procedure_path(@procedure)), - link_to('MonAvis', admin_procedures_path)] } + 'MonAvis'] } .container %h1.page-title diff --git a/app/views/new_administrateur/procedures/show.html.haml b/app/views/new_administrateur/procedures/show.html.haml new file mode 100644 index 000000000..7ffb73c55 --- /dev/null +++ b/app/views/new_administrateur/procedures/show.html.haml @@ -0,0 +1,136 @@ += render partial: 'new_administrateur/breadcrumbs', + locals: { steps: [link_to('Démarches', admin_procedures_path), + "#{@procedure.libelle} (crée le #{@procedure.created_at.strftime('%d/%m/%Y')})"] } + +.container{ style: "text-align:right; margin-bottom: 20px" } + = button_to 'Publier la démarche', admin_procedure_publication_path(@procedure), method: :get, class: 'button primary',id: 'publish-procedure-link', disabled: @procedure.publiee? ? true : false + +.container + %h2.explication-libelle{ style: "font-weight: bold; font-size: 20px; margin-bottom: 20px;" } Indispensable avant publication + .card-admin-list + .card-admin + %div + %span.icon.accept + %p.card-admin-status-accept Validé + %div + %p.card-admin-title Présentation + %p.card-admin-subtitle Logo, nom, description + .card-admin-action + = button_to 'Modifier', edit_admin_procedure_path(@procedure), method: :get, class: 'card-admin-action-btn', id: "presentation" + + - if !@procedure.locked? + .card-admin + %div + %span.icon.clock + %p.card-admin-status-todo À faire + %div + %p.card-admin-title Formulaire + %p.card-admin-subtitle Champs à remplir par les usagers + .card-admin-action + = button_to 'Modifier', champs_admin_procedure_path(@procedure), method: :get, class: 'card-admin-action-btn' + + .card-admin + - if @procedure.service_id.present? + %div + %span.icon.accept + %p.card-admin-status-accept Validé + - else + %div + %span.icon.clock + %p.card-admin-status-todo À faire + %div + %p.card-admin-title Service + %p.card-admin-subtitle Choix du service de la démarche + .card-admin-action + = button_to 'Modifier', new_admin_service_path, params: { procedure_id: @procedure.id }, method: :get, class: 'card-admin-action-btn' + + .card-admin + %div + %span.icon.accept + %p.card-admin-status-accept Validé + %div + %p.card-admin-title + Administrateurs + %span.badge.baseline + = @procedure.administrateurs.count + %p.card-admin-subtitle Gestion de la démarche + .card-admin-action + = button_to 'Modifier', admin_procedure_administrateurs_path(@procedure), method: :get, class: 'card-admin-action-btn', id: "administrateurs" + + .card-admin + - if @procedure.instructeurs.count > 1 + %div + %span.icon.accept + %p.card-admin-status-accept Validé + - else + %div + %span.icon.clock + %p.card-admin-status-todo À faire + %div + %p.card-admin-title + = feature_enabled?(:administrateur_routage) ? "Groupe Instructeurs" : "Instructeurs" + %span.badge.baseline + = @procedure.instructeurs.count + %p.card-admin-subtitle Suivi des dossiers + .card-admin-action + - if feature_enabled?(:administrateur_routage) + = button_to 'Modifier', admin_procedure_groupe_instructeurs_path(@procedure), method: :get, class: 'card-admin-action-btn', id: "groupe-instructeurs" + - else + = button_to 'Modifier', admin_procedure_groupe_instructeur_path(@procedure, @procedure.defaut_groupe_instructeur), method: :get, class: 'card-admin-action-btn', id: "instructeurs" + + %h2.explication-libelle{ style: "font-weight: bold; font-size: 20px; margin-bottom: 20px;" } Pour aller plus loin + .card-admin-list + .card-admin + - if @procedure.attestation_template.present? + %div + %span.icon.accept + %p.card-admin-status-accept Activée + - else + %div + %span.icon.clock + %p.card-admin-status-todo À activer + %div + %p.card-admin-title Attestation + %p.card-admin-subtitle Délivrance automatique pour les dossiers acceptés + .card-admin-action + = button_to 'Modifier', edit_admin_procedure_attestation_template_path(@procedure), method: :get, class: 'card-admin-action-btn' + + .card-admin + %div + %span.icon.clock + %p.card-admin-status-todo À configurer + %div + %p.card-admin-title Configuration des emails + %p.card-admin-subtitle Notifications automatiques + .card-admin-action + = button_to 'Modifier', admin_procedure_mail_templates_path(@procedure), method: :get, class: 'card-admin-action-btn' + + .card-admin + - if @procedure.api_entreprise_token.present? + %div + %span.icon.accept + %p.card-admin-status-accept Validé + - else + %div + %span.icon.clock + %p.card-admin-status-todo À configurer + %div + %p.card-admin-title Jeton + %p.card-admin-subtitle Configurer le jeton API entreprise + .card-admin-action + = button_to 'Modifier', jeton_admin_procedure_path(@procedure), method: :get, class: 'card-admin-action-btn' + + .card-admin + - if @procedure.monavis_embed.present? + %div + %span.icon.accept + %p.card-admin-status-accept Validé + - else + %div + %span.icon.clock + %p.card-admin-status-todo À configurer + %div + %p.card-admin-title MonAvis + %p.card-admin-subtitle Avis des usagers sur votre démarche + .card-admin-action + = button_to 'Modifier', monavis_admin_procedure_path(@procedure), method: :get, class: 'card-admin-action-btn' diff --git a/config/routes.rb b/config/routes.rb index 71827ae76..98a1c5915 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -176,8 +176,9 @@ Rails.application.routes.draw do patch 'activate' => '/administrateurs/activate#create' get 'procedures/archived' => 'procedures#archived' get 'procedures/draft' => 'procedures#draft' + get 'procedures/:id/publication' => 'procedures#show', as: :procedure_publication - resources :procedures, only: [:index, :show, :destroy] do + resources :procedures, only: [:index, :destroy] do collection do get 'new_from_existing' => 'procedures#new_from_existing', as: :new_from_existing end @@ -370,7 +371,7 @@ Rails.application.routes.draw do # namespace :admin, module: 'new_administrateur' do - resources :procedures, except: [:index, :show, :destroy] do + resources :procedures, except: [:index, :destroy] do member do get 'apercu' get 'champs' diff --git a/spec/features/admin/procedure_cloning_spec.rb b/spec/features/admin/procedure_cloning_spec.rb index 6cfc649fa..8264321a9 100644 --- a/spec/features/admin/procedure_cloning_spec.rb +++ b/spec/features/admin/procedure_cloning_spec.rb @@ -24,6 +24,7 @@ feature 'As an administrateur I wanna clone a procedure', js: true do click_on Procedure.last.libelle expect(page).to have_current_path(admin_procedure_path(Procedure.last)) + find('#publish-procedure-link').click find('#publish-procedure').click within '#publish-modal' do diff --git a/spec/features/admin/procedure_creation_spec.rb b/spec/features/admin/procedure_creation_spec.rb index 2850d48bf..815e89a1c 100644 --- a/spec/features/admin/procedure_creation_spec.rb +++ b/spec/features/admin/procedure_creation_spec.rb @@ -77,6 +77,7 @@ feature 'As an administrateur I wanna create a new procedure', js: true do expect(page).to have_selector('#champ-1-libelle') click_on Procedure.last.libelle + find('#publish-procedure-link').click preview_window = window_opened_by { click_on 'onglet-preview' } within_window(preview_window) do @@ -95,7 +96,7 @@ feature 'As an administrateur I wanna create a new procedure', js: true do click_on Procedure.last.libelle expect(page).to have_current_path(admin_procedure_path(Procedure.last)) - + find('#publish-procedure-link').click expect(page).to have_content('en test') # Only check the path even though the link is the complete URL # (Capybara runs the app on an arbitrary host/port.) diff --git a/spec/features/admin/procedure_locked_spec.rb b/spec/features/admin/procedure_locked_spec.rb index a358e8fc1..1e18c114d 100644 --- a/spec/features/admin/procedure_locked_spec.rb +++ b/spec/features/admin/procedure_locked_spec.rb @@ -3,7 +3,7 @@ feature 'procedure locked' do before do login_as administrateur.user, scope: :user - visit admin_procedure_path(procedure) + visit admin_procedure_publication_path(procedure) end context 'when procedure is not published' do diff --git a/spec/features/admin/procedure_publish_spec.rb b/spec/features/admin/procedure_publish_spec.rb index b3327ae29..0ea7f67fd 100644 --- a/spec/features/admin/procedure_publish_spec.rb +++ b/spec/features/admin/procedure_publish_spec.rb @@ -22,6 +22,7 @@ feature 'Publication de démarches', js: true do scenario 'un administrateur peut la publier' do visit admin_procedures_draft_path click_on procedure.libelle + find('#publish-procedure-link').click within "#procedure_show" do click_on "Publier" end @@ -51,6 +52,7 @@ feature 'Publication de démarches', js: true do scenario 'un administrateur peut la publier' do visit admin_procedures_archived_path click_on procedure.libelle + find('#publish-procedure-link').click within "#procedure_show" do click_on "Réactiver" end @@ -80,6 +82,7 @@ feature 'Publication de démarches', js: true do scenario 'un administrateur peut la publier' do visit admin_procedures_archived_path click_on procedure.libelle + find('#publish-procedure-link').click within "#procedure_show" do click_on "Réactiver" end diff --git a/spec/features/admin/procedure_update_spec.rb b/spec/features/admin/procedure_update_spec.rb index 9a8c98f79..24adb1f02 100644 --- a/spec/features/admin/procedure_update_spec.rb +++ b/spec/features/admin/procedure_update_spec.rb @@ -27,7 +27,7 @@ feature 'Administrateurs can edit procedures', js: true do scenario 'the administrator can edit the libelle' do visit admin_procedures_draft_path click_on procedure.libelle - click_on 'Description' + find('#presentation').click expect(page).to have_field('procedure_libelle', with: procedure.libelle) @@ -46,7 +46,7 @@ feature 'Administrateurs can edit procedures', js: true do scenario 'the administrator can edit the libellé, but can‘t change the path' do visit root_path click_on procedure.libelle - click_on 'Description' + find('#presentation').click expect(page).to have_field('procedure_libelle', with: procedure.libelle) expect(page).not_to have_field('procedure_path') @@ -62,7 +62,7 @@ feature 'Administrateurs can edit procedures', js: true do scenario 'the administrator can add another administrator' do another_administrateur = create(:administrateur) visit admin_procedure_path(procedure) - click_on 'Administrateurs' + find('#administrateurs').click fill_in('administrateur_email', with: another_administrateur.email) diff --git a/spec/features/routing/full_scenario_spec.rb b/spec/features/routing/full_scenario_spec.rb index 1f5a6213a..fb0bbcc9d 100644 --- a/spec/features/routing/full_scenario_spec.rb +++ b/spec/features/routing/full_scenario_spec.rb @@ -14,7 +14,7 @@ feature 'The routing', js: true do login_as administrateur.user, scope: :user visit admin_procedure_path(procedure.id) - click_on "Groupe d'instructeurs" + find('#groupe-instructeurs').click # rename routing criteria to spécialité fill_in 'Libellé du routage', with: 'spécialité' @@ -173,6 +173,7 @@ feature 'The routing', js: true do def publish_procedure(procedure) click_on procedure.libelle + find('#publish-procedure-link').click find('#publish-procedure').click within '#publish-modal' do fill_in 'lien_site_web', with: 'http://some.website'