Note that in the budgets wizard test we now create district with no associated geozone, so the text "all city" will appear in the districts table too, meaning we can't use `within "section", text: "All city" do` anymore since it would result in an ambiguous match. Co-Authored-By: Julian Herrero <microweb10@gmail.com> Co-Authored-By: Javi Martín <javim@elretirao.net>
67 lines
1.6 KiB
Ruby
67 lines
1.6 KiB
Ruby
module Admin::BudgetHeadingsActions
|
|
extend ActiveSupport::Concern
|
|
|
|
included do
|
|
include Translatable
|
|
include FeatureFlags
|
|
feature_flag :budgets
|
|
|
|
before_action :load_budget
|
|
before_action :load_group
|
|
before_action :load_heading, only: [:edit, :update, :destroy]
|
|
end
|
|
|
|
def edit
|
|
end
|
|
|
|
def create
|
|
@heading = @group.headings.new(budget_heading_params)
|
|
if @heading.save
|
|
redirect_to headings_index, notice: t("admin.budget_headings.create.notice")
|
|
else
|
|
render new_action
|
|
end
|
|
end
|
|
|
|
def update
|
|
if @heading.update(budget_heading_params)
|
|
redirect_to headings_index, notice: t("admin.budget_headings.update.notice")
|
|
else
|
|
render :edit
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
if @heading.can_be_deleted?
|
|
@heading.destroy!
|
|
redirect_to headings_index, notice: t("admin.budget_headings.destroy.success_notice")
|
|
else
|
|
redirect_to headings_index, alert: t("admin.budget_headings.destroy.unable_notice")
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def load_budget
|
|
@budget = Budget.find_by_slug_or_id! params[:budget_id]
|
|
end
|
|
|
|
def load_group
|
|
@group = @budget.groups.find_by_slug_or_id! params[:group_id]
|
|
end
|
|
|
|
def load_heading
|
|
@heading = @group.headings.find_by_slug_or_id! params[:id]
|
|
end
|
|
|
|
def budget_heading_params
|
|
params.require(:budget_heading).permit(allowed_params)
|
|
end
|
|
|
|
def allowed_params
|
|
valid_attributes = [:price, :population, :allow_custom_content, :latitude, :longitude, :max_ballot_lines, :geozone_id]
|
|
|
|
[*valid_attributes, translation_params(Budget::Heading)]
|
|
end
|
|
end
|