def build_toolbars(self): toolbars = [] if c.user_is_loggedin and c.user.employee: tabs = [ NavButton( _("reddit live"), "/", ), NavButton( _("active"), "/active", ), NavButton( _("live"), "/open", ), NavButton( _("closed"), "/closed", ), ] if c.user_is_admin: tabs.append(NavButton( _("reported"), "/reported", )) toolbars.append(NavMenu( tabs, base_path="/live/", type="tabmenu", )) return toolbars
def build_toolbars(self): toolbars = [] if c.liveupdate_permissions: tabs = [ NavButton( _("updates"), "/", ), ] if c.liveupdate_permissions.allow("settings"): tabs.append(NavButton( _("settings"), "/edit", )) # all contributors should see this so they can leave if they want tabs.append(NavButton( _("contributors"), "/contributors", )) toolbars.append(NavMenu( tabs, base_path="/live/" + c.liveupdate_event._id, type="tabmenu", )) return toolbars
def menus(self): filters = [ NamedButton('all_promos', dest=''), NamedButton('future_promos'), NamedButton('unpaid_promos'), NamedButton('rejected_promos'), NamedButton('pending_promos'), NamedButton('live_promos'), ] menus = [ NavMenu(filters, base_path='/promoted', title='show', type='lightdrop') ] if self.sort == 'live_promos' and c.user_is_sponsor: sr_names = self.subreddits_with_promos() buttons = [NavButton(name, name) for name in sr_names] frontbutton = NavButton('FRONTPAGE', Frontpage.name, aliases=[ '/promoted/live_promos/%s' % urllib.quote(Frontpage.name) ]) buttons.insert(0, frontbutton) buttons.insert(0, NavButton('all', '')) menus.append( NavMenu(buttons, base_path='/promoted/live_promos', title='subreddit', type='lightdrop')) return menus
def menus(self): filters = [ NamedButton('all_promos', dest=''), NamedButton('future_promos'), NamedButton('unpaid_promos'), NamedButton('rejected_promos'), NamedButton('pending_promos'), NamedButton('live_promos'), ] menus = [NavMenu(filters, base_path='/promoted', title='show', type='lightdrop')] if self.sort == 'live_promos' and c.user_is_sponsor: srnames = promote.all_live_promo_srnames() buttons = [NavButton('all', '')] try: srnames.remove(Frontpage.name) frontbutton = NavButton('FRONTPAGE', Frontpage.name, aliases=['/promoted/live_promos/%s' % urllib.quote(Frontpage.name)]) buttons.append(frontbutton) except KeyError: pass srnames = sorted(srnames, key=lambda name: name.lower()) buttons.extend([NavButton(name, name) for name in srnames]) menus.append(NavMenu(buttons, base_path='/promoted/live_promos', title='subreddit', type='lightdrop')) return menus
def menus(self): if self.sort in {'underdelivered', 'reported', 'house', 'fraud'}: menus = [] else: menus = super(SponsorListingController, self).menus menus.append(NavMenu([ QueryButton("exclude managed", dest=None, query_param='include_managed'), QueryButton("include managed", dest="yes", query_param='include_managed'), ], base_path=request.path, type='lightdrop')) if self.sort == 'live_promos': srnames = promote.all_live_promo_srnames() buttons = [NavButton('all', '', use_params=True)] try: srnames.remove(Frontpage.name) frontbutton = NavButton('FRONTPAGE', Frontpage.name, use_params=True, aliases=['/promoted/live_promos/%s' % urllib.quote(Frontpage.name)]) buttons.append(frontbutton) except KeyError: pass srnames = sorted(srnames, key=lambda name: name.lower()) buttons.extend( NavButton(name, name, use_params=True) for name in srnames) base_path = self.base_path + '/live_promos' menus.append(NavMenu(buttons, base_path=base_path, title='subreddit', type='lightdrop')) return menus
def admin_menu(**kwargs): buttons = [ OffsiteButton("traffic", "/traffic"), NavButton(menu.awards, "awards"), NavButton(menu.errors, "error log"), ] admin_menu = NavMenu(buttons, title='admin tools', base_path='/admin', type="lightdrop", **kwargs) return admin_menu
def content(self): about_buttons = [ NavButton(_('about reddit'), '/'), NavButton(_('team'), '/team'), NavButton(_('postcards'), '/postcards'), NavButton(_('alien'), '/alien'), #NavButton(_('guide'), '/guide') ] about_menu = NavMenu(about_buttons, type='tabmenu', base_path='/about/', css_class='about-menu') return self.content_stack([AboutTitle(self.title_msg), about_menu, self._content])
def nav(self): is_moderator = c.user_is_loggedin and \ c.site.is_moderator(c.user) or c.user_is_admin buttons = [NavButton(plurals.moderators, 'moderators')] if c.site.type != 'public': buttons.append(NavButton(plurals.contributors, 'contributors')) if is_moderator: buttons.append(NamedButton('edit')) buttons.extend([NavButton(menu.banusers, 'banned'), NamedButton('spam')]) return [NavMenu(buttons, type = "flatlist", base_path = "/about/")]
def admin_menu(**kwargs): buttons = [ OffsiteButton("traffic", "/traffic"), NavButton(menu.awards, "awards", sr_path=False), NavButton(menu.errors, "error log", sr_path=False), # SAIDIT NavButton(menu.global_user_bans, "globaluserbans", sr_path=False), NavButton(menu.ip_bans, "ipbans", sr_path=False), NavButton(menu.nuke_user_content, "nukecontent", sr_path=False), ] admin_menu = NavMenu(buttons, title='admin tools', base_path='/admin', type="lightdrop", **kwargs) return admin_menu
def header_nav(self): buttons = [NavButton(menu.popular, ""), NamedButton("new")] if c.user_is_admin: buttons.append(NamedButton("banned")) return NavMenu(buttons, base_path = '/categories')
def header_nav(self): path = "/user/%s/" % self.user.name main_buttons = [NavButton(menu.overview, '/', aliases = ['/overview']), NavButton(_('Comments'), 'comments'), NamedButton('submitted')] if votes_visible(self.user): main_buttons += [NamedButton('liked'), NamedButton('disliked'), NamedButton('hidden')] if c.user_is_loggedin and self.user._id == c.user._id: # User is looking at their own page main_buttons.append(NamedButton('drafts')) return NavMenu(main_buttons, base_path = path, title = _('View'), _id='nav', type='navlist')
def nav(self): cloud = Tag.tag_cloud_for_subreddits([c.current_or_default_sr._id]) buttons = [] for tag, weight in cloud: buttons.append(NavButton(tag.name, tag.name, css_class=self.numbers[weight - 1])) return NavMenu(buttons, type="flatlist", separator=' ', base_path='/tag/')
def __init__(self, *args, **kwargs): nav_buttons = [ NavButton(_('overview'), '/advertising'), OffsiteButton(_('getting started'), 'https://reddit.zendesk.com/hc/en-us/articles/205118995-Step-by-step-How-to-create-an-ad'), OffsiteButton(_('audience'), 'https://reddit.zendesk.com/hc/en-us/articles/205183225-Audience-and-Demographics'), OffsiteButton(_('best practices'), 'https://reddit.zendesk.com/hc/en-us/sections/200863319-Best-Practices-Tips'), OffsiteButton(_('help center'), 'https://reddit.zendesk.com/hc/en-us/categories/200352595-Advertising-'), NavButton(_('manage ads'), '/promoted?utm_source=advertising&utm_medium=button&utm_term=manage%20ads&utm_campaign=buttons'), ] self.create_ad_url = '/promoted/new_promo?utm_source=advertising&utm_medium=button&utm_term=create%20ads&utm_campaign=buttons' self.nav_menu = NavMenu(nav_buttons, type='flatlist', base_path='', css_class='advertising-menu', separator=None).render() sections = SelfServeContent.get_all(return_dict=True) self.banner = sections.get('banner') self.info = sections.get('info') self.advertisers = sections.get('advertisers') self.subreddit = sections.get('subreddit') self.help = sections.get('help') blurbs = SelfServeBlurb.get_all(return_dict=True) if 'platform' in blurbs: min_cpm = min([ g.cpm_selfserve_collection.decimal, g.cpm_selfserve.decimal, g.cpm_selfserve_geotarget_metro.decimal, ]) formatted_min_cpm = format_currency(min_cpm, 'USD', locale=c.locale) formatted_min_bid = format_currency(g.min_promote_bid, 'USD', locale=c.locale) blurbs['platform'].text = blurbs['platform'].text.replace( '[min_promote_bid]', formatted_min_bid).replace( '[cpm_selfserve]', formatted_min_cpm) self.blurbs = blurbs.values() self.advertiser_logos = SelfServeAdvertiser.get_all() self.quotes = SelfServeQuote.get_all() self.help_text = None try: self.help_text = WikiPage.get(Frontpage, g.wiki_page_selfserve_help).content except NotFound: pass Templated.__init__(self, *args, **kwargs)
def build_toolbars(self): main_buttons = [NavButton(menu.sitewide, "/"), NamedButton("languages"), NamedButton("adverts")] toolbar = [PageNameNav("nomenu", title=self.title), NavMenu(main_buttons, base_path="/traffic", type="tabmenu")] return toolbar
def __init__(self, nav_menus = None, *a, **kw): #add admin options to the nav_menus if c.user_is_admin: buttons = [] if g.translator: buttons.append(NavButton(menu.i18n, "i18n")) buttons.append(NavButton(menu.awards, "ads")) buttons.append(NavButton(menu.awards, "awards")) buttons.append(NavButton(menu.errors, "error log")) buttons.append(NavButton(menu.usage, "usage stats")) admin_menu = NavMenu(buttons, title='show', base_path = '/admin', type="lightdrop") if nav_menus: nav_menus.insert(0, admin_menu) else: nav_menus = [admin_menu] Reddit.__init__(self, nav_menus = nav_menus, *a, **kw)
def build_toolbars(self): tabs = [ NavButton( _("reddit live"), "/", ), NavButton( _("happening now"), "/happening_now", ), ] if c.user_is_loggedin: tabs.extend((NavButton( _("my live threads"), "/mine", ), )) if c.user_is_loggedin and c.user.employee: tabs.extend([ NavButton( _("active"), "/active", ), NavButton( _("live"), "/open", ), NavButton( _("closed"), "/closed", ), ]) if c.user_is_admin: tabs.extend([ NavButton( _("reported"), "/reported", ), ]) return [NavMenu( tabs, base_path="/live/", type="tabmenu", )]
def __init__(self, *args, **kwargs): nav_buttons = [ NavButton(_('overview'), '/advertising'), NavButton(_('getting started'), '/wiki/selfservenew?utm_source=advertising&utm_medium=button&utm_term=getting%20started&utm_campaign=buttons'), NavButton(_('audience'), '/wiki/mediakit?utm_source=advertising&utm_medium=button&utm_term=audience&utm_campaign=buttons'), NavButton(_('best practices'), '/wiki/selfserve?utm_source=advertising&utm_medium=button&utm_term=best%20practices&utm_campaign=buttons#wiki_what_are_the_best_practices_for_reddit_advertising.3F'), NavButton(_('help center'), '/wiki/selfserve?utm_source=advertising&utm_medium=button&utm_term=help%20center&utm_campaign=buttons'), NavButton(_('manage ads'), '/promoted?utm_source=advertising&utm_medium=button&utm_term=manage%20ads&utm_campaign=buttons'), ] self.create_ad_url = '/promoted/new_promo?utm_source=advertising&utm_medium=button&utm_term=create%20ads&utm_campaign=buttons' self.nav_menu = NavMenu(nav_buttons, type='flatlist', base_path='', css_class='advertising-menu', separator=None).render() sections = SelfServeContent.get_all(return_dict=True) self.banner = sections.get('banner') self.info = sections.get('info') self.advertisers = sections.get('advertisers') self.subreddit = sections.get('subreddit') self.help = sections.get('help') blurbs = SelfServeBlurb.get_all(return_dict=True) if 'platform' in blurbs: formatted_cpm = format_currency(g.cpm_selfserve.decimal, 'USD', locale=c.locale) formatted_min_bid = format_currency(g.min_promote_bid, 'USD', locale=c.locale) blurbs['platform'].text = blurbs['platform'].text.replace( '[min_promote_bid]', formatted_min_bid).replace( '[cpm_selfserve]', formatted_cpm) self.blurbs = blurbs.values() self.advertiser_logos = SelfServeAdvertiser.get_all() self.quotes = SelfServeQuote.get_all() self.help_text = None try: self.help_text = WikiPage.get(Frontpage, g.wiki_page_selfserve_help).content except NotFound: pass Templated.__init__(self, *args, **kwargs)
def header_nav(self): buttons = [NavButton(menu.options, ''), NamedButton('friends'), NamedButton('update'), NamedButton('delete')] return NavMenu(buttons, base_path = "/prefs", _id='nav', type='navlist')
def add_props(cls, user, wrapped): from r2.lib.menus import NavButton from r2.lib.db.thing import Thing from r2.lib.pages import WrappedUser from r2.lib.filters import _force_unicode TITLE_MAX_WIDTH = 50 request_path = request.path target_fullnames = [item.target_fullname for item in wrapped if hasattr(item, 'target_fullname')] targets = Thing._by_fullname(target_fullnames, data=True) authors = Account._byID([t.author_id for t in targets.values() if hasattr(t, 'author_id')], data=True) links = Link._byID([t.link_id for t in targets.values() if hasattr(t, 'link_id')], data=True) sr_ids = set([t.sr_id for t in targets.itervalues() if hasattr(t, 'sr_id')] + [w.sr_id for w in wrapped]) subreddits = Subreddit._byID(sr_ids, data=True) # Assemble target links target_links = {} target_accounts = {} for fullname, target in targets.iteritems(): if isinstance(target, Link): author = authors[target.author_id] title = _force_unicode(target.title) if len(title) > TITLE_MAX_WIDTH: short_title = title[:TITLE_MAX_WIDTH] + '...' else: short_title = title text = '%(link)s "%(title)s" %(by)s %(author)s' % { 'link': _('link'), 'title': short_title, 'by': _('by'), 'author': author.name} path = target.make_permalink(subreddits[target.sr_id]) target_links[fullname] = (text, path, title) elif isinstance(target, Comment): author = authors[target.author_id] link = links[target.link_id] title = _force_unicode(link.title) if len(title) > TITLE_MAX_WIDTH: short_title = title[:TITLE_MAX_WIDTH] + '...' else: short_title = title text = '%(comment)s %(by)s %(author)s %(on)s "%(title)s"' % { 'comment': _('comment'), 'by': _('by'), 'author': author.name, 'on': _('on'), 'title': short_title} path = target.make_permalink(link, subreddits[link.sr_id]) target_links[fullname] = (text, path, title) elif isinstance(target, Account): target_accounts[fullname] = WrappedUser(target) for item in wrapped: # Can I move these buttons somewhere else? Not great to have request stuff in here css_class = 'modactions %s' % item.action item.button = NavButton('', item.action, opt='type', css_class=css_class) item.button.build(base_path=request_path) mod_name = item.author.name item.mod = NavButton(mod_name, mod_name, opt='mod') item.mod.build(base_path=request_path) item.text = ModAction._text.get(item.action, '') item.details = item.get_extra_text() if hasattr(item, 'target_fullname') and item.target_fullname: target = targets[item.target_fullname] if isinstance(target, Account): item.target_wrapped_user = target_accounts[item.target_fullname] elif isinstance(target, Link) or isinstance(target, Comment): item.target_text, item.target_path, item.target_title = target_links[item.target_fullname] item.bgcolor = ModAction.get_rgb(item.sr_id) item.sr_name = subreddits[item.sr_id].name item.sr_path = subreddits[item.sr_id].path Printable.add_props(user, wrapped)