From 4ba89eec2799390feea4fae5ae5032013106f092 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Hanol?= Date: Wed, 26 Aug 2015 22:40:16 +0200 Subject: [PATCH] FIX: removing a default category wasn't working --- lib/site_setting_extension.rb | 2 +- lib/site_setting_validations.rb | 33 ++++++++++++++++++++++++++++----- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/lib/site_setting_extension.rb b/lib/site_setting_extension.rb index 276ec908184..3f613dda987 100644 --- a/lib/site_setting_extension.rb +++ b/lib/site_setting_extension.rb @@ -336,7 +336,7 @@ module SiteSettingExtension valid = false unless value.to_i.is_a?(Fixnum) end - return valid + valid end def filter_value(name, value) diff --git a/lib/site_setting_validations.rb b/lib/site_setting_validations.rb index 5a9fbb2fb9d..5c5a0917fc2 100644 --- a/lib/site_setting_validations.rb +++ b/lib/site_setting_validations.rb @@ -15,12 +15,35 @@ module SiteSettingValidations validate_error :max_username_length_exists if User.where('length(username) > ?', new_val).exists? end - def validate_default_categories(new_val) - validate_error :default_categories_already_selected if (new_val.split("|").to_set & SiteSetting.default_categories_selected).size > 0 + def validate_default_categories(new_val, default_categories_selected) + validate_error :default_categories_already_selected if (new_val.split("|").to_set & default_categories_selected).size > 0 end - alias_method :validate_default_categories_watching, :validate_default_categories - alias_method :validate_default_categories_tracking, :validate_default_categories - alias_method :validate_default_categories_muted, :validate_default_categories + def validate_default_categories_watching(new_val) + default_categories_selected = [ + SiteSetting.default_categories_tracking.split("|"), + SiteSetting.default_categories_muted.split("|"), + ].flatten.to_set + + validate_default_categories(new_val, default_categories_selected) + end + + def validate_default_categories_tracking(new_val) + default_categories_selected = [ + SiteSetting.default_categories_watching.split("|"), + SiteSetting.default_categories_muted.split("|"), + ].flatten.to_set + + validate_default_categories(new_val, default_categories_selected) + end + + def validate_default_categories_muted(new_val) + default_categories_selected = [ + SiteSetting.default_categories_watching.split("|"), + SiteSetting.default_categories_tracking.split("|"), + ].flatten.to_set + + validate_default_categories(new_val, default_categories_selected) + end end