X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/6280673f35e13e75e81c5b7821bd2a44a1831eab..357027375ff8867f42ca34bcbfb5a78b5b185fc3:/apps/social/views.py diff --git a/apps/social/views.py b/apps/social/views.py deleted file mode 100644 index 49c9b708a..000000000 --- a/apps/social/views.py +++ /dev/null @@ -1,90 +0,0 @@ -# -*- coding: utf-8 -*- -# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. -# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. -# -from django.shortcuts import render, get_object_or_404, redirect -from django.http import HttpResponseForbidden, JsonResponse -from django.contrib.auth.decorators import login_required -from django.views.decorators.http import require_POST - -from ajaxable.utils import AjaxableFormView - -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 - - -# ==================== -# = Shelf management = -# ==================== - - -@require_POST -def like_book(request, slug): - if not request.user.is_authenticated(): - return HttpResponseForbidden('Login required.') - book = get_object_or_404(Book, slug=slug) - if not likes(request.user, book): - tag = get_set(request.user, '') - set_sets(request.user, book, [tag]) - - if request.is_ajax(): - return JsonResponse({"success": True, "msg": "ok", "like": True}) - else: - return redirect(book) - - -@login_required -def my_shelf(request): - books = Book.tagged.with_any(request.user.tag_set.all()) - return render(request, 'social/my_shelf.html', locals()) - - -class ObjectSetsFormView(AjaxableFormView): - form_class = forms.ObjectSetsForm - placeholdize = True - template = 'social/sets_form.html' - ajax_redirect = True - POST_login = True - - def get_object(self, request, slug): - return get_object_or_404(Book, slug=slug) - - def context_description(self, request, obj): - return obj.pretty_title() - - def form_args(self, request, obj): - 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}) - 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, - })