mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-01-25 14:58:27 -05:00
/reddits: Filter over18 subreddits app-side.
This avoids doing a join that will filter out all subreddits which have never changed their preference. That is, since the over18 data attribute has a default value it will not have a data row unless changed and the natural join caused by the data-attribute filter will implicitly discard any subreddits that don't have the data attribute. Fixes reddit/reddit#527.
This commit is contained in:
@@ -901,6 +901,12 @@ class RedditsController(ListingController):
|
||||
def title(self):
|
||||
return _('reddits')
|
||||
|
||||
def keep_fn(self):
|
||||
base_keep_fn = ListingController.keep_fn(self)
|
||||
def keep(item):
|
||||
return base_keep_fn(item) and (c.over18 or not item.over_18)
|
||||
return keep
|
||||
|
||||
def query(self):
|
||||
if self.where == 'banned' and c.user_is_admin:
|
||||
reddits = Subreddit._query(Subreddit.c._spam == True,
|
||||
@@ -928,9 +934,6 @@ class RedditsController(ListingController):
|
||||
# don't try to render special subreddits (like promos)
|
||||
reddits._filter(Subreddit.c.author_id != -1)
|
||||
|
||||
if not c.over18:
|
||||
reddits._filter(Subreddit.c.over_18 == False)
|
||||
|
||||
if self.where == 'popular':
|
||||
self.render_params = {"show_interestbar": True}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user