From 242e13df585154a85d253fe6325290403f5c7a37 Mon Sep 17 00:00:00 2001 From: Max Goodman Date: Fri, 12 Jul 2013 15:49:10 -0700 Subject: [PATCH] Factor out global state from NewLink view. --- r2/r2/controllers/front.py | 23 ++++++++++++++--------- r2/r2/lib/pages/pages.py | 25 ++++++++----------------- 2 files changed, 22 insertions(+), 26 deletions(-) diff --git a/r2/r2/controllers/front.py b/r2/r2/controllers/front.py index 7bd973383..7836ad442 100755 --- a/r2/r2/controllers/front.py +++ b/r2/r2/controllers/front.py @@ -940,19 +940,24 @@ class FrontController(RedditController, OAuth2ResourceController): captcha = Captcha() if c.user.needs_captcha() else None - never_show_self = request.get.get('no_self') + newlink = NewLink( + url=url or '', + title=title or '', + text=text or '', + selftext=selftext or '', + captcha=captcha, + resubmit=resubmit, + default_sr=c.site if not c.default_sr else None, + show_link=c.default_sr or c.site.link_type != 'self', + show_self=((c.default_sr or c.site.link_type != 'link') + and not request.get.get('no_self')), + then=then, + ) return FormPage(_("submit"), show_sidebar=True, page_classes=['submit-page'], - content=NewLink(url=url or '', - title=title or '', - text=text or '', - selftext=selftext or '', - captcha=captcha, - resubmit=resubmit, - never_show_self=never_show_self, - then=then)).render() + content=newlink).render() def GET_frame(self): """used for cname support. makes a frame and diff --git a/r2/r2/lib/pages/pages.py b/r2/r2/lib/pages/pages.py index 24e3abd13..f2ce3b1ba 100755 --- a/r2/r2/lib/pages/pages.py +++ b/r2/r2/lib/pages/pages.py @@ -2295,17 +2295,17 @@ class FrameToolbar(Wrapped): class NewLink(Templated): """Render the link submission form""" def __init__(self, captcha=None, url='', title='', text='', selftext='', - then='comments', resubmit=False, never_show_self=False): + then='comments', resubmit=False, default_sr=None, + show_link=True, show_self=True): - self.show_link = self.show_self = False + self.show_link = show_link + self.show_self = show_self tabs = [] - if c.default_sr or c.site.link_type != 'self': + if show_link: tabs.append(('link', ('link-desc', 'url-field'))) - self.show_link = True - if c.default_sr or c.site.link_type != 'link': + if show_self: tabs.append(('text', ('text-desc', 'text-field'))) - self.show_self = not never_show_self if self.show_self and self.show_link: all_fields = set(chain(*(parts for (tab, parts) in tabs))) @@ -2330,10 +2330,7 @@ class NewLink(Templated): self.formtabs_menu = JsNavMenu(buttons, type = 'formtab') self.resubmit = resubmit - if c.default_sr: - self.default_sr = None - else: - self.default_sr = c.site + self.default_sr = default_sr Templated.__init__(self, captcha = captcha, url = url, title = title, text = text, then = then) @@ -4199,13 +4196,7 @@ class SubredditSelector(Templated): self.subreddits = (Subreddit.submit_sr_names(c.user) or Subreddit.submit_sr_names(None)) - if default_sr: - self.default_sr = default_sr - elif subreddits: - self.default_sr = subreddits[0] - else: - self.default_sr = None - + self.default_sr = default_sr self.required = required self.sr_searches = simplejson.dumps( popular_searches(include_over_18=c.over18)