Skip to content

Commit 5521aee

Browse files
committed
Extend validation messagging to supporting orgs
1 parent 319e7c9 commit 5521aee

3 files changed

Lines changed: 15 additions & 2 deletions

File tree

app/models/concerns/edition/organisations.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,10 @@ def organisation_association_enabled?
7272
end
7373

7474
def error_labels
75-
super.merge({ "lead_organisation_ids" => "Lead organisations" })
75+
super.merge({
76+
"lead_organisation_ids" => "Lead organisations",
77+
"supporting_organisation_ids" => "Supporting organisations",
78+
})
7679
end
7780

7881
private
@@ -87,7 +90,8 @@ def no_duplication_of_organisations
8790
all_organisation_ids = edition_organisations.reject(&:marked_for_destruction?).map(&:organisation_id)
8891

8992
if all_organisation_ids.uniq.size != all_organisation_ids.size
90-
errors.add(:lead_organisation_ids, "and supporting organisations must be unique")
93+
errors.add(:lead_organisation_ids, "must be unique")
94+
errors.add(:supporting_organisation_ids, "must be unique")
9195
end
9296
end
9397

app/views/admin/editions/_organisation_fields.html.erb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
heading_size: "m",
3333
options: taggable_organisations_container(edition.edition_organisations.reject(&:lead?).map(&:organisation_id)),
3434
multiple: true,
35+
error_message: errors_for_input(edition.errors, :supporting_organisation_ids, "Supporting organisations"),
3536
} %>
3637
<% end %>
3738
<% end %>

test/unit/app/models/edition/validation_test.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ class Edition::ValidationTest < ActiveSupport::TestCase
9292
supporting_organisations: [organisation1],
9393
)
9494
assert_not edition.valid?
95+
assert edition.errors[:lead_organisation_ids].any?
96+
assert edition.errors[:supporting_organisation_ids].any?
9597
end
9698

9799
test "should be invalid when it duplicates organisations via lead and supporting on save" do
@@ -104,6 +106,8 @@ class Edition::ValidationTest < ActiveSupport::TestCase
104106
edition.lead_organisations = [organisation1]
105107
edition.supporting_organisations = [organisation1]
106108
assert_not edition.valid?
109+
assert edition.errors[:lead_organisation_ids].any?
110+
assert edition.errors[:supporting_organisation_ids].any?
107111
end
108112

109113
test "should be invalid when it duplicates organisations via edition organisations directly on create" do
@@ -115,6 +119,8 @@ class Edition::ValidationTest < ActiveSupport::TestCase
115119
build(:edition_organisation, organisation: organisation1, lead: false)],
116120
)
117121
assert_not edition.valid?
122+
assert edition.errors[:lead_organisation_ids].any?
123+
assert edition.errors[:supporting_organisation_ids].any?
118124
end
119125

120126
test "should be invalid when it duplicates organisations via edition organisations directly on save" do
@@ -126,6 +132,8 @@ class Edition::ValidationTest < ActiveSupport::TestCase
126132
)
127133
edition.edition_organisations.build(organisation: organisation1, lead: false)
128134
assert_not edition.valid?
135+
assert edition.errors[:lead_organisation_ids].any?
136+
assert edition.errors[:supporting_organisation_ids].any?
129137
end
130138

131139
test "should be invalid when it duplicates support organisations on create" do

0 commit comments

Comments
 (0)