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 = \