mirror of
https://github.com/bookwyrm-social/bookwyrm.git
synced 2024-11-27 12:01:14 +00:00
Separate ratings out from reviews on book page
This commit is contained in:
parent
5c7f44dc2d
commit
0ab07c41ef
3 changed files with 33 additions and 18 deletions
|
@ -1,5 +1,6 @@
|
||||||
{% extends 'layout.html' %}
|
{% extends 'layout.html' %}
|
||||||
{% load fr_display %}
|
{% load fr_display %}
|
||||||
|
{% load humanize %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<div class="block">
|
<div class="block">
|
||||||
|
@ -89,12 +90,36 @@
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div>
|
<div class="block">
|
||||||
{% for review in reviews %}
|
{% for review in reviews %}
|
||||||
<div class="block">
|
<div class="block">
|
||||||
{% include 'snippets/status.html' with status=review hide_book=True depth=1 %}
|
{% include 'snippets/status.html' with status=review hide_book=True depth=1 %}
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
<div class="block columns">
|
||||||
|
{% for rating in ratings %}
|
||||||
|
<div class="column">
|
||||||
|
<div class="media">
|
||||||
|
<div class="media-left">{% include 'snippets/avatar.html' %}</div>
|
||||||
|
<div class="media-content">
|
||||||
|
<div>
|
||||||
|
{% include 'snippets/username.html' %}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="field is-grouped mb-0">
|
||||||
|
<div>rated it</div>
|
||||||
|
{% include 'snippets/stars.html' with rating=rating.rating %}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<a href="{{ rating.remote_id }}">{{ rating.published_date | naturaltime }}</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -67,8 +67,6 @@ urlpatterns = [
|
||||||
|
|
||||||
# books
|
# books
|
||||||
re_path(r'%s(.json)?/?$' % book_path, views.book_page),
|
re_path(r'%s(.json)?/?$' % book_path, views.book_page),
|
||||||
re_path(r'%s/(?P<tab>friends|local|federated)?$' % \
|
|
||||||
book_path, views.book_page),
|
|
||||||
re_path(r'%s/edit/?$' % book_path, views.edit_book_page),
|
re_path(r'%s/edit/?$' % book_path, views.edit_book_page),
|
||||||
re_path(r'^editions/(?P<work_id>\d+)/?$', views.editions_page),
|
re_path(r'^editions/(?P<work_id>\d+)/?$', views.editions_page),
|
||||||
|
|
||||||
|
|
|
@ -417,7 +417,7 @@ def edit_profile_page(request):
|
||||||
return TemplateResponse(request, 'edit_user.html', data)
|
return TemplateResponse(request, 'edit_user.html', data)
|
||||||
|
|
||||||
|
|
||||||
def book_page(request, book_id, tab='friends'):
|
def book_page(request, book_id):
|
||||||
''' info about a book '''
|
''' info about a book '''
|
||||||
book = models.Book.objects.select_subclasses().get(id=book_id)
|
book = models.Book.objects.select_subclasses().get(id=book_id)
|
||||||
if is_api_request(request):
|
if is_api_request(request):
|
||||||
|
@ -432,23 +432,15 @@ def book_page(request, book_id, tab='friends'):
|
||||||
if not work:
|
if not work:
|
||||||
return HttpResponseNotFound()
|
return HttpResponseNotFound()
|
||||||
|
|
||||||
book_reviews = models.Review.objects.filter(book__in=work.edition_set.all())
|
reviews = models.Review.objects.filter(
|
||||||
|
book__in=work.edition_set.all(),
|
||||||
|
).order_by('-published_date')
|
||||||
|
|
||||||
|
user_tags = []
|
||||||
if request.user.is_authenticated:
|
if request.user.is_authenticated:
|
||||||
user_reviews = book_reviews.filter(
|
|
||||||
user=request.user,
|
|
||||||
).all()
|
|
||||||
|
|
||||||
reviews = get_activity_feed(request.user, tab, model=book_reviews)
|
|
||||||
|
|
||||||
user_tags = models.Tag.objects.filter(
|
user_tags = models.Tag.objects.filter(
|
||||||
book=book, user=request.user
|
book=book, user=request.user
|
||||||
).values_list('identifier', flat=True)
|
).values_list('identifier', flat=True)
|
||||||
else:
|
|
||||||
tab = 'public'
|
|
||||||
reviews = book_reviews.filter(privacy='public')
|
|
||||||
user_reviews = []
|
|
||||||
user_tags = []
|
|
||||||
|
|
||||||
rating = reviews.aggregate(Avg('rating'))
|
rating = reviews.aggregate(Avg('rating'))
|
||||||
tags = models.Tag.objects.filter(
|
tags = models.Tag.objects.filter(
|
||||||
|
@ -459,8 +451,8 @@ def book_page(request, book_id, tab='friends'):
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
'book': book,
|
'book': book,
|
||||||
'user_reviews': user_reviews,
|
'reviews': reviews.filter(content__isnull=False),
|
||||||
'reviews': reviews.distinct(),
|
'ratings': reviews.filter(content__isnull=True),
|
||||||
'rating': rating['rating__avg'],
|
'rating': rating['rating__avg'],
|
||||||
'tags': tags,
|
'tags': tags,
|
||||||
'user_tags': user_tags,
|
'user_tags': user_tags,
|
||||||
|
|
Loading…
Reference in a new issue