remove trade offer expanding, fix flipping to work with new layout. all cards in trade offer are not expanded

This commit is contained in:
badblocks 2025-04-04 14:23:53 -07:00
parent c68d1fb5ec
commit 7c62c57433
11 changed files with 194 additions and 170 deletions

View file

@ -3,7 +3,7 @@ from django import template
register = template.Library()
@register.inclusion_tag('templatetags/trade_offer.html', takes_context=True)
def render_trade_offer(context, offer, expanded=False):
def render_trade_offer(context, offer):
"""
Renders a trade offer including detailed trade acceptance information.
Freezes the through-model querysets to avoid extra DB hits.
@ -33,7 +33,6 @@ def render_trade_offer(context, offer, expanded=False):
return {
'offer_pk': offer.pk,
'expanded': expanded,
'flipped': flipped, # new flag to control the default face
'offer_hash': offer.hash,
'rarity_icon': offer.rarity_icon,
@ -45,6 +44,7 @@ def render_trade_offer(context, offer, expanded=False):
'in_game_name': offer.initiated_by.in_game_name,
'friend_code': offer.initiated_by.friend_code,
'num_cards_available': len(have_cards_available) + len(want_cards_available),
'request_path': context.get("request").path,
}
@register.inclusion_tag('templatetags/trade_acceptance.html', takes_context=True)
@ -97,8 +97,8 @@ def render_trade_offer_png(context, offer, show_friend_code=False):
]
num_cards = max(len(have_cards_available), len(want_cards_available))
image_height = (num_cards * 52) + ((num_cards - 1) * 8) + 106
# cards | padding between cards | header/footer
image_height = (num_cards * 40) + 106
# cards incl pad + header/footer
if (len(have_cards_available) + len(want_cards_available)) >= 4:
image_width = (4 * 160) + 160
else:

View file

@ -498,9 +498,9 @@ class TradeOfferPNGView(View):
trade_offer = get_object_or_404(TradeOffer, pk=kwargs['pk'])
# If the image is already generated and stored, serve it directly.
if trade_offer.image:
trade_offer.image.open()
return HttpResponse(trade_offer.image.read(), content_type="image/png")
# if trade_offer.image:
# trade_offer.image.open()
# return HttpResponse(trade_offer.image.read(), content_type="image/png")
# Acquire PostgreSQL advisory lock to prevent concurrent generation.
from django.db import connection
@ -509,10 +509,10 @@ class TradeOfferPNGView(View):
cursor.execute("SELECT pg_advisory_lock(%s)", [lock_key])
try:
# Double-check if the image was generated while waiting for the lock.
trade_offer.refresh_from_db()
if trade_offer.image:
trade_offer.image.open()
return HttpResponse(trade_offer.image.read(), content_type="image/png")
# trade_offer.refresh_from_db()
# if trade_offer.image:
# trade_offer.image.open()
# return HttpResponse(trade_offer.image.read(), content_type="image/png")
tag_context = render_trade_offer_png(
{'request': request}, trade_offer, show_friend_code=True