Don't choke on banned sr in multireddit.

This commit is contained in:
Brian Simpson
2011-08-17 11:45:03 -07:00
parent 86eef859ec
commit aae7a5a64d
2 changed files with 29 additions and 8 deletions

View File

@@ -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)

View File

@@ -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)
%>
<div class="subscription-box">
% if thing.prelink or thing.goldlink:
<div class="box-top">
@@ -45,10 +50,21 @@
% endif
<ul>
%for sr in thing.reddits:
<% is_spam = hasattr(sr, "_spam") and sr._spam %>
<li>
${addremove_button(sr)}
${plain_link(sr.name, sr.path, _class="title")}
${permission_icons(sr)}
%if is_multi and is_spam:
${_("banned_on_multi")}
&#32;
${sr.name}
%elif is_spam:
${_("banned")}
&#32;
${sr.name}
%else:
${addremove_button(sr)}
${plain_link(sr.name, sr.path, _class="title")}
${permission_icons(sr)}
%endif
</li>
%endfor
</ul>