def GET_editreddit(self, location, num, after, reverse, count): """Edit reddit form.""" if isinstance(c.site, FakeSubreddit): return self.abort404() # moderator is either reddit's moderator or an admin is_moderator = c.user_is_loggedin and c.site.is_moderator(c.user) or c.user_is_admin if is_moderator and location == 'edit': pane = CreateSubreddit(site = c.site, listings = ListingController.listing_names()) elif location == 'moderators': pane = ModList(editable = is_moderator) elif is_moderator and location == 'banned': pane = BannedList(editable = is_moderator) elif location == 'contributors' and c.site.type != 'public': pane = ContributorList(editable = is_moderator) elif (location == 'stylesheet' and c.site.can_change_stylesheet(c.user) and not g.css_killswitch): if hasattr(c.site,'stylesheet_contents_user') and c.site.stylesheet_contents_user: stylesheet_contents = c.site.stylesheet_contents_user elif hasattr(c.site,'stylesheet_contents') and c.site.stylesheet_contents: stylesheet_contents = c.site.stylesheet_contents else: stylesheet_contents = '' pane = SubredditStylesheet(site = c.site, stylesheet_contents = stylesheet_contents) elif is_moderator and location == 'reports': links = Link._query(Link.c.reported != 0, Link.c._spam == False) comments = Comment._query(Comment.c.reported != 0, Comment.c._spam == False) query = thing.Merge((links, comments), Link.c.sr_id == c.site._id, sort = desc('_date'), data = True) builder = QueryBuilder(query, num = num, after = after, count = count, reverse = reverse, wrap = ListingController.builder_wrapper) listing = LinkListing(builder) pane = listing.listing() elif is_moderator and location == 'spam': links = Link._query(Link.c._spam == True) comments = Comment._query(Comment.c._spam == True) query = thing.Merge((links, comments), Link.c.sr_id == c.site._id, sort = desc('_date'), data = True) builder = QueryBuilder(query, num = num, after = after, count = count, reverse = reverse, wrap = ListingController.builder_wrapper) listing = LinkListing(builder) pane = listing.listing() else: return self.abort404() return EditReddit(content = pane).render()
def GET_newreddit(self, name): """Create a reddit form""" title = _('Create a category') content=CreateSubreddit(name = name or '', listings = ListingController.listing_names()) res = FormPage(_("Create a category"), content = content, ).render() return res
def GET_editreddit(self, location, num, after, reverse, count): """Edit reddit form.""" if isinstance(c.site, FakeSubreddit): return self.abort404() # moderator is either reddit's moderator or an admin is_moderator = c.user_is_loggedin and c.site.is_moderator( c.user) or c.user_is_admin if is_moderator and location == 'edit': pane = CreateSubreddit(site=c.site, listings=ListingController.listing_names()) elif location == 'moderators': pane = ModList(editable=is_moderator) elif location == 'editors': pane = EditorList(editable=c.user_is_admin) elif is_moderator and location == 'banned': pane = BannedList(editable=is_moderator) elif location == 'contributors' and c.site.type != 'public': pane = ContributorList(editable=is_moderator) elif (location == 'stylesheet' and c.site.can_change_stylesheet(c.user) and not g.css_killswitch): if hasattr(c.site, 'stylesheet_contents_user' ) and c.site.stylesheet_contents_user: stylesheet_contents = c.site.stylesheet_contents_user elif hasattr(c.site, 'stylesheet_contents') and c.site.stylesheet_contents: stylesheet_contents = c.site.stylesheet_contents else: stylesheet_contents = '' pane = SubredditStylesheet(site=c.site, stylesheet_contents=stylesheet_contents) elif is_moderator and location == 'reports': links = Link._query(Link.c.reported != 0, Link.c._spam == False) comments = Comment._query(Comment.c.reported != 0, Comment.c._spam == False) query = thing.Merge((links, comments), Link.c.sr_id == c.site._id, sort=desc('_date'), data=True) builder = QueryBuilder(query, num=num, after=after, count=count, reverse=reverse, wrap=ListingController.builder_wrapper) listing = LinkListing(builder) pane = listing.listing() elif is_moderator and location == 'spam': links = Link._query(Link.c._spam == True) comments = Comment._query(Comment.c._spam == True) query = thing.Merge((links, comments), Link.c.sr_id == c.site._id, sort=desc('_date'), data=True) builder = QueryBuilder(query, num=num, after=after, count=count, reverse=reverse, wrap=ListingController.builder_wrapper) listing = LinkListing(builder) pane = listing.listing() else: return self.abort404() return EditReddit(content=pane).render()