Fix expanded state handling for trade offers and modify expand all on trade offers listing to persist between pages

This commit is contained in:
badblocks 2025-04-02 13:39:15 -07:00
parent 6a61b79bbe
commit 63e20bace6
7 changed files with 74 additions and 128 deletions

View file

@ -24,9 +24,17 @@ def render_trade_offer(context, offer, expanded=False):
if acceptance.is_active
]
# Determine if the offer should show its back side (acceptances view) by default.
# If either side has no available cards, then flip the offer.
if not have_cards_available or not want_cards_available:
flipped = True
else:
flipped = 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,
'initiated_by_email': offer.initiated_by.user.email,

View file

@ -75,13 +75,15 @@ class TradeOfferAllListView(ReusablePaginationMixin, ListView):
self.per_page = 10
paginated_offers, pagination_context = self.paginate_data(queryset, page_number)
context["offers"] = paginated_offers
# Set pagination context using the key expected in the template
context["page_obj"] = pagination_context
# Add the expanded flag to the context based on the URL query parameter.
context["expanded"] = request.GET.get("expanded", "false").lower() == "true"
return context
def render_to_response(self, context, **response_kwargs):
if self.request.headers.get("X-Requested-With") == "XMLHttpRequest":
show_closed = self.request.GET.get("show_closed", "false").lower() == "true"
expanded = self.request.GET.get("expanded", "false").lower() == "true"
queryset = TradeOffer.objects.all()
if show_closed:
queryset = queryset.filter(is_closed=True)
@ -94,7 +96,7 @@ class TradeOfferAllListView(ReusablePaginationMixin, ListView):
return render(
self.request,
"trades/_trade_offer_list.html",
{"offers": paginated_offers, "page_obj": pagination_context}
{"offers": paginated_offers, "page_obj": pagination_context, "expanded": expanded}
)
return super().render_to_response(context, **response_kwargs)