From 1abb7f031039a16c3b7389d49b71d2d8be8c34a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Checa?= Date: Thu, 18 Jan 2018 21:32:58 +0100 Subject: [PATCH] Added admin budget phases controller and routes --- .../admin/budget_phases_controller.rb | 26 +++++++++++++++++++ app/models/budget/phase.rb | 2 ++ config/routes/admin.rb | 2 ++ 3 files changed, 30 insertions(+) create mode 100644 app/controllers/admin/budget_phases_controller.rb diff --git a/app/controllers/admin/budget_phases_controller.rb b/app/controllers/admin/budget_phases_controller.rb new file mode 100644 index 000000000..f63ccdb4d --- /dev/null +++ b/app/controllers/admin/budget_phases_controller.rb @@ -0,0 +1,26 @@ +class Admin::BudgetPhasesController < Admin::BaseController + + before_action :load_phase, only: [:edit, :update] + + def edit; end + + def update + if @phase.update(budget_phase_params) + redirect_to edit_admin_budget_path(@phase.budget), notice: t("flash.actions.save_changes.notice") + else + render :edit + end + end + + private + + def load_phase + @phase = Budget::Phase.find(params[:id]) + end + + def budget_phase_params + valid_attributes = [:starts_at, :ends_at, :summary, :description, :enabled] + params.require(:budget_phase).permit(*valid_attributes) + end + +end diff --git a/app/models/budget/phase.rb b/app/models/budget/phase.rb index 5475d97be..ca4ad6f0d 100644 --- a/app/models/budget/phase.rb +++ b/app/models/budget/phase.rb @@ -3,6 +3,7 @@ class Budget PHASE_KINDS = %w(drafting accepting reviewing selecting valuating publishing_prices balloting reviewing_ballots finished).freeze PUBLISHED_PRICES_PHASES = %w(publishing_prices balloting reviewing_ballots finished).freeze + SUMMARY_MAX_LENGTH = 1000 DESCRIPTION_MAX_LENGTH = 2000 belongs_to :budget @@ -11,6 +12,7 @@ class Budget validates :budget, presence: true validates :kind, presence: true, uniqueness: { scope: :budget }, inclusion: { in: PHASE_KINDS } + validates :summary, length: { maximum: SUMMARY_MAX_LENGTH } validates :description, length: { maximum: DESCRIPTION_MAX_LENGTH } validate :invalid_dates_range? validate :prev_phase_dates_valid? diff --git a/config/routes/admin.rb b/config/routes/admin.rb index 93a1a0cc8..c372ec07f 100644 --- a/config/routes/admin.rb +++ b/config/routes/admin.rb @@ -51,6 +51,8 @@ namespace :admin do resources :budget_investment_milestones member { patch :toggle_selection } end + + resources :budget_phases, only: [:edit, :update] end resources :signature_sheets, only: [:index, :new, :create, :show]