review widget on user home page
This commit is contained in:
parent
3bdbd6ea65
commit
a00e6622db
2 changed files with 152 additions and 1 deletions
|
@ -122,6 +122,35 @@
|
|||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="entity-sort" id="bookReviewed">
|
||||
<h5 class="entity-sort__label">
|
||||
{% trans '评论过的书籍' %}
|
||||
</h5>
|
||||
<span class="entity-sort__count">
|
||||
{{ book_reviews_count }}
|
||||
</span>
|
||||
{% if book_reviews_more %}
|
||||
<a href="{% url 'users:book_list' user.mastodon_username 'reviewed' %}"
|
||||
class="entity-sort__more-link">{% trans '更多' %}</a>
|
||||
{% endif %}
|
||||
|
||||
<ul class="entity-sort__entity-list">
|
||||
{% for book_review in book_reviews %}
|
||||
<li class="entity-sort__entity">
|
||||
|
||||
<a href="{% url 'books:retrieve' book_review.book.id %}">
|
||||
<img src="{{ book_review.book.cover|thumb:'normal' }}"
|
||||
alt="{{book_review.book.title}}" class="entity-sort__entity-img">
|
||||
<span class="entity-sort__entity-name"
|
||||
title="{{book_review.book.title}}">{{ book_review.book.title }}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% empty %}
|
||||
<div>暂无记录</div>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="entity-sort" id="movieWish">
|
||||
<h5 class="entity-sort__label">
|
||||
{% trans '想看的电影/剧集' %}
|
||||
|
@ -209,6 +238,35 @@
|
|||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="entity-sort" id="movieReviewed">
|
||||
<h5 class="entity-sort__label">
|
||||
{% trans '评论过的电影/剧集' %}
|
||||
</h5>
|
||||
<span class="entity-sort__count">
|
||||
{{ movie_reviews_count }}
|
||||
</span>
|
||||
{% if movie_reviews_more %}
|
||||
<a href="{% url 'users:movie_list' user.mastodon_username 'reviewed' %}"
|
||||
class="entity-sort__more-link">{% trans '更多' %}</a>
|
||||
{% endif %}
|
||||
|
||||
<ul class="entity-sort__entity-list">
|
||||
{% for movie_review in movie_reviews %}
|
||||
<li class="entity-sort__entity">
|
||||
|
||||
<a href="{% url 'movies:retrieve' movie_review.movie.id %}">
|
||||
<img src="{{ movie_review.movie.cover|thumb:'normal' }}"
|
||||
alt="{{movie_review.movie.title}}" class="entity-sort__entity-img">
|
||||
<span class="entity-sort__entity-name"
|
||||
title="{{movie_review.movie.title}}">{{ movie_review.movie.title }}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% empty %}
|
||||
<div>暂无记录</div>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="entity-sort" id="musicWish">
|
||||
<h5 class="entity-sort__label">
|
||||
{% trans '想听的音乐' %}
|
||||
|
@ -324,6 +382,43 @@
|
|||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="entity-sort" id="musicReviewed">
|
||||
<h5 class="entity-sort__label">
|
||||
{% trans '评论过的音乐' %}
|
||||
</h5>
|
||||
<span class="entity-sort__count">
|
||||
{{ music_reviews_count }}
|
||||
</span>
|
||||
{% if music_reviews_more %}
|
||||
<a href="{% url 'users:music_list' user.mastodon_username 'reviewed' %}"
|
||||
class="entity-sort__more-link">{% trans '更多' %}</a>
|
||||
{% endif %}
|
||||
|
||||
<ul class="entity-sort__entity-list">
|
||||
{% for music_review in music_reviews %}
|
||||
<li class="entity-sort__entity">
|
||||
{% if music_review.type == 'album' %}
|
||||
<a href="{% url 'music:retrieve_album' music_review.album.id %}">
|
||||
<img src="{{ music_review.album.cover|thumb:'normal' }}"
|
||||
alt="{{music_review.album.title}}" class="entity-sort__entity-img">
|
||||
<span class="entity-sort__entity-name"
|
||||
title="{{music_review.album.title}}">{{ music_review.album.title }}</span>
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="{% url 'music:retrieve_song' music_review.song.id %}">
|
||||
<img src="{{ music_review.song.cover|thumb:'normal' }}"
|
||||
alt="{{music_review.song.title}}" class="entity-sort__entity-img">
|
||||
<span class="entity-sort__entity-name"
|
||||
title="{{music_review.song.title}}">{{ music_review.song.title }}</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% empty %}
|
||||
<div>暂无记录</div>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="entity-sort" id="gameWish">
|
||||
<h5 class="entity-sort__label">
|
||||
{% trans '想玩的游戏' %}
|
||||
|
@ -407,6 +502,35 @@
|
|||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="entity-sort" id="gameReviewed">
|
||||
<h5 class="entity-sort__label">
|
||||
{% trans '评论过的游戏' %}
|
||||
</h5>
|
||||
<span class="entity-sort__count">
|
||||
{{ game_reviews_count }}
|
||||
</span>
|
||||
{% if game_reviews_more %}
|
||||
<a href="{% url 'users:game_list' user.mastodon_username 'reviewed' %}"
|
||||
class="entity-sort__more-link">{% trans '更多' %}</a>
|
||||
{% endif %}
|
||||
|
||||
<ul class="entity-sort__entity-list">
|
||||
{% for game_review in game_reviews %}
|
||||
<li class="entity-sort__entity">
|
||||
|
||||
<a href="{% url 'games:retrieve' game_review.game.id %}">
|
||||
<img src="{{ game_review.game.cover|thumb:'normal' }}"
|
||||
alt="{{game_review.game.title}}" class="entity-sort__entity-img">
|
||||
<span class="entity-sort__entity-name"
|
||||
title="{{game_review.game.title}}">{{ game_review.game.title }}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% empty %}
|
||||
<div>暂无记录</div>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{% if user == request.user %}
|
||||
|
|
|
@ -249,6 +249,11 @@ def home(request, id):
|
|||
album_marks = request.user.user_albummarks.all()
|
||||
song_marks = request.user.user_songmarks.all()
|
||||
game_marks = request.user.user_gamemarks.all()
|
||||
book_reviews = request.user.user_bookreviews.all()
|
||||
movie_reviews = request.user.user_moviereviews.all()
|
||||
album_reviews = request.user.user_albumreviews.all()
|
||||
song_reviews = request.user.user_songreviews.all()
|
||||
game_reviews = request.user.user_gamereviews.all()
|
||||
|
||||
latest_task = user.user_synctasks.order_by("-id").first()
|
||||
|
||||
|
@ -279,6 +284,11 @@ def home(request, id):
|
|||
song_marks = SongMark.get_available_by_user(user, relation['following'])
|
||||
album_marks = AlbumMark.get_available_by_user(user, relation['following'])
|
||||
game_marks = GameMark.get_available_by_user(user, relation['following'])
|
||||
book_reviews = BookMark.get_available_by_user(user, relation['following'])
|
||||
movie_reviews = MovieMark.get_available_by_user(user, relation['following'])
|
||||
song_reviews = SongMark.get_available_by_user(user, relation['following'])
|
||||
album_reviews = AlbumMark.get_available_by_user(user, relation['following'])
|
||||
game_reviews = GameMark.get_available_by_user(user, relation['following'])
|
||||
|
||||
|
||||
# book marks
|
||||
|
@ -297,7 +307,6 @@ def home(request, id):
|
|||
filtered_music_marks = filter_marks([song_marks, album_marks], MUSIC_PER_SET, 'music')
|
||||
music_marks_count = count_marks([song_marks, album_marks], "music")
|
||||
|
||||
|
||||
for mark in filtered_music_marks["do_music_marks"] +\
|
||||
filtered_music_marks["wish_music_marks"] +\
|
||||
filtered_music_marks["collect_music_marks"]:
|
||||
|
@ -307,6 +316,10 @@ def home(request, id):
|
|||
else:
|
||||
mark.type = "song"
|
||||
|
||||
music_reviews = list(album_reviews.order_by("-edited_time")) + list(song_reviews.order_by("-edited_time"))
|
||||
for review in music_reviews:
|
||||
review.type = 'album' if review.__class__ == AlbumReview else 'song'
|
||||
|
||||
try:
|
||||
layout = user.preference.get_serialized_home_layout()
|
||||
except ObjectDoesNotExist:
|
||||
|
@ -326,6 +339,20 @@ def home(request, id):
|
|||
**movie_marks_count,
|
||||
**music_marks_count,
|
||||
**game_marks_count,
|
||||
|
||||
'book_reviews': book_reviews.order_by("-edited_time")[:BOOKS_PER_SET],
|
||||
'movie_reviews': movie_reviews.order_by("-edited_time")[:MOVIES_PER_SET],
|
||||
'music_reviews': music_reviews[:MUSIC_PER_SET],
|
||||
'game_reviews': game_reviews[:GAMES_PER_SET],
|
||||
'book_reviews_more': book_reviews.count() > BOOKS_PER_SET,
|
||||
'movie_reviews_more': movie_reviews.count() > MOVIES_PER_SET,
|
||||
'music_reviews_more': len(music_reviews) > MUSIC_PER_SET,
|
||||
'game_reviews_more': game_reviews.count() > GAMES_PER_SET,
|
||||
'book_reviews_count': book_reviews.count(),
|
||||
'movie_reviews_count': movie_reviews.count(),
|
||||
'music_reviews_count': len(music_reviews),
|
||||
'game_reviews_count': game_reviews.count(),
|
||||
|
||||
'layout': layout,
|
||||
'reports': reports,
|
||||
'unread_announcements': unread_announcements,
|
||||
|
|
Loading…
Add table
Reference in a new issue