diff --git a/src/interface/models.py b/src/interface/models.py index 3d1e013..a6e6c67 100755 --- a/src/interface/models.py +++ b/src/interface/models.py @@ -133,8 +133,7 @@ class Favorites(models.Model): db_table = "favorites" def __str__(self): - pass - # return self.book + return self.book book = models.ForeignKey(Books, on_delete=models.CASCADE) user = models.ForeignKey( diff --git a/src/interface/static/css/main.css b/src/interface/static/css/main.css index 1c954a2..a60fd50 100644 --- a/src/interface/static/css/main.css +++ b/src/interface/static/css/main.css @@ -541,6 +541,10 @@ a.book_link { padding: 5px 10px 5px 10px; } +.favorite { + color: #a7ff00 !important; +} + .controls { cursor: pointer; } diff --git a/src/interface/static/css/main.scss b/src/interface/static/css/main.scss index 053fa94..0aa1b1d 100755 --- a/src/interface/static/css/main.scss +++ b/src/interface/static/css/main.scss @@ -552,6 +552,9 @@ a.book_link { font-size: x-large; padding: 5px 10px 5px 10px; } +.favorite{ + color: #a7ff00 !important; +} .controls{ cursor: pointer; } diff --git a/src/interface/templates/index.html b/src/interface/templates/index.html index 78457a9..af992a1 100755 --- a/src/interface/templates/index.html +++ b/src/interface/templates/index.html @@ -98,7 +98,11 @@
  • Tags: {{ book.tags }}
  • - + {% if book.is_favorite %} + + {% else %} + + {% endif %} diff --git a/src/interface/views.py b/src/interface/views.py index 3eaf61b..4a79b0d 100755 --- a/src/interface/views.py +++ b/src/interface/views.py @@ -153,7 +153,7 @@ def prev_page(request, bookset, query=None, _limit=None, _order='title'): ) -def book_set(_order, _limit=None, _set=1, _flip=False): +def book_set(request, _order, _limit=None, _set=1, _flip=False): """ Get books results by set # """ @@ -165,6 +165,15 @@ def book_set(_order, _limit=None, _set=1, _flip=False): books = Books.objects.all().order_by(_order).reverse()[_set_min:_set_max] else: books = Books.objects.all().order_by(_order)[_set_min:_set_max] + try: + favorites = Favorites.objects.filter(user=request.user) + except Exception as e: breakpoint() + for book in books: + for favorite in favorites: + if book == favorite.book: + book.is_favorite = True + break + else: book.is_favorite = False return books @@ -221,9 +230,13 @@ def favorite(request, pk): """ Add book to favorites bu primary key """ - f = Favorites(book=Books.objects.get(pk=pk)) - f.user = request.user - f.save() + _d = Favorites.objects.filter(user=request.user, book=Books.objects.get(pk=pk)) + if len(_d) == 1: + _d.delete() + return redirect('home') + _f = Favorites(book=Books.objects.get(pk=pk)) + _f.user = request.user + _f.save() return redirect('home') @@ -335,8 +348,8 @@ def payload(request, query, _set, _limit, _order, **kwargs): _set_min = _set_max - _limit _now_showing = "%s-%s"%(_set_min, _set_max) if request.session['ascending']: - _r = book_set(_order, _limit, _set) - else: _r = book_set(_order, _limit, _set, True) + _r = book_set(request, _order, _limit, _set) + else: _r = book_set(request, _order, _limit, _set, True) _r_len, _search = None, None except KeyError: _set = int(_set) @@ -373,8 +386,8 @@ def payload(request, query, _set, _limit, _order, **kwargs): _results.count() except KeyError: if request.session['ascending']: - _r = book_set(_order, _limit, _set) - else: _r = book_set(_order, _limit, _set, True) + _r = book_set(request, _order, _limit, _set) + else: _r = book_set(request, _order, _limit, _set, True) _r_len, _search = None, None _bookstats, _collectionstats, _collectionobject = \