mirror of
https://github.com/th3r00t/pyShelf.git
synced 2026-04-28 01:59:35 -04:00
Toggling of Favorites, and frontend state display complete
This commit is contained in:
@@ -133,8 +133,7 @@ class Favorites(models.Model):
|
|||||||
db_table = "favorites"
|
db_table = "favorites"
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
pass
|
return self.book
|
||||||
# return self.book
|
|
||||||
|
|
||||||
book = models.ForeignKey(Books, on_delete=models.CASCADE)
|
book = models.ForeignKey(Books, on_delete=models.CASCADE)
|
||||||
user = models.ForeignKey(
|
user = models.ForeignKey(
|
||||||
|
|||||||
4
src/interface/static/css/main.css
vendored
4
src/interface/static/css/main.css
vendored
@@ -541,6 +541,10 @@ a.book_link {
|
|||||||
padding: 5px 10px 5px 10px;
|
padding: 5px 10px 5px 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.favorite {
|
||||||
|
color: #a7ff00 !important;
|
||||||
|
}
|
||||||
|
|
||||||
.controls {
|
.controls {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|||||||
3
src/interface/static/css/main.scss
vendored
3
src/interface/static/css/main.scss
vendored
@@ -552,6 +552,9 @@ a.book_link {
|
|||||||
font-size: x-large;
|
font-size: x-large;
|
||||||
padding: 5px 10px 5px 10px;
|
padding: 5px 10px 5px 10px;
|
||||||
}
|
}
|
||||||
|
.favorite{
|
||||||
|
color: #a7ff00 !important;
|
||||||
|
}
|
||||||
.controls{
|
.controls{
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|||||||
6
src/interface/templates/index.html
vendored
6
src/interface/templates/index.html
vendored
@@ -98,7 +98,11 @@
|
|||||||
<li class="book_tags">Tags: {{ book.tags }}</li>
|
<li class="book_tags">Tags: {{ book.tags }}</li>
|
||||||
<li class="book_controls">
|
<li class="book_controls">
|
||||||
<span class="favorite-button controls favorite_action">
|
<span class="favorite-button controls favorite_action">
|
||||||
<a href="{% url 'favorite' pk=book.pk %}" class="book_link"><i class="fas fa-thumbs-up icon"></i></a>
|
{% if book.is_favorite %}
|
||||||
|
<a href="{% url 'favorite' pk=book.pk %}" class="book_link favorite"><i class="fas fa-thumbs-up icon"></i></a>
|
||||||
|
{% else %}
|
||||||
|
<a href="{% url 'favorite' pk=book.pk %}" class="book_link not_favorite"><i class="fas fa-thumbs-up icon"></i></a>
|
||||||
|
{% endif %}
|
||||||
</span>
|
</span>
|
||||||
<span class="download-button controls">
|
<span class="download-button controls">
|
||||||
<a href="{% url 'download' pk=book.pk %}" class="book_link"><i class="fas fa-book icon"></i></a>
|
<a href="{% url 'download' pk=book.pk %}" class="book_link"><i class="fas fa-book icon"></i></a>
|
||||||
|
|||||||
@@ -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 #
|
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]
|
books = Books.objects.all().order_by(_order).reverse()[_set_min:_set_max]
|
||||||
else:
|
else:
|
||||||
books = Books.objects.all().order_by(_order)[_set_min:_set_max]
|
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
|
return books
|
||||||
|
|
||||||
|
|
||||||
@@ -221,9 +230,13 @@ def favorite(request, pk):
|
|||||||
"""
|
"""
|
||||||
Add book to favorites bu primary key
|
Add book to favorites bu primary key
|
||||||
"""
|
"""
|
||||||
f = Favorites(book=Books.objects.get(pk=pk))
|
_d = Favorites.objects.filter(user=request.user, book=Books.objects.get(pk=pk))
|
||||||
f.user = request.user
|
if len(_d) == 1:
|
||||||
f.save()
|
_d.delete()
|
||||||
|
return redirect('home')
|
||||||
|
_f = Favorites(book=Books.objects.get(pk=pk))
|
||||||
|
_f.user = request.user
|
||||||
|
_f.save()
|
||||||
return redirect('home')
|
return redirect('home')
|
||||||
|
|
||||||
|
|
||||||
@@ -335,8 +348,8 @@ def payload(request, query, _set, _limit, _order, **kwargs):
|
|||||||
_set_min = _set_max - _limit
|
_set_min = _set_max - _limit
|
||||||
_now_showing = "%s-%s"%(_set_min, _set_max)
|
_now_showing = "%s-%s"%(_set_min, _set_max)
|
||||||
if request.session['ascending']:
|
if request.session['ascending']:
|
||||||
_r = book_set(_order, _limit, _set)
|
_r = book_set(request, _order, _limit, _set)
|
||||||
else: _r = book_set(_order, _limit, _set, True)
|
else: _r = book_set(request, _order, _limit, _set, True)
|
||||||
_r_len, _search = None, None
|
_r_len, _search = None, None
|
||||||
except KeyError:
|
except KeyError:
|
||||||
_set = int(_set)
|
_set = int(_set)
|
||||||
@@ -373,8 +386,8 @@ def payload(request, query, _set, _limit, _order, **kwargs):
|
|||||||
_results.count()
|
_results.count()
|
||||||
except KeyError:
|
except KeyError:
|
||||||
if request.session['ascending']:
|
if request.session['ascending']:
|
||||||
_r = book_set(_order, _limit, _set)
|
_r = book_set(request, _order, _limit, _set)
|
||||||
else: _r = book_set(_order, _limit, _set, True)
|
else: _r = book_set(request, _order, _limit, _set, True)
|
||||||
_r_len, _search = None, None
|
_r_len, _search = None, None
|
||||||
|
|
||||||
_bookstats, _collectionstats, _collectionobject = \
|
_bookstats, _collectionstats, _collectionobject = \
|
||||||
|
|||||||
Reference in New Issue
Block a user