<%= t("admin.settings.index.map.how_to_enable") %>
diff --git a/app/views/admin/settings/_participation_processes_tab.html.erb b/app/views/admin/settings/_participation_processes_tab.html.erb
index 7ff7f1b45..8afd8dd1e 100644
--- a/app/views/admin/settings/_participation_processes_tab.html.erb
+++ b/app/views/admin/settings/_participation_processes_tab.html.erb
@@ -1,3 +1,7 @@
-<%= render Admin::Settings::TableComponent.new(settings: @participation_processes_settings, setting_name: "feature", tab: "#tab-participation-processes") %>
+<%= render Admin::Settings::TableComponent.new(setting_name: "feature", table_class: "featured-settings-table") do %>
+ <% %w[process.debates process.proposals process.polls process.budgets process.legislation].each do |key| %>
+ <%= render Admin::Settings::RowComponent.new(key, type: :feature, tab: "#tab-participation-processes") %>
+ <% end %>
+<% end %>
diff --git a/app/views/admin/settings/_proposals_dashboard.html.erb b/app/views/admin/settings/_proposals_dashboard.html.erb
index ebdca806c..5975c045a 100644
--- a/app/views/admin/settings/_proposals_dashboard.html.erb
+++ b/app/views/admin/settings/_proposals_dashboard.html.erb
@@ -1,3 +1,9 @@
-<%= render Admin::Settings::TableComponent.new(settings: @proposals_settings, setting_name: "setting", tab: "#tab-proposals") %>
+<%= render Admin::Settings::TableComponent.new(setting_name: "setting") do %>
+ <% %w[proposals.successful_proposal_id proposals.poll_short_title proposals.poll_description
+ proposals.poll_link proposals.email_short_title proposals.email_description
+ proposals.poster_short_title proposals.poster_description].each do |key| %>
+ <%= render Admin::Settings::RowComponent.new(key, tab: "#tab-proposals") %>
+ <% end %>
+<% end %>
diff --git a/app/views/admin/settings/_remote_census_configuration_tab.html.erb b/app/views/admin/settings/_remote_census_configuration_tab.html.erb
index cdfba13d2..bec6c59c1 100644
--- a/app/views/admin/settings/_remote_census_configuration_tab.html.erb
+++ b/app/views/admin/settings/_remote_census_configuration_tab.html.erb
@@ -1,9 +1,24 @@
<% if feature?(:remote_census) %>
- <%= render Admin::Settings::TableComponent.new(settings: @remote_census_general_settings, setting_name: "remote_census_general_name", tab: "#tab-remote-census-configuration") %>
- <%= render Admin::Settings::TableComponent.new(settings: @remote_census_request_settings, setting_name: "remote_census_request_name", tab: "#tab-remote-census-configuration") %>
- <%= render Admin::Settings::TableComponent.new(settings: @remote_census_response_settings, setting_name: "remote_census_response_name", tab: "#tab-remote-census-configuration") %>
+ <% tab = "#tab-remote-census-configuration" %>
+ <%= render Admin::Settings::TableComponent.new(setting_name: "remote_census_general_name") do %>
+ <%= render Admin::Settings::RowComponent.new("remote_census.general.endpoint", tab: tab) %>
+ <% end %>
+ <%= render Admin::Settings::TableComponent.new(setting_name: "remote_census_request_name") do %>
+ <% %w[remote_census.request.method_name remote_census.request.structure
+ remote_census.request.document_type remote_census.request.document_number
+ remote_census.request.date_of_birth remote_census.request.postal_code].each do |key| %>
+ <%= render Admin::Settings::RowComponent.new(key, tab: tab) %>
+ <% end %>
+ <% end %>
+ <%= render Admin::Settings::TableComponent.new(setting_name: "remote_census_response_name") do %>
+ <% %w[remote_census.response.date_of_birth remote_census.response.postal_code
+ remote_census.response.district remote_census.response.gender remote_census.response.name
+ remote_census.response.surname remote_census.response.valid].each do |key| %>
+ <%= render Admin::Settings::RowComponent.new(key, tab: tab) %>
+ <% end %>
+ <% end %>
<% else %>
<%= t("admin.settings.index.remote_census.how_to_enable") %>
diff --git a/app/views/admin/settings/_sdg_configuration_tab.html.erb b/app/views/admin/settings/_sdg_configuration_tab.html.erb
index 149908bd3..795798c18 100644
--- a/app/views/admin/settings/_sdg_configuration_tab.html.erb
+++ b/app/views/admin/settings/_sdg_configuration_tab.html.erb
@@ -1,7 +1,11 @@
<% if feature?(:sdg) %>
<%= t("admin.settings.index.sdg.title") %>
- <%= render Admin::Settings::TableComponent.new(settings: @sdg_settings, setting_name: "feature", tab: "#tab-sdg-configuration") %>
+ <%= render Admin::Settings::TableComponent.new(setting_name: "feature", table_class: "featured-settings-table") do %>
+ <% %w[sdg.process.debates sdg.process.proposals sdg.process.polls sdg.process.budgets sdg.process.legislation].each do |key| %>
+ <%= render Admin::Settings::RowComponent.new(key, type: :feature, tab: "#tab-sdg-configuration") %>
+ <% end %>
+ <% end %>
<% else %>
<%= t("admin.settings.index.sdg.how_to_enable") %>
diff --git a/app/views/admin/site_customization/content_blocks/index.html.erb b/app/views/admin/site_customization/content_blocks/index.html.erb
index 8f6ffae3f..03fd96248 100644
--- a/app/views/admin/site_customization/content_blocks/index.html.erb
+++ b/app/views/admin/site_customization/content_blocks/index.html.erb
@@ -6,7 +6,10 @@
<%= t("admin.site_customization.content_blocks.index.title") %>
-<%= render Admin::Settings::TableComponent.new(settings: @html_settings, setting_name: "setting") %>
+<%= render Admin::Settings::TableComponent.new(setting_name: "setting") do %>
+ <%= render Admin::Settings::RowComponent.new("html.per_page_code_body") %>
+ <%= render Admin::Settings::RowComponent.new("html.per_page_code_head") %>
+<% end %>
<%= t("admin.site_customization.content_blocks.information") %>
diff --git a/spec/components/admin/settings/table_component_spec.rb b/spec/components/admin/settings/table_component_spec.rb
index 8f7b7e3ac..6868e912e 100644
--- a/spec/components/admin/settings/table_component_spec.rb
+++ b/spec/components/admin/settings/table_component_spec.rb
@@ -3,28 +3,23 @@ require "rails_helper"
describe Admin::Settings::TableComponent do
describe "#key_header" do
it "returns correct table header for the setting name colums" do
- settings = Setting.limit(2)
-
- render_inline Admin::Settings::TableComponent.new settings: settings, setting_name: "feature"
+ render_inline Admin::Settings::TableComponent.new setting_name: "feature"
expect(page).to have_content("Feature")
- render_inline Admin::Settings::TableComponent.new settings: settings, setting_name: "setting"
+ render_inline Admin::Settings::TableComponent.new setting_name: "setting"
expect(page).to have_content("Setting")
- setting_name = "remote_census_general_name"
- render_inline Admin::Settings::TableComponent.new settings: settings, setting_name: setting_name
+ render_inline Admin::Settings::TableComponent.new setting_name: "remote_census_general_name"
expect(page).to have_content("General Information")
- setting_name = "remote_census_request_name"
- render_inline Admin::Settings::TableComponent.new settings: settings, setting_name: setting_name
+ render_inline Admin::Settings::TableComponent.new setting_name: "remote_census_request_name"
expect(page).to have_content("Request Data")
- setting_name = "remote_census_response_name"
- render_inline Admin::Settings::TableComponent.new settings: settings, setting_name: setting_name
+ render_inline Admin::Settings::TableComponent.new setting_name: "remote_census_response_name"
expect(page).to have_content("Response Data")
end
@@ -32,35 +27,28 @@ describe Admin::Settings::TableComponent do
describe "#value_header" do
it "returns correct table header for the setting interface column" do
- settings = Setting.limit(2)
-
- render_inline Admin::Settings::TableComponent.new settings: settings, setting_name: "feature"
+ render_inline Admin::Settings::TableComponent.new setting_name: "feature"
expect(page).to have_content("Enabled")
- render_inline Admin::Settings::TableComponent.new settings: settings, setting_name: "setting"
+ render_inline Admin::Settings::TableComponent.new setting_name: "setting"
expect(page).to have_content("Value")
end
end
describe "#table_class" do
- it "returns a CSS class when all given settings are features, otherwise returns a mixed class" do
- settings = [Setting.find_by(key: "feature.map"), Setting.find_by(key: "process.debates")]
+ it "returns the `mixed-settings-table` by default" do
+ render_inline Admin::Settings::TableComponent.new setting_name: "feature"
- render_inline Admin::Settings::TableComponent.new settings: settings, setting_name: "feature"
-
- expect(page).to have_css(".featured-settings-table")
- expect(page).not_to have_css(".mixed-settings-table")
+ expect(page).to have_css(".mixed-settings-table")
end
- it "returns a CSS class when all given settings are features, otherwise returns a mixed class" do
- settings = [Setting.find_by(key: "feature.map"), Setting.find_by(key: "mailer_from_name")]
+ it "returns the given table_class" do
+ render_inline Admin::Settings::TableComponent.new setting_name: "feature", table_class: "my-table-class"
- render_inline Admin::Settings::TableComponent.new settings: settings, setting_name: "feature"
-
- expect(page).not_to have_css(".featured-settings-table")
- expect(page).to have_css(".mixed-settings-table")
+ expect(page).not_to have_css(".mixed-settings-table")
+ expect(page).to have_css(".my-table-class")
end
end
end
diff --git a/spec/models/setting_spec.rb b/spec/models/setting_spec.rb
index 655ade457..d31c4ef3c 100644
--- a/spec/models/setting_spec.rb
+++ b/spec/models/setting_spec.rb
@@ -27,15 +27,6 @@ describe Setting do
end
end
- describe "#feature?" do
- it "returns true if the key prefix is process, feature or sdg" do
- expect(Setting.find_by!(key: "process.debates").feature?).to be true
- expect(Setting.find_by!(key: "feature.map").feature?).to be true
- expect(Setting.find_by!(key: "sdg.process.debates").feature?).to be true
- expect(Setting.find_by!(key: "uploads.documents.max_size").feature?).to be false
- end
- end
-
describe "#enabled?" do
it "is true if value is present" do
setting = Setting.create!(key: "feature.whatever", value: 1)
@@ -57,16 +48,6 @@ describe Setting do
end
end
- describe "#content_type?" do
- it "returns true if the last part of the key is content_types" do
- expect(Setting.create!(key: "key_name.content_types").content_type?).to be true
- end
-
- it "returns false if the last part of the key is not content_types" do
- expect(Setting.create!(key: "key_name.whatever").content_type?).to be false
- end
- end
-
describe "#content_type_group" do
it "returns the group for content_types settings" do
images = Setting.create!(key: "update.images.content_types")
diff --git a/spec/system/admin/settings_spec.rb b/spec/system/admin/settings_spec.rb
index ad37d80cd..83c4369b3 100644
--- a/spec/system/admin/settings_spec.rb
+++ b/spec/system/admin/settings_spec.rb
@@ -2,24 +2,18 @@ require "rails_helper"
describe "Admin settings", :admin do
scenario "Index" do
- create(:setting, key: "super.users.first")
- create(:setting, key: "super.users.second")
- create(:setting, key: "super.users.third")
-
visit admin_settings_path
- expect(page).to have_content "First"
- expect(page).to have_content "Second"
- expect(page).to have_content "Third"
+ expect(page).to have_content "Level 1 public official"
+ expect(page).to have_content "Maximum ratio of anonymous votes per Debate"
+ expect(page).to have_content "Comments body max length"
end
scenario "Update" do
- create(:setting, key: "super.users.first")
-
visit admin_settings_path
- within "tr", text: "First" do
- fill_in "First", with: "Super Users of level 1"
+ within "tr", text: "Level 1 public official" do
+ fill_in "Level 1 public official", with: "Super Users of level 1"
click_button "Update"
end
@@ -173,13 +167,11 @@ describe "Admin settings", :admin do
end
scenario "On #tab-remote-census-configuration" do
- create(:setting, key: "remote_census.general.whatever")
-
visit admin_settings_path
find("#remote-census-tab").click
- within "tr", text: "Whatever" do
- fill_in "Whatever", with: "New value"
+ within "tr", text: "Endpoint" do
+ fill_in "Endpoint", with: "example.org/webservice"
click_button "Update"
end
@@ -189,13 +181,10 @@ describe "Admin settings", :admin do
end
scenario "On #tab-configuration" do
- Setting.create!(key: "whatever")
-
visit admin_settings_path
- find("#tab-configuration").click
- within "tr", text: "Whatever" do
- fill_in "Whatever", with: "New value"
+ within "tr", text: "Level 1 public official" do
+ fill_in "Level 1 public official", with: "Super Users of level 1"
click_button "Update"
end
@@ -209,13 +198,11 @@ describe "Admin settings", :admin do
end
scenario "On #tab-map-configuration" do
- Setting.create!(key: "map.whatever")
-
visit admin_settings_path
click_link "Map configuration"
- within "tr", text: "Whatever" do
- fill_in "Whatever", with: "New value"
+ within "tr", text: "Latitude" do
+ fill_in "Latitude", with: "-3.636"
click_button "Update"
end
@@ -236,13 +223,11 @@ describe "Admin settings", :admin do
end
scenario "On #tab-proposals" do
- Setting.create!(key: "proposals.whatever")
-
visit admin_settings_path
find("#proposals-tab").click
- within "tr", text: "Whatever" do
- fill_in "Whatever", with: "New value"
+ within "tr", text: "Polls description" do
+ fill_in "Polls description", with: "Polls description"
click_button "Update"
end
@@ -251,22 +236,18 @@ describe "Admin settings", :admin do
end
scenario "On #tab-participation-processes" do
- Setting.create!(key: "process.whatever")
-
visit admin_settings_path
find("#participation-processes-tab").click
- within("tr", text: "Whatever") { click_button "No" }
+ within("tr", text: "Debates") { click_button "Yes" }
expect(page).to have_current_path(admin_settings_path)
expect(page).to have_css("div#tab-participation-processes.is-active")
end
scenario "On #tab-feature-flags" do
- Setting.create!(key: "feature.whatever")
-
visit admin_settings_path
find("#features-tab").click
- within("tr", text: "Whatever") { click_button "No" }
+ within("tr", text: "Featured proposals") { click_button "No" }
expect(page).to have_current_path(admin_settings_path)
expect(page).to have_css("div#tab-feature-flags.is-active")
@@ -274,15 +255,13 @@ describe "Admin settings", :admin do
scenario "On #tab-sdg-configuration" do
Setting["feature.sdg"] = true
- Setting.create!(key: "sdg.whatever")
-
visit admin_settings_path
click_link "SDG configuration"
- within("tr", text: "Whatever") do
- click_button "No"
+ within("tr", text: "Related SDG in debates") do
+ click_button "Yes"
- expect(page).to have_button "Yes"
+ expect(page).to have_button "No"
end
expect(page).to have_current_path(admin_settings_path)