Add in_game_name field to FriendCode model

This commit is contained in:
badblocks 2025-03-14 09:50:49 -07:00
parent 4792906907
commit bc181b12d9
19 changed files with 113 additions and 56 deletions

View file

@ -1,4 +1,4 @@
# Generated by Django 5.1.2 on 2025-03-13 01:46
# Generated by Django 5.1.2 on 2025-03-14 05:35
import django.db.models.deletion
from django.db import migrations, models

View file

@ -8,9 +8,7 @@ def render_trade_offer(context, offer):
Renders a trade offer including detailed trade acceptance information.
Groups acceptances for each card on both the have and want sides.
"""
# Use the already prefetched acceptances.
acceptances = offer.acceptances.all()
have_cards_available = []
want_cards_available = []

View file

@ -23,11 +23,6 @@ class TradeOfferCreateView(LoginRequiredMixin, CreateView):
template_name = "trades/trade_offer_create.html"
success_url = reverse_lazy("trade_offer_list")
def dispatch(self, request, *args, **kwargs):
if not request.user.friend_codes.exists():
raise PermissionDenied("No friend codes available for your account.")
return super().dispatch(request, *args, **kwargs)
def get_form(self, form_class=None):
form = super().get_form(form_class)
# Restrict the 'initiated_by' choices to friend codes owned by the logged-in user.
@ -86,8 +81,21 @@ class TradeOfferAllListView(ListView):
'trade_offer_want_cards__card',
Prefetch(
'acceptances',
queryset=TradeAcceptance.objects.select_related('accepted_by', 'requested_card', 'offered_card')
)
queryset=TradeAcceptance.objects.select_related('accepted_by', 'requested_card', 'offered_card').prefetch_related(
'requested_card__decks',
'offered_card__decks',
'requested_card__rarity',
'offered_card__rarity',
'requested_card__cardset',
'offered_card__cardset',
)
),
'trade_offer_have_cards__card__decks',
'trade_offer_want_cards__card__decks',
'trade_offer_have_cards__card__rarity',
'trade_offer_want_cards__card__rarity',
'trade_offer_have_cards__card__cardset',
'trade_offer_want_cards__card__cardset'
)
.order_by("-updated_at")
)
@ -115,8 +123,21 @@ class TradeOfferAllListView(ListView):
'trade_offer_want_cards__card',
Prefetch(
'acceptances',
queryset=TradeAcceptance.objects.select_related('accepted_by', 'requested_card', 'offered_card')
)
queryset=TradeAcceptance.objects.select_related('accepted_by', 'requested_card', 'offered_card').prefetch_related(
'requested_card__decks',
'offered_card__decks',
'requested_card__rarity',
'offered_card__rarity',
'requested_card__cardset',
'offered_card__cardset',
)
),
'trade_offer_have_cards__card__decks',
'trade_offer_want_cards__card__decks',
'trade_offer_have_cards__card__rarity',
'trade_offer_want_cards__card__rarity',
'trade_offer_have_cards__card__cardset',
'trade_offer_want_cards__card__cardset'
)
.order_by("-updated_at")
)
@ -314,7 +335,7 @@ class TradeOfferDeleteView(LoginRequiredMixin, DeleteView):
messages.success(request, "Trade offer has been deleted.")
return super().delete(request, *args, **kwargs)
class TradeOfferSearchView(LoginRequiredMixin, ListView):
class TradeOfferSearchView(ListView):
"""
Reworked trade offer search view using POST.
@ -427,11 +448,6 @@ class TradeOfferDetailView(LoginRequiredMixin, DetailView):
model = TradeOffer
template_name = "trades/trade_offer_detail.html"
def dispatch(self, request, *args, **kwargs):
if not request.user.friend_codes.exists():
raise PermissionDenied("No friend codes available for your account.")
return super().dispatch(request, *args, **kwargs)
def get_queryset(self):
return (
TradeOffer.objects.select_related('initiated_by')