Add rarity field to trade_offer instead of looking up via cards
This commit is contained in:
parent
ba33139993
commit
f7a9b2f823
13 changed files with 87 additions and 50 deletions
|
|
@ -7,18 +7,18 @@ from accounts.models import FriendCode
|
|||
class TradeOfferManager(models.Manager):
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = super().get_queryset().select_related("initiated_by", "initiated_by__user")
|
||||
queryset = super().get_queryset().select_related("initiated_by", "initiated_by__user", "rarity")
|
||||
queryset = queryset.prefetch_related(
|
||||
Prefetch(
|
||||
"trade_offer_want_cards",
|
||||
queryset=TradeOfferWantCard.objects.select_related("card").annotate(
|
||||
queryset=TradeOfferWantCard.objects.select_related("card").prefetch_related('card__decks').annotate(
|
||||
total_quantity=Sum("quantity"),
|
||||
total_accepted=Sum("qty_accepted")
|
||||
).order_by("total_quantity", "id")
|
||||
),
|
||||
Prefetch(
|
||||
"trade_offer_have_cards",
|
||||
queryset=TradeOfferHaveCard.objects.select_related("card").annotate(
|
||||
queryset=TradeOfferHaveCard.objects.select_related("card").prefetch_related('card__decks').annotate(
|
||||
total_quantity=Sum("quantity"),
|
||||
total_accepted=Sum("qty_accepted")
|
||||
).order_by("total_quantity", "id")
|
||||
|
|
@ -42,7 +42,14 @@ class TradeOffer(models.Model):
|
|||
on_delete=models.PROTECT,
|
||||
related_name='initiated_trade_offers'
|
||||
)
|
||||
# Use custom through models to support multiples.
|
||||
rarity = models.ForeignKey(
|
||||
"cards.Rarity",
|
||||
on_delete=models.PROTECT,
|
||||
null=True,
|
||||
blank=True,
|
||||
editable=False,
|
||||
db_index=True
|
||||
)
|
||||
want_cards = models.ManyToManyField(
|
||||
"cards.Card",
|
||||
related_name='trade_offers_want',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue