diff --git a/app/controllers/settings/preferences_controller.rb b/app/controllers/settings/preferences_controller.rb index 5863a3f18..d838ff56f 100644 --- a/app/controllers/settings/preferences_controller.rb +++ b/app/controllers/settings/preferences_controller.rb @@ -12,7 +12,8 @@ class Settings::PreferencesController < ApplicationController def update @user = Current.user user_params = params.permit(user: [ :preview_features_enabled ]).fetch(:user, {}) - module_params = params.permit(family: { modules: {} }).dig(:family, :modules) + allowed_module_keys = Family::AVAILABLE_MODULES.map(&:to_sym) + module_params = params.permit(family: { modules: allowed_module_keys }).dig(:family, :modules) ActiveRecord::Base.transaction do @user.lock! diff --git a/app/views/settings/preferences/show.html.erb b/app/views/settings/preferences/show.html.erb index c1f285051..fd1ac48be 100644 --- a/app/views/settings/preferences/show.html.erb +++ b/app/views/settings/preferences/show.html.erb @@ -246,7 +246,7 @@
<%= t("modules.#{module_name}.title") %>

<%= t("modules.#{module_name}.description") %>

- <%= hidden_field_tag "family[modules][#{module_name}]", "0" %> + <%= hidden_field_tag "family[modules][#{module_name}]", "0", id: nil %> <%= render DS::Toggle.new( id: "family_modules_#{module_name}", name: "family[modules][#{module_name}]", diff --git a/db/schema.rb b/db/schema.rb index c7fcf54ae..7e8a1f8ec 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.2].define(version: 2026_05_19_100000) do +ActiveRecord::Schema[7.2].define(version: 2026_05_22_120000) do # These are extensions that must be enabled in order to support this database enable_extension "pgcrypto" enable_extension "plpgsql" @@ -498,7 +498,7 @@ ActiveRecord::Schema[7.2].define(version: 2026_05_19_100000) do t.index ["provider_key"], name: "index_debug_log_entries_on_provider_key" t.index ["source"], name: "index_debug_log_entries_on_source" t.index ["user_id"], name: "index_debug_log_entries_on_user_id" - t.check_constraint "level::text = ANY (ARRAY['debug'::character varying, 'info'::character varying, 'warn'::character varying, 'error'::character varying]::text[])", name: "chk_debug_log_entries_level" + t.check_constraint "level::text = ANY (ARRAY['debug'::character varying::text, 'info'::character varying::text, 'warn'::character varying::text, 'error'::character varying::text])", name: "chk_debug_log_entries_level" end create_table "depositories", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| @@ -717,6 +717,7 @@ ActiveRecord::Schema[7.2].define(version: 2026_05_19_100000) do t.string "default_account_sharing", default: "shared", null: false t.string "enabled_currencies", array: true t.datetime "last_sync_all_attempted_at" + t.string "disabled_modules", default: [], null: false, array: true t.check_constraint "default_account_sharing::text = ANY (ARRAY['shared'::character varying::text, 'private'::character varying::text])", name: "chk_families_default_account_sharing" t.check_constraint "month_start_day >= 1 AND month_start_day <= 28", name: "month_start_day_range" end diff --git a/docs/screenshots/explore-feature-modules/01-module-toggle-on.png b/docs/screenshots/explore-feature-modules/01-module-toggle-on.png new file mode 100644 index 000000000..70f8f9ba4 Binary files /dev/null and b/docs/screenshots/explore-feature-modules/01-module-toggle-on.png differ diff --git a/docs/screenshots/explore-feature-modules/02-module-toggle-off.png b/docs/screenshots/explore-feature-modules/02-module-toggle-off.png new file mode 100644 index 000000000..97af79fdd Binary files /dev/null and b/docs/screenshots/explore-feature-modules/02-module-toggle-off.png differ diff --git a/docs/screenshots/explore-feature-modules/03-investments-redirect-flash.png b/docs/screenshots/explore-feature-modules/03-investments-redirect-flash.png new file mode 100644 index 000000000..ed85fc9c4 Binary files /dev/null and b/docs/screenshots/explore-feature-modules/03-investments-redirect-flash.png differ diff --git a/docs/screenshots/explore-feature-modules/04-account-picker-investments-off.png b/docs/screenshots/explore-feature-modules/04-account-picker-investments-off.png new file mode 100644 index 000000000..94e6f3b10 Binary files /dev/null and b/docs/screenshots/explore-feature-modules/04-account-picker-investments-off.png differ diff --git a/docs/screenshots/explore-feature-modules/05-account-picker-investments-on.png b/docs/screenshots/explore-feature-modules/05-account-picker-investments-on.png new file mode 100644 index 000000000..eaf1b43be Binary files /dev/null and b/docs/screenshots/explore-feature-modules/05-account-picker-investments-on.png differ