Skip to content

Commit

Permalink
Switch bookmark submit page to class based view
Browse files Browse the repository at this point in the history
Also add a simple template to allow going to home page or back where you
came from, refs: Linkuist#15
  • Loading branch information
EvaSDK committed Jul 3, 2016
1 parent 4023ecf commit 2dbf652
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 20 deletions.
2 changes: 1 addition & 1 deletion collectr/collector/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@
from collector import views

urlpatterns = patterns('',
url(r'^bookmark/(?P<username>\w+)/$', views.secret_bookmark, name="bookmark"),
url(r'^bookmark/(?P<username>\w+)/$', views.SubmitBookmarkView.as_view(), name="bookmark"),
)

52 changes: 33 additions & 19 deletions collectr/collector/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@

# django
from django.conf import settings
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User
from django.http import HttpResponse
from django.shortcuts import redirect
from django.template.response import TemplateResponse
from django.views.generic import TemplateView

# rq
from redis import Redis
Expand All @@ -15,24 +15,38 @@
from semantism.process import index_url


def secret_bookmark(request, username):
url = request.GET.get('url')
link_from = request.GET.get('from')
source = request.GET.get('source')
token = request.GET.get('token')
class AcceptTemplateResponse(TemplateResponse):
"""`TemplateResponse` that returns with 202 Accept status code."""
status_code = 202

if None in (url, link_from, source, token):
return HttpResponse(status=400)

try:
user = User.objects.get(username=username, userprofile__token=token)
except User.DoesNotExist:
return HttpResponse(status=403)
class SubmitBookmarkView(TemplateView):

with Connection(Redis(**settings.RQ_DATABASE)):
links_queue = Queue('link_indexing')
links_queue.enqueue_call(func=index_url,
args=(url, user.id, datetime.now(), link_from, source), timeout=60
)
response_class = AcceptTemplateResponse
template_name = 'collector/bookmark_submit.html'

def get(self, request, *args, **kwargs):
url = request.GET.get('url')
link_from = request.GET.get('from')
source = request.GET.get('source')
token = request.GET.get('token')

if None in (url, link_from, source, token):
return HttpResponse(status=400)

try:
user = User.objects.get(username=username,
userprofile__token=token)
except User.DoesNotExist:
return HttpResponse(status=403)

with Connection(Redis(**settings.RQ_DATABASE)):
links_queue = Queue('link_indexing')
links_queue.enqueue_call(
func=index_url,
args=(url, user.id, datetime.now(), link_from, source),
timeout=60
)

return super(SubmitBookmarkView, self).get(request, *args, **kwargs)

return HttpResponse(status=201)
18 changes: 18 additions & 0 deletions collectr/templates/collector/bookmark_submit.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{% extends "base.html" %}
{% load i18n %}

{% block title %} - Bookmark submission{% endblock title %}

{% block container-fluid %}

<div class="hero-unit">
<h1>Bookmark submitted</h1>
<p>
{% blocktrans %}Your bookmark has been submitted and will be processed shorlty.{% endblocktrans %}
</p>
<p>
{%blocktrans %}Once processed, it will appear on your <a href="{% url "home" %}">Home page</a>. In the meantime, you may <a href="javascript:history.back()">go back</a> to where you came from to continue reading.{%endblocktrans %}
</p>
</div>

{% endblock container-fluid %}

0 comments on commit 2dbf652

Please sign in to comment.