From 93ceb79dd135ecb802abea684f63c69951797a80 Mon Sep 17 00:00:00 2001 From: Paul Chavard Date: Wed, 6 Mar 2019 17:06:54 +0100 Subject: [PATCH] =?UTF-8?q?An=20admin=20should=20always=20have=20access=20?= =?UTF-8?q?to=20the=20service=20of=20it=E2=80=99s=20procedures?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/new_administrateur/services_controller.rb | 8 +++++++- ...left_panel_admin_procedurescontroller_navbar.html.haml | 2 +- app/views/new_administrateur/services/index.html.haml | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/controllers/new_administrateur/services_controller.rb b/app/controllers/new_administrateur/services_controller.rb index 66d0c11da..681b07ab4 100644 --- a/app/controllers/new_administrateur/services_controller.rb +++ b/app/controllers/new_administrateur/services_controller.rb @@ -81,13 +81,19 @@ module NewAdministrateur end def services - current_administrateur.services + service_ids = current_administrateur.service_ids + service_ids << maybe_procedure&.service_id + Service.where(id: service_ids.compact.uniq) end def procedure_params params.require(:procedure).permit(:id, :service_id) end + def maybe_procedure + current_administrateur.procedures.find_by(id: params[:procedure_id]) + end + def procedure current_administrateur.procedures.find(params[:procedure_id]) end diff --git a/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_navbar.html.haml b/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_navbar.html.haml index 2ea313693..3fa249331 100644 --- a/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_navbar.html.haml +++ b/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_navbar.html.haml @@ -21,7 +21,7 @@ .procedure-list-element{ class: ('active' if active == 'Description') } Description - %a#onglet-services{ href: current_administrateur.services.present? ? url_for(services_path(procedure_id: @procedure.id)) : url_for(new_service_path(procedure_id: @procedure.id)) } + %a#onglet-services{ href: (@procedure.service.present? || current_administrateur.services.present?) ? url_for(services_path(procedure_id: @procedure.id)) : url_for(new_service_path(procedure_id: @procedure.id)) } .procedure-list-element Service - if @procedure.missing_steps.include?(:service) diff --git a/app/views/new_administrateur/services/index.html.haml b/app/views/new_administrateur/services/index.html.haml index 28ab6d9df..486fb7269 100644 --- a/app/views/new_administrateur/services/index.html.haml +++ b/app/views/new_administrateur/services/index.html.haml @@ -9,7 +9,7 @@ = form_for @procedure, url: { controller: "new_administrateur/services", action: :add_to_procedure } , html: { class: 'form' } do |f| = f.label :service_id, "La démarche #{@procedure.libelle} est affectée au service" = f.select :service_id, - current_administrateur.services.map { |s| [ s.nom, s.id ] }, + @services.map { |s| [ s.nom, s.id ] }, { prompt: 'choisir un service', selected: @procedure.service&.id }, required: true