mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-04-05 03:00:15 -04:00
Preserve the originally attempted url and subreddit when resubmitting a link.
This commit is contained in:
@@ -482,7 +482,7 @@ class ApiController(RedditController):
|
||||
if links:
|
||||
c.errors.add(errors.ALREADY_SUB, field='url')
|
||||
form.has_errors('url', errors.ALREADY_SUB)
|
||||
u = links[0].already_submitted_link
|
||||
u = links[0].already_submitted_link(url)
|
||||
if extension:
|
||||
u = UrlParser(u)
|
||||
u.set_extension(extension)
|
||||
|
||||
@@ -299,7 +299,10 @@ class FrontController(RedditController):
|
||||
# check if we just came from the submit page
|
||||
infotext = None
|
||||
if request.GET.get('already_submitted'):
|
||||
infotext = strings.already_submitted % article.resubmit_link()
|
||||
submit_url = request.GET.get('submit_url') or article.url
|
||||
resubmit_url = Link.resubmit_link(submit_url)
|
||||
sr_resubmit_url = add_sr(resubmit_url)
|
||||
infotext = strings.already_submitted % sr_resubmit_url
|
||||
|
||||
check_cheating('comments')
|
||||
|
||||
@@ -1007,13 +1010,17 @@ class FrontController(RedditController):
|
||||
links = listing.things
|
||||
|
||||
if links and len(links) == 1:
|
||||
return self.redirect(links[0].already_submitted_link)
|
||||
# redirect the user to the existing link's comments
|
||||
existing_submission_url = links[0].already_submitted_link(url)
|
||||
return self.redirect(existing_submission_url)
|
||||
elif links:
|
||||
infotext = (strings.multiple_submitted
|
||||
% links[0].resubmit_link())
|
||||
res = BoringPage(_("seen it"),
|
||||
content=listing,
|
||||
infotext=infotext).render()
|
||||
# show the user a listing of all the other links with this url
|
||||
# an infotext to resubmit it
|
||||
resubmit_url = Link.resubmit_link(url)
|
||||
sr_resubmit_url = add_sr(resubmit_url)
|
||||
infotext = strings.multiple_submitted % sr_resubmit_url
|
||||
res = BoringPage(
|
||||
_("seen it"), content=listing, infotext=infotext).render()
|
||||
return res
|
||||
|
||||
if not c.user_is_loggedin:
|
||||
|
||||
@@ -146,15 +146,17 @@ class Link(Thing, Printable):
|
||||
LinksByUrl._set_values(LinksByUrl._key_from_url(self.url),
|
||||
{self._id36: ''})
|
||||
|
||||
@property
|
||||
def already_submitted_link(self):
|
||||
return self.make_permalink_slow() + '?already_submitted=true'
|
||||
def already_submitted_link(self, url):
|
||||
permalink = self.make_permalink_slow()
|
||||
p = UrlParser(permalink)
|
||||
p.update_query(already_submitted="true", submit_url=url)
|
||||
return p.unparse()
|
||||
|
||||
def resubmit_link(self, sr_url=False):
|
||||
submit_url = self.subreddit_slow.path if sr_url else '/'
|
||||
submit_url += 'submit?resubmit=true&url='
|
||||
submit_url += url_escape(_force_unicode(self.url))
|
||||
return submit_url
|
||||
@classmethod
|
||||
def resubmit_link(cls, url):
|
||||
p = UrlParser("/submit")
|
||||
p.update_query(resubmit="true", url=url)
|
||||
return p.unparse()
|
||||
|
||||
@classmethod
|
||||
def _choose_comment_tree_version(cls):
|
||||
|
||||
Reference in New Issue
Block a user