From c217af9f4ba237b51872a4a796834f1526e3475e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sen=C3=A9n=20Rodero=20Rodr=C3=ADguez?= Date: Thu, 18 Feb 2021 20:23:31 +0100 Subject: [PATCH] Add sdg management header controller --- .../sdg_management/header_controller.rb | 29 +++++++++++++++++++ app/models/web_section.rb | 1 + config/routes/sdg_management.rb | 4 ++- 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 app/controllers/sdg_management/header_controller.rb diff --git a/app/controllers/sdg_management/header_controller.rb b/app/controllers/sdg_management/header_controller.rb new file mode 100644 index 000000000..f3bf73ae3 --- /dev/null +++ b/app/controllers/sdg_management/header_controller.rb @@ -0,0 +1,29 @@ +class SDGManagement::HeaderController < SDGManagement::BaseController + include Admin::Widget::CardsActions + helper_method :index_path + + before_action :load_cardable + load_and_authorize_resource :header, + class: "Widget::Card", + through: :cardable, + singleton: true, + instance_name: :card + + private + + def load_cardable + @cardable = WebSection.find_by!(name: "sdg") + end + + def index_path + sdg_management_homepage_path + end + + def form_path + sdg_management_homepage_header_path + end + + def header_params + card_params + end +end diff --git a/app/models/web_section.rb b/app/models/web_section.rb index 3c2dd5790..e68ce2804 100644 --- a/app/models/web_section.rb +++ b/app/models/web_section.rb @@ -1,4 +1,5 @@ class WebSection < ApplicationRecord has_many :sections has_many :banners, through: :sections + has_one :header, class_name: "Widget::Card", as: :cardable, dependent: :destroy end diff --git a/config/routes/sdg_management.rb b/config/routes/sdg_management.rb index c8816ad56..d048bc2d1 100644 --- a/config/routes/sdg_management.rb +++ b/config/routes/sdg_management.rb @@ -4,7 +4,9 @@ namespace :sdg_management do resources :goals, only: [:index] resources :targets, only: [:index] resources :local_targets, except: [:show] - resource :homepage, controller: :homepage, only: [:show] + resource :homepage, controller: :homepage, only: [:show] do + resource :header, controller: :header, only: [:new, :create, :edit, :update, :destroy] + end resources :phases, only: [], as: :sdg_phases do resources :cards, except: [:index, :show], as: :widget_cards