Merge branch 'master' into glitch-soc/merge-upstream

Conflicts:
	app/controllers/application_controller.rb

Changed instance theme selection by instance flavour selection.
This commit is contained in:
Thibaut Girka
2018-08-24 13:34:51 +02:00
52 changed files with 534 additions and 282 deletions

View File

@ -2,6 +2,11 @@
module Settings
class ScopedSettings
DEFAULTING_TO_UNSCOPED = %w(
flavour
skin
).freeze
def initialize(object)
@object = object
end
@ -50,15 +55,22 @@ module Settings
Rails.cache.fetch(Setting.cache_key(key, @object)) do
db_val = thing_scoped.find_by(var: key.to_s)
if db_val
default_value = Setting.default_settings[key]
default_value = ScopedSettings.default_settings[key]
return default_value.with_indifferent_access.merge!(db_val.value) if default_value.is_a?(Hash)
db_val.value
else
Setting.default_settings[key]
ScopedSettings.default_settings[key]
end
end
end
class << self
def default_settings
defaulting = DEFAULTING_TO_UNSCOPED.map { |k| [k, Setting[k]] }.to_h
Setting.default_settings.merge!(defaulting)
end
end
protected
def thing_scoped