diff --git a/app/controllers/admin/dashboard/actions_controller.rb b/app/controllers/admin/dashboard/actions_controller.rb index 5435fb6b5..e04e3a7a5 100644 --- a/app/controllers/admin/dashboard/actions_controller.rb +++ b/app/controllers/admin/dashboard/actions_controller.rb @@ -1,4 +1,5 @@ class Admin::Dashboard::ActionsController < Admin::Dashboard::BaseController + include DocumentAttributes helper_method :dashboard_action, :resource def index @@ -58,7 +59,7 @@ class Admin::Dashboard::ActionsController < Admin::Dashboard::BaseController .permit( :title, :description, :short_description, :request_to_administrators, :day_offset, :required_supports, :order, :active, :action_type, :published_proposal, - documents_attributes: [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy], + documents_attributes: document_attributes, links_attributes: [:id, :label, :url, :_destroy] ) end diff --git a/app/controllers/admin/legislation/processes_controller.rb b/app/controllers/admin/legislation/processes_controller.rb index 39d636d57..7396ca654 100644 --- a/app/controllers/admin/legislation/processes_controller.rb +++ b/app/controllers/admin/legislation/processes_controller.rb @@ -1,6 +1,7 @@ class Admin::Legislation::ProcessesController < Admin::Legislation::BaseController include Translatable include ImageAttributes + include DocumentAttributes has_filters %w[active all], only: :index @@ -71,7 +72,7 @@ class Admin::Legislation::ProcessesController < Admin::Legislation::BaseControll :font_color, :related_sdg_list, translation_params(::Legislation::Process), - documents_attributes: [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy], + documents_attributes: document_attributes, image_attributes: image_attributes ] end diff --git a/app/controllers/admin/milestones_controller.rb b/app/controllers/admin/milestones_controller.rb index c3019443a..619b3859d 100644 --- a/app/controllers/admin/milestones_controller.rb +++ b/app/controllers/admin/milestones_controller.rb @@ -1,6 +1,7 @@ class Admin::MilestonesController < Admin::BaseController include Translatable include ImageAttributes + include DocumentAttributes before_action :load_milestoneable, only: [:index, :new, :create, :edit, :update, :destroy] before_action :load_milestone, only: [:edit, :update, :destroy] @@ -42,10 +43,9 @@ class Admin::MilestonesController < Admin::BaseController private def milestone_params - documents_attributes = [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy] attributes = [:publication_date, :status_id, translation_params(Milestone), - image_attributes: image_attributes, documents_attributes: documents_attributes] + image_attributes: image_attributes, documents_attributes: document_attributes] params.require(:milestone).permit(*attributes) end diff --git a/app/controllers/admin/poll/questions/answers_controller.rb b/app/controllers/admin/poll/questions/answers_controller.rb index c75524a60..e5334d483 100644 --- a/app/controllers/admin/poll/questions/answers_controller.rb +++ b/app/controllers/admin/poll/questions/answers_controller.rb @@ -1,5 +1,6 @@ class Admin::Poll::Questions::AnswersController < Admin::Poll::BaseController include Translatable + include DocumentAttributes before_action :load_answer, only: [:show, :edit, :update, :documents] @@ -50,9 +51,8 @@ class Admin::Poll::Questions::AnswersController < Admin::Poll::BaseController private def answer_params - documents_attributes = [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy] attributes = [:title, :description, :given_order, :question_id, - documents_attributes: documents_attributes] + documents_attributes: document_attributes] params.require(:poll_question_answer).permit( *attributes, translation_params(Poll::Question::Answer) diff --git a/app/controllers/budgets/investments_controller.rb b/app/controllers/budgets/investments_controller.rb index 82fbf7f96..a5931cf24 100644 --- a/app/controllers/budgets/investments_controller.rb +++ b/app/controllers/budgets/investments_controller.rb @@ -5,6 +5,7 @@ module Budgets include FlagActions include RandomSeed include ImageAttributes + include DocumentAttributes include MapLocationAttributes include Translatable include InvestmentFilters @@ -136,7 +137,7 @@ module Budgets attributes = [:heading_id, :tag_list, :organization_name, :location, :terms_of_service, :skip_map, :related_sdg_list, image_attributes: image_attributes, - documents_attributes: [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy], + documents_attributes: document_attributes, map_location_attributes: map_location_attributes] params.require(:budget_investment).permit(attributes, translation_params(Budget::Investment)) end diff --git a/app/controllers/concerns/document_attributes.rb b/app/controllers/concerns/document_attributes.rb new file mode 100644 index 000000000..d23b38b8c --- /dev/null +++ b/app/controllers/concerns/document_attributes.rb @@ -0,0 +1,7 @@ +module DocumentAttributes + extend ActiveSupport::Concern + + def document_attributes + [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy] + end +end diff --git a/app/controllers/dashboard/polls_controller.rb b/app/controllers/dashboard/polls_controller.rb index 26f638f17..45e760737 100644 --- a/app/controllers/dashboard/polls_controller.rb +++ b/app/controllers/dashboard/polls_controller.rb @@ -1,4 +1,5 @@ class Dashboard::PollsController < Dashboard::BaseController + include DocumentAttributes helper_method :poll before_action :authorize_manage_polls @@ -70,11 +71,7 @@ class Dashboard::PollsController < Dashboard::BaseController def question_answers_attributes [:id, :_destroy, :title, :description, :given_order, :question_id, - documents_attributes: documents_attributes] - end - - def documents_attributes - [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy] + documents_attributes: document_attributes] end def authorize_manage_polls diff --git a/app/controllers/proposals_controller.rb b/app/controllers/proposals_controller.rb index c6631198c..d99a402cd 100644 --- a/app/controllers/proposals_controller.rb +++ b/app/controllers/proposals_controller.rb @@ -3,6 +3,7 @@ class ProposalsController < ApplicationController include CommentableActions include FlagActions include ImageAttributes + include DocumentAttributes include MapLocationAttributes include Translatable @@ -102,8 +103,7 @@ class ProposalsController < ApplicationController attributes = [:video_url, :responsible_name, :tag_list, :terms_of_service, :geozone_id, :skip_map, :related_sdg_list, image_attributes: image_attributes, - documents_attributes: [:id, :title, :attachment, :cached_attachment, - :user_id, :_destroy], + documents_attributes: document_attributes, map_location_attributes: map_location_attributes] translations_attributes = translation_params(Proposal, except: :retired_explanation) params.require(:proposal).permit(attributes, translations_attributes)