aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuc Donnet2018-05-02 15:32:53 +0200
committerGitHub2018-05-02 15:32:53 +0200
commit8631ff6b59439b9086f7cea2edf264f1fd305725 (patch)
tree4f6b19c0520a1f217e441126a2b62c21ab65a491
parent9047935a82ba37c21fcfd164c16a566dd3b81d2b (diff)
parent2fdcbb5a82c23bdaa7e23bd0b3108f404c1e44ea (diff)
downloadchouette-core-8631ff6b59439b9086f7cea2edf264f1fd305725.tar.bz2
Merge pull request #545 from af83/6858-workbenches-show--disallow-deletion-of-pending-referent
6858: Workbenches#show: Don't allow pending referentials to be selected
-rw-r--r--app/views/workbenches/show.html.slim5
-rw-r--r--spec/features/workbenches/workbenches_show_spec.rb21
2 files changed, 25 insertions, 1 deletions
diff --git a/app/views/workbenches/show.html.slim b/app/views/workbenches/show.html.slim
index b0276c5ce..213c9e5f2 100644
--- a/app/views/workbenches/show.html.slim
+++ b/app/views/workbenches/show.html.slim
@@ -62,7 +62,10 @@
attribute: Proc.new {|w| w.merged_at ? l(w.merged_at, format: :short) : '-'} \
) \
],
- selectable: ->(ref){ @workbench.referentials.include?(ref) },
+ selectable: ->(ref) { \
+ @workbench.referentials.include?(ref) && \
+ !ref.pending? \
+ },
cls: 'table has-filter has-search',
action: :index
diff --git a/spec/features/workbenches/workbenches_show_spec.rb b/spec/features/workbenches/workbenches_show_spec.rb
index 441f829a1..427b526cf 100644
--- a/spec/features/workbenches/workbenches_show_spec.rb
+++ b/spec/features/workbenches/workbenches_show_spec.rb
@@ -64,6 +64,27 @@ RSpec.describe 'Workbenches', type: :feature do
"Couldn't find `hidden_referential`: `#{hidden_referential.inspect}`"
end
+ it "prevents pending referentials from being selected" do
+ line = create(:line, line_referential: line_ref)
+ metadata = create(:referential_metadata, lines: [line])
+ pending_referential = create(
+ :workbench_referential,
+ workbench: workbench,
+ metadatas: [metadata],
+ organisation: @user.organisation,
+ ready: false
+ )
+
+ visit workbench_path(workbench)
+
+ expect(
+ find("input[type='checkbox'][value='#{referential.id}']")
+ ).not_to be_disabled
+ expect(
+ find("input[type='checkbox'][value='#{pending_referential.id}']")
+ ).to be_disabled
+ end
+
context 'filtering' do
let!(:another_organisation) { create :organisation }
let(:another_line) { create :line, line_referential: line_ref }