X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/7583035c199c378c8d019937d155992709536b91..0bd2f26c7d4a349bf9ae9377a945baf39d28af00:/apps/social/views.py diff --git a/apps/social/views.py b/apps/social/views.py index 27769d740..49c9b708a 100644 --- a/apps/social/views.py +++ b/apps/social/views.py @@ -3,18 +3,16 @@ # 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 @@ -33,7 +31,7 @@ def like_book(request, slug): 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) @@ -61,12 +59,32 @@ class ObjectSetsFormView(AjaxableFormView): 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, + })