Disable SDG sections when settings are disabled

This commit is contained in:
Javi Martín
2020-12-02 20:16:48 +01:00
parent f76279a4dd
commit ee06dcc05a
5 changed files with 216 additions and 0 deletions

View File

@@ -13,6 +13,8 @@ class SDGManagement::MenuComponent < ApplicationComponent
def relatable_links
SDG::Related::RELATABLE_TYPES.map do |type|
next unless setting["process.#{process_name(type)}"] && setting["sdg.process.#{process_name(type)}"]
[
t("sdg_management.menu.#{table_name(type)}"),
relatable_type_path(type),
@@ -37,4 +39,14 @@ class SDGManagement::MenuComponent < ApplicationComponent
def table_name(type)
type.constantize.table_name
end
def process_name(type)
process_name = type.split("::").first
if process_name == "Legislation"
"legislation"
else
process_name.constantize.table_name
end
end
end

View File

@@ -1,4 +1,5 @@
class SDGManagement::RelationsController < SDGManagement::BaseController
before_action :check_feature_flags
before_action :load_record, only: [:edit, :update]
def index
@@ -23,4 +24,12 @@ class SDGManagement::RelationsController < SDGManagement::BaseController
def relatable_class
params[:relatable_type].classify.constantize
end
def check_feature_flags
process_name = params[:relatable_type].split("/").first
process_name = process_name.pluralize unless process_name == "legislation"
check_feature_flag(process_name)
raise FeatureDisabled, process_name unless Setting["sdg.process.#{process_name}"]
end
end