diff --git a/app/helpers/valuators_helper.rb b/app/helpers/valuators_helper.rb new file mode 100644 index 000000000..752713ed3 --- /dev/null +++ b/app/helpers/valuators_helper.rb @@ -0,0 +1,7 @@ +module ValuatorsHelper + + def valuator_label(valuator) + truncate([valuator.name, valuator.email, valuator.description].compact.join(' - '), length: 100) + end + +end \ No newline at end of file diff --git a/app/models/valuator.rb b/app/models/valuator.rb index ab0ea6ece..c7cb6e4a8 100644 --- a/app/models/valuator.rb +++ b/app/models/valuator.rb @@ -6,4 +6,8 @@ class Valuator < ActiveRecord::Base has_many :spending_proposals, through: :valuation_assignments validates :user_id, presence: true, uniqueness: true + + def description_or_email + description.present? ? description : email + end end diff --git a/app/views/admin/spending_proposals/edit.html.erb b/app/views/admin/spending_proposals/edit.html.erb index 43ee3a5c4..59180eb16 100644 --- a/app/views/admin/spending_proposals/edit.html.erb +++ b/app/views/admin/spending_proposals/edit.html.erb @@ -32,7 +32,7 @@ <%= f.label :valuator_ids, t("admin.spending_proposals.edit.assigned_valuators") %> <%= f.collection_check_boxes :valuator_ids, @valuators, :id, :email do |b| %> - <%= b.label(title: [b.object.name, b.object.description].compact.join(' : ')) { b.check_box + b.text} %> + <%= b.label(title: valuator_label(b.object)) { b.check_box + truncate(b.object.description_or_email, length: 60) } %> <% end %>
diff --git a/spec/models/valuator_spec.rb b/spec/models/valuator_spec.rb new file mode 100644 index 000000000..326eda7dc --- /dev/null +++ b/spec/models/valuator_spec.rb @@ -0,0 +1,18 @@ +require 'rails_helper' + +describe Valuator do + + describe "#description_or_email" do + it "should return description if present" do + valuator = create(:valuator, description: "Urbanism manager") + + expect(valuator.description_or_email).to eq("Urbanism manager") + end + + it "should return email if not description present" do + valuator = create(:valuator) + + expect(valuator.description_or_email).to eq(valuator.email) + end + end +end