mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-04-27 03:00:12 -04:00
User prefs: return sr.name instead of Subreddit for themes
This resolves as an error in serializing the user prefs into json for the api.
This commit is contained in:
@@ -83,8 +83,10 @@ PREFS_VALIDATORS = dict(
|
||||
pref_use_global_defaults=VBoolean("use_global_defaults"),
|
||||
pref_creddit_autorenew=VBoolean("creddit_autorenew"),
|
||||
pref_enable_default_themes=VBoolean("enable_default_themes", False),
|
||||
pref_default_theme_sr=VSRByName("theme_selector", False),
|
||||
pref_other_theme=VSRByName("other_theme", False),
|
||||
pref_default_theme_sr=VSRByName("theme_selector", required=False,
|
||||
return_srname=True),
|
||||
pref_other_theme=VSRByName("other_theme", required=False,
|
||||
return_srname=True),
|
||||
pref_beta=VBoolean('beta'),
|
||||
pref_legacy_search=VBoolean('legacy_search'),
|
||||
pref_threaded_modmail=VBoolean('threaded_modmail', False),
|
||||
@@ -140,8 +142,9 @@ def filter_prefs(prefs, user):
|
||||
prefs['pref_highlight_new_comments'] = True
|
||||
|
||||
# check stylesheet override
|
||||
if feature.is_enabled('stylesheets_everywhere', user=user):
|
||||
override_sr = prefs['pref_default_theme_sr']
|
||||
if (feature.is_enabled('stylesheets_everywhere', user=user) and
|
||||
prefs['pref_default_theme_sr']):
|
||||
override_sr = Subreddit._by_name(prefs['pref_default_theme_sr'])
|
||||
if not override_sr:
|
||||
del prefs['pref_default_theme_sr']
|
||||
if prefs['pref_enable_default_themes']:
|
||||
|
||||
@@ -720,8 +720,9 @@ class VAvailableSubredditName(VSubredditName):
|
||||
|
||||
|
||||
class VSRByName(Validator):
|
||||
def __init__(self, sr_name, required=True):
|
||||
def __init__(self, sr_name, required=True, return_srname=False):
|
||||
self.required = required
|
||||
self.return_srname = return_srname
|
||||
Validator.__init__(self, sr_name)
|
||||
|
||||
def run(self, sr_name):
|
||||
@@ -732,7 +733,10 @@ class VSRByName(Validator):
|
||||
sr_name = sr_path_rx.sub('\g<name>', sr_name.strip())
|
||||
try:
|
||||
sr = Subreddit._by_name(sr_name)
|
||||
return sr
|
||||
if self.return_srname:
|
||||
return sr.name
|
||||
else:
|
||||
return sr
|
||||
except NotFound:
|
||||
self.set_error(errors.SUBREDDIT_NOEXIST, code=400)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user