# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
#
from django.shortcuts import render, get_object_or_404, redirect
-from django.http import HttpResponseForbidden
+from django.http import HttpResponseForbidden, JsonResponse
from django.contrib.auth.decorators import login_required
-#~ from django.utils.datastructures import SortedDict
from django.views.decorators.http import require_POST
-#~ from django.contrib import auth
-#~ from django.views.decorators import cache
-from django.utils.translation import ugettext as _
-from ajaxable.utils import LazyEncoder, JSONResponse, AjaxableFormView
+from ajaxable.utils import AjaxableFormView
-from catalogue.models import Book, Tag
+from catalogue.models import Book
+from ssify import ssi_included
from social import forms
+from .models import Cite
from social.utils import get_set, likes, set_sets
set_sets(request.user, book, [tag])
if request.is_ajax():
- return JSONResponse({"success": True, "msg": "ok", "like": True})
+ return JsonResponse({"success": True, "msg": "ok", "like": True})
else:
return redirect(book)
return (obj, request.user), {}
+@require_POST
def unlike_book(request, slug):
+ if not request.user.is_authenticated():
+ return HttpResponseForbidden('Login required.')
book = get_object_or_404(Book, slug=slug)
if likes(request.user, book):
set_sets(request.user, book, [])
if request.is_ajax():
- return JSONResponse({"success": True, "msg": "ok", "like": False})
+ return JsonResponse({"success": True, "msg": "ok", "like": False})
else:
return redirect(book)
+
+
+@ssi_included
+def cite(request, pk, main=False):
+ cite = get_object_or_404(Cite, pk=pk)
+ return render(request, 'social/cite_promo.html', {
+ 'main': main,
+ 'cite': cite,
+ })
+
+
+@ssi_included(use_lang=False)
+def cite_info(request, pk):
+ cite = get_object_or_404(Cite, pk=pk)
+ return render(request, 'social/cite_info.html', {
+ 'cite': cite,
+ })