From aae7a5a64d23d9beaa66023b57fc81fa54f05f6c Mon Sep 17 00:00:00 2001 From: Brian Simpson Date: Wed, 17 Aug 2011 11:45:03 -0700 Subject: [PATCH] Don't choke on banned sr in multireddit. --- r2/r2/models/subreddit.py | 15 ++++++++++----- r2/r2/templates/subscriptionbox.html | 22 +++++++++++++++++++--- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/r2/r2/models/subreddit.py b/r2/r2/models/subreddit.py index 0770277c5..4b80f9440 100644 --- a/r2/r2/models/subreddit.py +++ b/r2/r2/models/subreddit.py @@ -871,23 +871,28 @@ class MultiReddit(_DefaultSR): self.real_path = path self.sr_ids = sr_ids - def spammy(self): srs = Subreddit._byID(self.sr_ids, return_dict=False) - return any(sr._spam for sr in srs) + self.banned_sr_ids = [] + self.kept_sr_ids = [] + for sr in srs: + if sr._spam: + self.banned_sr_ids.append(sr._id) + else: + self.kept_sr_ids.append(sr._id) @property def path(self): return '/r/' + self.real_path def get_links(self, sort, time): - return self.get_links_sr_ids(self.sr_ids, sort, time) + return self.get_links_sr_ids(self.kept_sr_ids, sort, time) def rising_srs(self): - return self.sr_ids + return self.kept_sr_ids def get_all_comments(self): from r2.lib.db.queries import get_sr_comments, merge_results - srs = Subreddit._byID(self.sr_ids, return_dict=False) + srs = Subreddit._byID(self.kept_sr_ids, return_dict=False) results = [get_sr_comments(sr) for sr in srs] return merge_results(*results) diff --git a/r2/r2/templates/subscriptionbox.html b/r2/r2/templates/subscriptionbox.html index 011801e36..fb66ba3b1 100644 --- a/r2/r2/templates/subscriptionbox.html +++ b/r2/r2/templates/subscriptionbox.html @@ -22,6 +22,11 @@ <%namespace file="utils.html" import="plain_link"/> <%namespace file="subreddit.html" import="addremove_button, permission_icons"/> +<% + from r2.models import MultiReddit + is_multi = isinstance(c.site, MultiReddit) +%> +
% if thing.prelink or thing.goldlink:
@@ -45,10 +50,21 @@ % endif
    %for sr in thing.reddits: + <% is_spam = hasattr(sr, "_spam") and sr._spam %>
  • - ${addremove_button(sr)} - ${plain_link(sr.name, sr.path, _class="title")} - ${permission_icons(sr)} + %if is_multi and is_spam: + ${_("banned_on_multi")} + + ${sr.name} + %elif is_spam: + ${_("banned")} + + ${sr.name} + %else: + ${addremove_button(sr)} + ${plain_link(sr.name, sr.path, _class="title")} + ${permission_icons(sr)} + %endif
  • %endfor