From d666ce770b898f8a1f80fa9a593cbeac741f19d9 Mon Sep 17 00:00:00 2001 From: Huynh Thi Khanh Linh Date: Sun, 19 Jun 2022 23:47:39 +0700 Subject: [PATCH] :zap: toggle favorite --- books/views.py | 21 ++++++++++++++++++--- db.sqlite3 | Bin 262144 -> 262144 bytes templates/library/books/detail.html | 25 ++++++++++++++++++++----- 3 files changed, 38 insertions(+), 8 deletions(-) diff --git a/books/views.py b/books/views.py index e8bbc4d..c6280cf 100644 --- a/books/views.py +++ b/books/views.py @@ -19,7 +19,12 @@ def book_all(request): def book_detail(request, slug): book = get_object_or_404(Book, slug=slug) - return render(request, 'library/books/detail.html', {'book': book}) + is_favourite = book.favourite.filter(id=request.user.id).exists() + context = { + 'book': book, + 'is_favourite': is_favourite, + } + return render(request, 'library/books/detail.html', context) def book_filter_by_category(request, slug): @@ -50,7 +55,12 @@ def favourite_add(request): book = get_object_or_404(Book, id=book_id) book.favourite.add(request.user) favourite_quantity = request.user.favourite_books.all().count() - response = JsonResponse({'favourite_quantity': favourite_quantity}) + is_favourite = book.favourite.filter(id=request.user.id).exists() + context = { + 'favourite_quantity': favourite_quantity, + 'is_favourite': is_favourite, + } + response = JsonResponse(context) return response @@ -60,5 +70,10 @@ def favourite_delete(request): book = get_object_or_404(Book, id=book_id) book.favourite.remove(request.user) favourite_quantity = request.user.favourite_books.all().count() - response = JsonResponse({'favourite_quantity': favourite_quantity}) + is_favourite = book.favourite.filter(id=request.user.id).exists() + context = { + 'favourite_quantity': favourite_quantity, + 'is_favourite': is_favourite, + } + response = JsonResponse(context) return response diff --git a/db.sqlite3 b/db.sqlite3 index 31220c4638cd5514c03451ea4e8270fe679fa87c..498fb2da3773eb7b570ee34fbf96c436f3a4ec54 100644 GIT binary patch delta 814 zcmaiyTS!xJ9LLW&+nG&lKL_EQ4KdWB=&a+}NZA%r z3v&p3gH3n`uV5AK!xLD7d6s%lZuN<@NQ)=B-!) zn%Ode)P(a;HkZ@JCQci~oJu8yb->yVeHNj{o+ZUliIfm3k6Pb~?LK}*V1r@>aH5YcZ{-42WloVY!62M-{ zc39jc1b(uk{R|&i%s23q{c8;>P$@U}Vz)pBI|y##^Mq)X6t9xvRZ_P1jX2iAk@9bj zU=rT#x`%9!C(FJO%vLwC&p92{Pqj*L=d@4%KSp`fmOamyM%`mMy~hyM8m(Psztcwe z)ZL^d<<4DH8okDWq$O#$Mmrs$!Lt+-zC`E9uFz1*<ilN%ufHsBjFr{rx$ci*kom;qGLgH{eajDR(MrA-jeRl+Q7c%UCYh(-EWE6N$yO zgww6>_ZdBQV}?o-iCAh#&zS84q0Ve9lqEb4Q;G>HbRBUj8;a`!sZnc+93Bljl4>vG z_gaE(D{WTj2_|aq3=SIlQij+WmD<>C%8XGYMG+)Tkct-e?*HC7w~ot|ajaY!=c%Xu E0HxjQEC2ui delta 750 zcmaiyT}V>_6vywq+suXSObA^hvdV})Ht)UL{n&b_yX$OhZc}e_>5E>sX>IO9x4G?t zINU=}kfqSxi=a1&J?u%TpaLy1LhZwP=mQFiqKN3j?7D|~?C~5pzw`h9&&lVt`Mmbx zZZvYKfkz`Z`qqtTU8$}4=`jsuB?zmDF%lGEA;@WSd|Gbdtkp~yX@)jaWNA5Wz;$lqm}ce1%nb1q<*_*6|U3%GG0dG|g!bl^t5F05vLw%-BLy>7cj@Sd&tzK-J|< zz;@s}VGSIxPxD0cTNBnyYV0rtQ>8un{hFfPgB{eT=#)4VO-VU15sO*qNNzaFnxr5@ zg%eUZN1MtQJlJ{dzu0JsWr*T|UhG-JimYx4fnV@VPU!=@g_p1-Z(BkRBS^Wi54!@z zo6QPsMP9{WmF#aVj_H*Og<5?%fz>On)!deS94-42n6qYF?Jk74iHW`SDtAHP{-?|s za%Q{2ElF=C$93337TzJW4jRNBHzRomdwdR?&>;v(F&Ph<*;LvW7Cln?s3bVkqS@5% zvZn)XCYj6R=w3hWq=#Z6H{R>Ekqnik{ZxQreeI{6S%RfUqHO>0023r^S)vU;(dkON zao&Hjt;6PYkx7fIdsMLbgPb=VN!T4xTmMin=xa^z5oc#B&(kfIv?SRA-J)kCX(i%h zMr^kRGO380ljpqlkgMyAC*fyP0-F{LVJ{y$mE>`DI8C`m$#8IhBXN>6;EVw`>50Fu RTe-p6`7x|KKc=83{s5lP
-