Add a bookmarklet

The bookmarklet lets you quickly open the Add page
with the URL already populated in the URLs box.
This commit is contained in:
Adam Wolf 2020-10-03 14:57:55 -05:00
parent b18bbf8874
commit 8d3295458c
2 changed files with 17 additions and 0 deletions

View file

@ -114,12 +114,23 @@ class AddView(UserPassesTestMixin, FormView):
template_name = "add_links.html"
form_class = AddLinkForm
def get_initial(self):
"""Prefill the AddLinkForm with the 'url' GET parameter"""
if self.request.method == 'GET':
url = self.request.GET.get('url', None)
if url:
return {'url': url}
else:
return super().get_initial()
def test_func(self):
return PUBLIC_ADD_VIEW or self.request.user.is_authenticated
def get_context_data(self, *args, **kwargs):
context = super().get_context_data(*args, **kwargs)
context["title"] = "Add URLs"
# We can't just call request.build_absolute_uri in the template, because it would include query parameters
context["absolute_add_path"] = self.request.build_absolute_uri(self.request.path)
return context
def form_valid(self, form):