From c5c56ad969e34dd128333018bb65e54f13d905ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Mon, 25 Feb 2019 12:26:01 +0100 Subject: [PATCH] Use a virtual attribute to get valuation tags It was strange to set the valuation tags using `valuation_tag_list=` but then accessing the valuation tags using `tag_list_on(:valuation)`. --- app/models/budget/investment.rb | 4 ++++ app/views/admin/budget_investments/edit.html.erb | 2 +- spec/models/budget/investment_spec.rb | 8 ++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/models/budget/investment.rb b/app/models/budget/investment.rb index a040e48e9..97c187966 100644 --- a/app/models/budget/investment.rb +++ b/app/models/budget/investment.rb @@ -349,6 +349,10 @@ class Budget self.valuator_groups.collect(&:name).compact.join(', ').presence end + def valuation_tag_list + tag_list_on(:valuation) + end + def valuation_tag_list=(tags) set_tag_list_on(:valuation, tags) end diff --git a/app/views/admin/budget_investments/edit.html.erb b/app/views/admin/budget_investments/edit.html.erb index fc56f88df..5c98f633b 100644 --- a/app/views/admin/budget_investments/edit.html.erb +++ b/app/views/admin/budget_investments/edit.html.erb @@ -57,7 +57,7 @@ <% end %> <%= f.text_field :valuation_tag_list, - value: @investment.tag_list_on(:valuation).sort.join(','), + value: @investment.valuation_tag_list.sort.join(','), label: false, placeholder: t("admin.budget_investments.edit.tags_placeholder"), class: 'js-tag-list' %> diff --git a/spec/models/budget/investment_spec.rb b/spec/models/budget/investment_spec.rb index c012ff5ca..7c2b0a980 100644 --- a/spec/models/budget/investment_spec.rb +++ b/spec/models/budget/investment_spec.rb @@ -642,6 +642,14 @@ describe Budget::Investment do results = described_class.search("Latin") expect(results.first).to eq(investment) end + + it "gets and sets valuation tags through virtual attributes" do + investment = create(:budget_investment) + + investment.valuation_tag_list = %w[Code Test Refactor] + + expect(investment.valuation_tag_list).to match_array(%w[Code Test Refactor]) + end end end