Fix valuation tags being overwritten

When params[:budget_investment][:valuation_tag_list] was not present,
which is the case when updating an investment using the "mark as visible
to valuators" checkbox, we were removing all valuation tags.

Using a virtual attribute to assign the tags only if the parameter is
present simplifies the code in the controller and avoids the issue.
This commit is contained in:
Javi Martín
2019-02-25 12:18:24 +01:00
parent 9fd3c4fb1c
commit 4980819528
3 changed files with 20 additions and 6 deletions

View File

@@ -38,7 +38,6 @@ class Admin::BudgetInvestmentsController < Admin::BaseController
end
def update
set_valuation_tags
if @investment.update(budget_investment_params)
redirect_to admin_budget_budget_investment_path(@budget,
@investment,
@@ -118,11 +117,6 @@ class Admin::BudgetInvestmentsController < Admin::BaseController
@ballot = @budget.balloting? ? query.first_or_create : query.first_or_initialize
end
def set_valuation_tags
@investment.set_tag_list_on(:valuation, budget_investment_params[:valuation_tag_list])
params[:budget_investment] = params[:budget_investment].except(:valuation_tag_list)
end
def parse_valuation_filters
if params[:valuator_or_group_id]
model, id = params[:valuator_or_group_id].split("_")