diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb
index fc9599131..cdc2278ba 100644
--- a/app/controllers/admin/settings_controller.rb
+++ b/app/controllers/admin/settings_controller.rb
@@ -10,6 +10,7 @@ class Admin::SettingsController < Admin::BaseController
@remote_census_request_settings = all_settings["remote_census.request"]
@remote_census_response_settings = all_settings["remote_census.response"]
@uploads_settings = all_settings["uploads"]
+ @sdg_settings = all_settings["sdg"]
end
def update
diff --git a/app/models/setting.rb b/app/models/setting.rb
index 9e1d9e238..88733de4e 100644
--- a/app/models/setting.rb
+++ b/app/models/setting.rb
@@ -8,7 +8,7 @@ class Setting < ApplicationRecord
end
def type
- if %w[feature process proposals map html homepage uploads].include? prefix
+ if %w[feature process proposals map html homepage uploads sdg].include? prefix
prefix
elsif %w[remote_census].include? prefix
key.rpartition(".").first
@@ -184,7 +184,12 @@ class Setting < ApplicationRecord
"remote_census.response.gender": "",
"remote_census.response.name": "",
"remote_census.response.surname": "",
- "remote_census.response.valid": ""
+ "remote_census.response.valid": "",
+ "sdg.process.debates": false,
+ "sdg.process.proposals": false,
+ "sdg.process.polls": false,
+ "sdg.process.budgets": false,
+ "sdg.process.legislation": false
}
end
diff --git a/app/views/admin/settings/_filter_subnav.html.erb b/app/views/admin/settings/_filter_subnav.html.erb
index cdd095d0d..10b1dd44f 100644
--- a/app/views/admin/settings/_filter_subnav.html.erb
+++ b/app/views/admin/settings/_filter_subnav.html.erb
@@ -47,4 +47,10 @@
<% end %>
+
+ <%= link_to "#tab-sdg-configuration" do %>
+ <%= t("admin.settings.index.sdg.title") %>
+ <% end %>
+
+
diff --git a/app/views/admin/settings/_sdg_configuration_tab.html.erb b/app/views/admin/settings/_sdg_configuration_tab.html.erb
new file mode 100644
index 000000000..0477ed7ef
--- /dev/null
+++ b/app/views/admin/settings/_sdg_configuration_tab.html.erb
@@ -0,0 +1,3 @@
+<%= t("admin.settings.index.sdg.title") %>
+
+<%= render "featured_settings_table", features: @sdg_settings, tab: "#tab-sdg-configuration" %>
diff --git a/app/views/admin/settings/index.html.erb b/app/views/admin/settings/index.html.erb
index 9e417dc0e..04d6afd93 100644
--- a/app/views/admin/settings/index.html.erb
+++ b/app/views/admin/settings/index.html.erb
@@ -29,4 +29,8 @@
<%= render "remote_census_configuration_tab" %>
+
+
+ <%= render "sdg_configuration_tab" %>
+
diff --git a/config/locales/en/admin.yml b/config/locales/en/admin.yml
index 346b59c09..b26d43e85 100644
--- a/config/locales/en/admin.yml
+++ b/config/locales/en/admin.yml
@@ -1240,6 +1240,8 @@ en:
remote_census:
title: Remote Census configuration
how_to_enable: 'To configure remote census (SOAP) you must enable "Configure connection to remote census (SOAP)" on "Features" tab.'
+ sdg:
+ title: SDG configuration
remote_census_general_name: General Information
remote_census_request_name: Request Data
remote_census_response_name: Response Data
diff --git a/config/locales/en/settings.yml b/config/locales/en/settings.yml
index 7c40b463e..804215d6d 100644
--- a/config/locales/en/settings.yml
+++ b/config/locales/en/settings.yml
@@ -207,3 +207,15 @@ en:
max_size_description: "Maximum size allowed for an uploaded document (in Megabytes/MB)"
content_types: "Accepted content types for documents"
content_types_description: "Select all the content types allowed for uploaded documents"
+ sdg:
+ process:
+ debates: Related SDG in debates
+ debates_description: Allow debates to be linked to Sustainable Development Goals
+ proposals: Related SDG in proposals
+ proposals_description: Allow proposals to be linked to Sustainable Development Goals
+ polls: Related SDG in polls
+ polls_description: Allow polls to be linked to Sustainable Development Goals
+ budgets: Related SDG in partipatory budgets
+ budgets_description: Allow participatory budgets to be linked to Sustainable Development Goals
+ legislation: Related SDG in collaborative legislation
+ legislation_description: Allow collaborative legislation to be linked to Sustainable Development Goals
diff --git a/config/locales/es/admin.yml b/config/locales/es/admin.yml
index 2feeab0d6..644139a29 100644
--- a/config/locales/es/admin.yml
+++ b/config/locales/es/admin.yml
@@ -1239,6 +1239,8 @@ es:
remote_census:
title: Configuración del Censo Remoto
how_to_enable: 'Para configurar la conexión con el Censo Remoto (SOAP) se debe activar "Configurar la conexión al censo remoto (SOAP)" en la pestaña "Funcionalidades".'
+ sdg:
+ title: Configuración ODS
remote_census_general_name: Datos Generales
remote_census_request_name: Datos Petición
remote_census_response_name: Datos Respuesta
diff --git a/config/locales/es/settings.yml b/config/locales/es/settings.yml
index ed1b4ce38..e4cf5d532 100644
--- a/config/locales/es/settings.yml
+++ b/config/locales/es/settings.yml
@@ -207,3 +207,15 @@ es:
max_size_description: "Tamaño máximo permitido al subir un documento (en Megabytes/MB)"
content_types: "Tipos de documentos permitidos"
content_types_description: "Selecciona todos los tipos permitidos para los documentos subidos"
+ sdg:
+ process:
+ debates: Alineamiento ODS en debates
+ debates_description: Permitir alineamiento de los Objetivos de Desarrollo Sostenible en debates
+ proposals: Alineamiento ODS en propuestas
+ proposals_description: Permitir alineamiento de los Objetivos de Desarrollo Sostenible en propuestas
+ polls: Alineamiento ODS en votaciones
+ polls_description: Permitir alineamiento de los Objetivos de Desarrollo Sostenible en votaciones
+ budgets: Alineamiento ODS en presupuestos participativos
+ budgets_description: Permitir alineamiento de los Objetivos de Desarrollo Sostenible en presupuestos participativos
+ legislation: Alineamiento ODS en legislación colaborativa
+ legislation_description: Permitir alineamiento de los Objetivos de Desarrollo Sostenible en legislación colaborativa
diff --git a/db/dev_seeds/settings.rb b/db/dev_seeds/settings.rb
index 364773ab6..021820db0 100644
--- a/db/dev_seeds/settings.rb
+++ b/db/dev_seeds/settings.rb
@@ -15,6 +15,11 @@ section "Creating Settings" do
"org_name": "CONSUL",
"proposal_code_prefix": "MAD",
"proposal_notification_minimum_interval_in_days": 0,
+ "sdg.process.debates": "true",
+ "sdg.process.proposals": "true",
+ "sdg.process.polls": "true",
+ "sdg.process.budgets": "true",
+ "sdg.process.legislation": "true",
"telegram_handle": "CONSUL",
"twitter_handle": "@consul_dev",
"twitter_hashtag": "#consul_dev",
diff --git a/spec/models/setting_spec.rb b/spec/models/setting_spec.rb
index 99522f866..8a5dc95b2 100644
--- a/spec/models/setting_spec.rb
+++ b/spec/models/setting_spec.rb
@@ -53,6 +53,12 @@ describe Setting do
expect(homepage_setting.type).to eq "homepage"
end
+ it "returns the key prefix for 'sdg' settings" do
+ sdg_setting = Setting.create!(key: "sdg.whatever")
+
+ expect(sdg_setting.type).to eq "sdg"
+ end
+
it "returns the key prefix for 'remote_census.general' settings" do
remote_census_general_setting = Setting.create!(key: "remote_census.general.whatever")
expect(remote_census_general_setting.type).to eq "remote_census.general"
diff --git a/spec/system/admin/settings_spec.rb b/spec/system/admin/settings_spec.rb
index 50af58110..f51dc86a2 100644
--- a/spec/system/admin/settings_spec.rb
+++ b/spec/system/admin/settings_spec.rb
@@ -265,6 +265,21 @@ describe "Admin settings", :admin do
expect(page).to have_current_path(admin_settings_path)
expect(page).to have_css("div#tab-feature-flags.is-active")
end
+
+ scenario "On #tab-sdg-configuration", :js do
+ Setting.create!(key: "sdg.whatever")
+ login_as(create(:administrator).user)
+
+ visit admin_settings_path
+ click_link "SDG configuration"
+
+ accept_alert do
+ within("tr", text: "Whatever") { click_button "Enable" }
+ end
+
+ expect(page).to have_current_path(admin_settings_path)
+ expect(page).to have_css("h2", exact_text: "SDG configuration")
+ end
end
describe "Skip verification" do