|
| 1 | +$def with(lists, limit, user_key) |
| 2 | + |
| 3 | +$def render_follow_button(owner_username, is_subscribed): |
| 4 | + $ request = "/people/" + owner_username |
| 5 | + $:macros.Follow(owner_username, following=is_subscribed, request_path=request) |
| 6 | + |
| 7 | +$def list_card(list, owner, own_list): |
| 8 | + $ has_owner = owner |
| 9 | + $ cached_info = list.get_patron_showcase() |
| 10 | + $ count = cached_info["count"] |
| 11 | + <div class="list-follow-card"> |
| 12 | + <a class="list-follow-card__header" href="$list.get_url()"> |
| 13 | + <div class="list-follow-card__title">$cached_info["title"]</div> |
| 14 | + <div class="list-follow-card__num-books"> |
| 15 | + $ungettext("%(count)d book", "%(count)d books", count, count=count) |
| 16 | + </div> |
| 17 | + </a> |
| 18 | + <a class="list-follow-card__covers" href="$list.get_url()"> |
| 19 | + $for img_url in cached_info["covers"]: |
| 20 | + $if img_url: |
| 21 | + $ img_url = img_url.replace("-S.jpg", "-M.jpg") |
| 22 | + $else: |
| 23 | + $ img_url = '/images/icons/avatar_book-sm.png' |
| 24 | + <img src="$img_url" loading="lazy" width="80"/> |
| 25 | + </a> |
| 26 | + <div class="list-follow-card__bottom"> |
| 27 | + <div class="list-follow-card__user"> |
| 28 | + <a href="$owner.key"> |
| 29 | + <img src="$(owner.key)/avatar" /> |
| 30 | + </a> |
| 31 | + <div class="list-follow-card__username"> |
| 32 | + <a class="list-follow-card__username-link" href="$owner.key"> |
| 33 | + $if not own_list: |
| 34 | + $ owner_username = owner.key.split('/')[-1] |
| 35 | + $('@' + owner_username) |
| 36 | + $else: |
| 37 | + $_('You') |
| 38 | + </a> |
| 39 | + </div> |
| 40 | + </div> |
| 41 | + <div class="list-follow-card__follow-button"> |
| 42 | + $if not own_list: |
| 43 | + $ owner_username = owner.key.split('/')[-1] |
| 44 | + $ owner_account = get_user_object(owner_username) |
| 45 | + $ is_subscribed = ctx.user and ctx.user.is_subscribed_user(owner_username) |
| 46 | + $ settings = owner_account.get_users_settings() |
| 47 | + $ is_public = settings and settings.get('public_readlog', 'no') == "yes" |
| 48 | + $if is_public: |
| 49 | + $:render_follow_button(owner_username, is_subscribed) |
| 50 | + </div> |
| 51 | + </div> |
| 52 | + </div> |
| 53 | + |
| 54 | +$ count = 0 |
| 55 | +$for i, list in enumerate(lists): |
| 56 | + $if count < limit: |
| 57 | + $ own_list = list.owner and list.owner.key == user_key |
| 58 | + $ converted = convert_list(list.key) |
| 59 | + $:list_card(converted, list.owner, own_list) |
| 60 | + $ count = count + 1 |
| 61 | + |
0 commit comments