all cards of a trade offer are now ordered alphabetically. fixes #12
This commit is contained in:
parent
b5db5af185
commit
1c95ccfff7
2 changed files with 14 additions and 19 deletions
|
|
@ -61,26 +61,9 @@ class TradeAcceptanceCreateForm(forms.ModelForm):
|
||||||
TradeAcceptance.AcceptanceState.SENT,
|
TradeAcceptance.AcceptanceState.SENT,
|
||||||
TradeAcceptance.AcceptanceState.RECEIVED,
|
TradeAcceptance.AcceptanceState.RECEIVED,
|
||||||
]
|
]
|
||||||
available_requested_ids = []
|
self.fields["requested_card"].queryset = trade_offer.have_cards_available_qs
|
||||||
for through_obj in trade_offer.have_cards_available:
|
|
||||||
active_count = trade_offer.acceptances.filter(
|
|
||||||
requested_card=through_obj.card,
|
|
||||||
state__in=active_states
|
|
||||||
).count()
|
|
||||||
if active_count < through_obj.quantity:
|
|
||||||
available_requested_ids.append(through_obj.card.id)
|
|
||||||
self.fields["requested_card"].queryset = Card.objects.filter(id__in=available_requested_ids)
|
|
||||||
|
|
||||||
# Update available offered_card choices from the TradeOffer's "want" side.
|
self.fields["offered_card"].queryset = trade_offer.want_cards_available_qs
|
||||||
available_offered_ids = []
|
|
||||||
for through_obj in trade_offer.want_cards_available:
|
|
||||||
active_count = trade_offer.acceptances.filter(
|
|
||||||
offered_card=through_obj.card,
|
|
||||||
state__in=active_states
|
|
||||||
).count()
|
|
||||||
if active_count < through_obj.quantity:
|
|
||||||
available_offered_ids.append(through_obj.card.id)
|
|
||||||
self.fields["offered_card"].queryset = Card.objects.filter(id__in=available_offered_ids)
|
|
||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
|
|
@ -111,6 +111,16 @@ class TradeOffer(models.Model):
|
||||||
# Returns the list of want_cards (through objects) that still have available quantity.
|
# Returns the list of want_cards (through objects) that still have available quantity.
|
||||||
return [item for item in self.trade_offer_want_cards.all() if item.quantity > item.qty_accepted]
|
return [item for item in self.trade_offer_want_cards.all() if item.quantity > item.qty_accepted]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def have_cards_available_qs(self):
|
||||||
|
# Returns a queryset of TradeOfferHaveCard objects that still have available quantity
|
||||||
|
return self.trade_offer_have_cards.filter(quantity__gt=F("qty_accepted")).select_related("card")
|
||||||
|
|
||||||
|
@property
|
||||||
|
def want_cards_available_qs(self):
|
||||||
|
# Returns a queryset of TradeOfferWantCard objects that still have available quantity
|
||||||
|
return self.trade_offer_want_cards.filter(quantity__gt=F("qty_accepted")).select_related("card")
|
||||||
|
|
||||||
class TradeOfferHaveCard(models.Model):
|
class TradeOfferHaveCard(models.Model):
|
||||||
"""
|
"""
|
||||||
Through model for TradeOffer.have_cards.
|
Through model for TradeOffer.have_cards.
|
||||||
|
|
@ -140,6 +150,7 @@ class TradeOfferHaveCard(models.Model):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
unique_together = ("trade_offer", "card")
|
unique_together = ("trade_offer", "card")
|
||||||
|
ordering = ['card__name']
|
||||||
|
|
||||||
class TradeOfferWantCard(models.Model):
|
class TradeOfferWantCard(models.Model):
|
||||||
"""
|
"""
|
||||||
|
|
@ -169,6 +180,7 @@ class TradeOfferWantCard(models.Model):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
unique_together = ("trade_offer", "card")
|
unique_together = ("trade_offer", "card")
|
||||||
|
ordering = ['card__name']
|
||||||
|
|
||||||
class TradeAcceptance(models.Model):
|
class TradeAcceptance(models.Model):
|
||||||
class AcceptanceState(models.TextChoices):
|
class AcceptanceState(models.TextChoices):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue