diff --git a/app/controllers/admin/procedures_controller.rb b/app/controllers/admin/procedures_controller.rb
index a3e7a74c4..448df9f3c 100644
--- a/app/controllers/admin/procedures_controller.rb
+++ b/app/controllers/admin/procedures_controller.rb
@@ -277,7 +277,7 @@ class Admin::ProceduresController < AdminController
end
def procedure_params
- editable_params = [:libelle, :description, :organisation, :direction, :lien_site_web, :cadre_juridique, :deliberation, :notice, :web_hook_url, :euro_flag, :logo, :auto_archive_on, :monavis]
+ editable_params = [:libelle, :description, :organisation, :direction, :lien_site_web, :cadre_juridique, :deliberation, :notice, :web_hook_url, :euro_flag, :logo, :auto_archive_on, :monavis_embed]
if @procedure&.locked?
params.require(:procedure).permit(*editable_params)
else
diff --git a/app/models/procedure.rb b/app/models/procedure.rb
index 14595964e..e94691871 100644
--- a/app/models/procedure.rb
+++ b/app/models/procedure.rb
@@ -74,8 +74,8 @@ class Procedure < ApplicationRecord
class MonavisValidator < ActiveModel::Validator
def validate(record)
- r = Regexp.new('\s*\s*', Regexp::MULTILINE)
- if record.monavis.present? && !r.match?(record.monavis)
+ r = Regexp.new('\s*\s*', Regexp::MULTILINE)
+ if record.monavis_embed.present? && !r.match?(record.monavis_embed)
record.errors[:base] << "Le code fourni ne correspond pas au format des codes Monavis reconnus par la plateforme."
end
end
diff --git a/app/views/admin/procedures/_monavis.html.haml b/app/views/admin/procedures/_monavis.html.haml
index 36d631868..a1f861cf1 100644
--- a/app/views/admin/procedures/_monavis.html.haml
+++ b/app/views/admin/procedures/_monavis.html.haml
@@ -12,5 +12,5 @@
%p Une fois en possession du code généré sur le site MonAvis, vous pouvez le coller dans le champ ci-dessous :
.form-group
- = f.label :monavis, "Mon avis"
- = f.text_area :monavis, rows: '6', placeholder: '', class: 'form-control'
+ = f.label :monavis_embed, "Mon avis"
+ = f.text_area :monavis_embed, rows: '6', placeholder: '', class: 'form-control'
diff --git a/app/views/users/dossiers/merci.html.haml b/app/views/users/dossiers/merci.html.haml
index 0e39a8040..941ffe36f 100644
--- a/app/views/users/dossiers/merci.html.haml
+++ b/app/views/users/dossiers/merci.html.haml
@@ -23,4 +23,4 @@
.flex.column.align-center
= link_to 'Accéder à votre dossier', dossier_path(@dossier), class: 'button large primary'
= link_to 'Déposer un autre dossier', procedure_lien(@dossier.procedure)
- != @dossier.procedure.monavis
+ != @dossier.procedure.monavis_embed
diff --git a/db/migrate/20190716141633_add_monavis_to_procedures.rb b/db/migrate/20190717132452_add_monavis_to_procedures.rb
similarity index 62%
rename from db/migrate/20190716141633_add_monavis_to_procedures.rb
rename to db/migrate/20190717132452_add_monavis_to_procedures.rb
index 0fdc98478..d97b5056f 100644
--- a/db/migrate/20190716141633_add_monavis_to_procedures.rb
+++ b/db/migrate/20190717132452_add_monavis_to_procedures.rb
@@ -1,5 +1,5 @@
class AddMonavisToProcedures < ActiveRecord::Migration[5.2]
def change
- add_column :procedures, :monavis, :text
+ add_column :procedures, :monavis_embed, :text
end
end
diff --git a/db/schema.rb b/db/schema.rb
index 5b102ddac..b38ea35e9 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 2019_07_16_141633) do
+ActiveRecord::Schema.define(version: 2019_07_17_132452) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -500,7 +500,7 @@ ActiveRecord::Schema.define(version: 2019_07_16_141633) do
t.boolean "durees_conservation_required", default: true
t.string "path"
t.string "declarative_with_state"
- t.text "monavis"
+ t.text "monavis_embed"
t.index ["declarative_with_state"], name: "index_procedures_on_declarative_with_state"
t.index ["hidden_at"], name: "index_procedures_on_hidden_at"
t.index ["parent_procedure_id"], name: "index_procedures_on_parent_procedure_id"
diff --git a/spec/controllers/admin/procedures_controller_spec.rb b/spec/controllers/admin/procedures_controller_spec.rb
index d87a8bb5f..4acaf3531 100644
--- a/spec/controllers/admin/procedures_controller_spec.rb
+++ b/spec/controllers/admin/procedures_controller_spec.rb
@@ -14,7 +14,7 @@ describe Admin::ProceduresController, type: :controller do
let(:cadre_juridique) { 'cadre juridique' }
let(:duree_conservation_dossiers_dans_ds) { 3 }
let(:duree_conservation_dossiers_hors_ds) { 6 }
- let(:monavis) { nil }
+ let(:monavis_embed) { nil }
let(:procedure_params) {
{
@@ -26,7 +26,7 @@ describe Admin::ProceduresController, type: :controller do
cadre_juridique: cadre_juridique,
duree_conservation_dossiers_dans_ds: duree_conservation_dossiers_dans_ds,
duree_conservation_dossiers_hors_ds: duree_conservation_dossiers_hors_ds,
- monavis: monavis
+ monavis_embed: monavis_embed
}
}
@@ -752,7 +752,7 @@ describe Admin::ProceduresController, type: :controller do
let!(:procedure) { create(:procedure, :with_type_de_champ, :with_two_type_de_piece_justificative, administrateur: admin) }
let(:procedure_params) {
{
- monavis: monavis
+ monavis_embed: monavis_embed
}
}
@@ -771,31 +771,51 @@ describe Admin::ProceduresController, type: :controller do
patch :update_monavis, params: { procedure_id: procedure.id, procedure: procedure_params }
procedure.reload
end
+ let(:monavis_embed) {
+ <<-MSG
+
+
+
+ MSG
+ }
context 'when all attributes are present' do
render_views
- let(:monavis) { 'code html for monavis' }
before { update_monavis }
- describe 'the monavis field is updated' do
- subject { procedure }
+ context 'when the embed code is valid' do
+ describe 'the monavis field is updated' do
+ subject { procedure }
- it { expect(subject.monavis).to eq(monavis) }
+ it { expect(subject.monavis_embed).to eq(monavis_embed) }
+ end
+
+ it { expect(flash[:notice]).to be_present }
+ it { expect(response.body).to include "MonAvis" }
end
- it { expect(flash[:notice]).to be_present }
- it { expect(response.body).to include "MonAvis" }
+ context 'when the embed code is not valid' do
+ let(:monavis_embed) { 'invalid embed code' }
+
+ describe 'the monavis field is not updated' do
+ subject { procedure }
+
+ it { expect(subject.monavis_embed).to eq(nil) }
+ end
+
+ it { expect(flash[:alert]).to be_present }
+ it { expect(response.body).to include "MonAvis" }
+ end
end
context 'when procedure is published' do
let(:procedure) { create(:procedure, :with_type_de_champ, :with_two_type_de_piece_justificative, :published, administrateur: admin) }
- let(:monavis) { 'code html for monavis' }
subject { update_monavis }
- describe 'the monavis field is updated' do
- it { expect(subject.monavis).to eq procedure_params[:monavis] }
+ describe 'the monavis field is not updated' do
+ it { expect(subject.monavis_embed).to eq monavis_embed }
end
end
end
diff --git a/spec/models/procedure_spec.rb b/spec/models/procedure_spec.rb
index 8526a0975..81f94e500 100644
--- a/spec/models/procedure_spec.rb
+++ b/spec/models/procedure_spec.rb
@@ -200,37 +200,37 @@ describe Procedure do
context 'monavis' do
context 'nil is allowed' do
- it { is_expected.to allow_value(nil).for(:monavis) }
- it { is_expected.to allow_value('').for(:monavis) }
+ it { is_expected.to allow_value(nil).for(:monavis_embed) }
+ it { is_expected.to allow_value('').for(:monavis_embed) }
end
context 'random string is not allowed' do
- let(:procedure) { build(:procedure, monavis: "plop") }
+ let(:procedure) { build(:procedure, monavis_embed: "plop") }
it { expect(procedure.valid?).to eq(false) }
end
context 'random html is not allowed' do
- let(:procedure) { build(:procedure, monavis: '') }
+ let(:procedure) { build(:procedure, monavis_embed: '') }
it { expect(procedure.valid?).to eq(false) }
end
context 'Monavis embed code with white button is allowed' do
monavis_blanc = <<-MSG
-
-
-
-MSG
- let(:procedure) { build(:procedure, monavis: monavis_blanc) }
+
+
+
+ MSG
+ let(:procedure) { build(:procedure, monavis_embed: monavis_blanc) }
it { expect(procedure.valid?).to eq(true) }
end
context 'Monavis embed code with blue button is allowed' do
- monavis_blanc = <<-MSG
-
-
-
-MSG
- let(:procedure) { build(:procedure, monavis: monavis_blanc) }
+ monavis_bleu = <<-MSG
+
+
+
+ MSG
+ let(:procedure) { build(:procedure, monavis_embed: monavis_bleu) }
it { expect(procedure.valid?).to eq(true) }
end
end