Procedure: add legal reference

This commit is contained in:
simon lehericey 2018-05-02 15:41:43 +02:00
parent 25f0b6258a
commit a96889310b
10 changed files with 33 additions and 2 deletions

View file

@ -224,7 +224,7 @@ class Admin::ProceduresController < AdminController
end end
def procedure_params def procedure_params
editable_params = [:libelle, :description, :organisation, :direction, :lien_site_web, :notice, :web_hook_url, :euro_flag, :logo, :auto_archive_on] editable_params = [:libelle, :description, :organisation, :direction, :lien_site_web, :cadre_juridique, :notice, :web_hook_url, :euro_flag, :logo, :auto_archive_on]
if @procedure&.locked? if @procedure&.locked?
params.require(:procedure).permit(*editable_params) params.require(:procedure).permit(*editable_params)
else else

View file

@ -45,6 +45,7 @@ class Procedure < ApplicationRecord
validates :libelle, presence: true, allow_blank: false, allow_nil: false validates :libelle, presence: true, allow_blank: false, allow_nil: false
validates :description, presence: true, allow_blank: false, allow_nil: false validates :description, presence: true, allow_blank: false, allow_nil: false
validates :cadre_juridique, presence: true, allow_blank: false, allow_nil: false
include AASM include AASM

View file

@ -21,6 +21,10 @@
Un lien de rappel HTTP (aussi appelé webhook) est utilisé pour notifier un service tiers du changement de l'état dun dossier sur demarches-simplifiees.fr. À chaque changement détat d'un dossier, notre site va effectuer une requête sur le lien renseigné avec en paramètres : le nouvel état du dossier, lidentifiant de la procédure, l'identifiant dossier et la date du changement. Vous pourrez alors utiliser notre API pour récupérer les nouvelles informations du dossier concerné. Un lien de rappel HTTP (aussi appelé webhook) est utilisé pour notifier un service tiers du changement de l'état dun dossier sur demarches-simplifiees.fr. À chaque changement détat d'un dossier, notre site va effectuer une requête sur le lien renseigné avec en paramètres : le nouvel état du dossier, lidentifiant de la procédure, l'identifiant dossier et la date du changement. Vous pourrez alors utiliser notre API pour récupérer les nouvelles informations du dossier concerné.
= f.text_field :web_hook_url, class: 'form-control', placeholder: 'https://callback.exemple.fr/' = f.text_field :web_hook_url, class: 'form-control', placeholder: 'https://callback.exemple.fr/'
.form-group
%h4 Cadre juridique : indiquez la référence ou l'URL du texte juridique ou chargez la délibération qui justifie cette procédure *
= f.text_field :cadre_juridique, class: 'form-control', placeholder: 'https://www.legifrance.gouv.fr/'
.form-group .form-group
%h4 Notice explicative de la procédure %h4 Notice explicative de la procédure
- notice = @procedure.notice - notice = @procedure.notice

View file

@ -3,3 +3,17 @@ fr:
attributes: attributes:
procedure: procedure:
organisation: Organisme organisation: Organisme
errors:
models:
procedure:
attributes:
libelle:
blank: Attribut manquant
description:
blank: Attribut manquant
lien_demarche:
blank: Attribut manquant
organisation:
blank: Attribut manquant
'cadre_juridique':
blank: Attribut manquant

View file

@ -0,0 +1,5 @@
class AddCadreJuridiqueToProcedure < ActiveRecord::Migration[5.2]
def change
add_column :procedures, :cadre_juridique, :string
end
end

View file

@ -481,6 +481,7 @@ ActiveRecord::Schema.define(version: 2018_05_30_095508) do
t.bigint "service_id" t.bigint "service_id"
t.integer "duree_conservation_dossiers_dans_ds" t.integer "duree_conservation_dossiers_dans_ds"
t.integer "duree_conservation_dossiers_hors_ds" t.integer "duree_conservation_dossiers_hors_ds"
t.string "cadre_juridique"
t.index ["hidden_at"], name: "index_procedures_on_hidden_at" t.index ["hidden_at"], name: "index_procedures_on_hidden_at"
t.index ["parent_procedure_id"], name: "index_procedures_on_parent_procedure_id" t.index ["parent_procedure_id"], name: "index_procedures_on_parent_procedure_id"
t.index ["service_id"], name: "index_procedures_on_service_id" t.index ["service_id"], name: "index_procedures_on_service_id"

View file

@ -15,6 +15,7 @@ describe Admin::ProceduresController, type: :controller do
let(:quartiers_prioritaires) { '0' } let(:quartiers_prioritaires) { '0' }
let(:cadastre) { '0' } let(:cadastre) { '0' }
let(:cerfa_flag) { true } let(:cerfa_flag) { true }
let(:cadre_juridique) { 'cadre juridique' }
let(:procedure_params) { let(:procedure_params) {
{ {
@ -24,6 +25,7 @@ describe Admin::ProceduresController, type: :controller do
direction: direction, direction: direction,
lien_demarche: lien_demarche, lien_demarche: lien_demarche,
cerfa_flag: cerfa_flag, cerfa_flag: cerfa_flag,
cadre_juridique: cadre_juridique,
module_api_carto_attributes: { module_api_carto_attributes: {
use_api_carto: use_api_carto, use_api_carto: use_api_carto,
quartiers_prioritaires: quartiers_prioritaires, quartiers_prioritaires: quartiers_prioritaires,

View file

@ -6,6 +6,7 @@ FactoryBot.define do
description "Demande de subvention à l'intention des associations" description "Demande de subvention à l'intention des associations"
organisation "Orga DINSIC" organisation "Orga DINSIC"
direction "direction DINSIC" direction "direction DINSIC"
cadre_juridique "un cadre juridique important"
published_at nil published_at nil
cerfa_flag false cerfa_flag false
administrateur { create(:administrateur) } administrateur { create(:administrateur) }

View file

@ -14,6 +14,7 @@ feature 'As an administrateur I wanna clone a procedure', js: true do
page.find_by_id('from-scratch').click page.find_by_id('from-scratch').click
fill_in 'procedure_libelle', with: 'libelle de la procedure' fill_in 'procedure_libelle', with: 'libelle de la procedure'
page.execute_script("$('#procedure_description').val('description de la procedure')") page.execute_script("$('#procedure_description').val('description de la procedure')")
fill_in 'procedure_cadre_juridique', with: 'cadre juridique'
page.find_by_id('save-procedure').click page.find_by_id('save-procedure').click
end end

View file

@ -32,13 +32,14 @@ feature 'As an administrateur I wanna create a new procedure', js: true do
expect(page).to have_current_path(new_admin_procedure_path) expect(page).to have_current_path(new_admin_procedure_path)
end end
scenario 'Finding save button for new procedure, libelle and description required' do scenario 'Finding save button for new procedure, libelle, description and cadre_juridique required' do
page.find_by_id('new-procedure').click page.find_by_id('new-procedure').click
page.find_by_id('from-scratch').click page.find_by_id('from-scratch').click
page.find_by_id('save-procedure').click page.find_by_id('save-procedure').click
page.find_by_id('flash_message').visible? page.find_by_id('flash_message').visible?
fill_in 'procedure_libelle', with: 'libelle de la procedure' fill_in 'procedure_libelle', with: 'libelle de la procedure'
page.execute_script("$('#procedure_description').val('description de la procedure')") page.execute_script("$('#procedure_description').val('description de la procedure')")
fill_in 'procedure_cadre_juridique', with: 'cadre juridique'
page.find_by_id('save-procedure').click page.find_by_id('save-procedure').click
expect(page).to have_current_path(admin_procedure_types_de_champ_path(Procedure.first.id.to_s)) expect(page).to have_current_path(admin_procedure_types_de_champ_path(Procedure.first.id.to_s))
end end
@ -50,6 +51,7 @@ feature 'As an administrateur I wanna create a new procedure', js: true do
page.find_by_id('from-scratch').click page.find_by_id('from-scratch').click
fill_in 'procedure_libelle', with: 'libelle de la procedure' fill_in 'procedure_libelle', with: 'libelle de la procedure'
page.execute_script("$('#procedure_description').val('description de la procedure')") page.execute_script("$('#procedure_description').val('description de la procedure')")
fill_in 'procedure_cadre_juridique', with: 'cadre juridique'
page.find_by_id('save-procedure').click page.find_by_id('save-procedure').click
procedure = Procedure.last procedure = Procedure.last