restore quantity display on expanded card_badges and add limits to all trade offer creation (currently 20 unique cards per side, 20 max quantity per card), fixes #3 and fixes #17
This commit is contained in:
parent
1cdeaa9bba
commit
b5db5af185
4 changed files with 49 additions and 10 deletions
|
|
@ -141,6 +141,16 @@ class TradeOfferCreateForm(ModelForm):
|
|||
except ValueError:
|
||||
raise forms.ValidationError(f"Invalid quantity provided in {item}")
|
||||
parsed[card_id] = parsed.get(card_id, 0) + quantity
|
||||
# Validate that each have card does not exceed the max quantity of 20.
|
||||
for card_id, quantity in parsed.items():
|
||||
if quantity > 20:
|
||||
card = Card.objects.get(pk=card_id)
|
||||
raise forms.ValidationError(
|
||||
f"Maximum allowed quantity for each have card is 20. Card {card} has {quantity}."
|
||||
)
|
||||
# Ensure no more than 20 unique have cards are selected.
|
||||
if len(parsed) > 20:
|
||||
raise forms.ValidationError("You can only select a maximum of 20 unique have cards.")
|
||||
return parsed
|
||||
|
||||
def clean_want_cards(self):
|
||||
|
|
@ -156,6 +166,17 @@ class TradeOfferCreateForm(ModelForm):
|
|||
except ValueError:
|
||||
raise forms.ValidationError(f"Invalid quantity provided in {item}")
|
||||
parsed[card_id] = parsed.get(card_id, 0) + quantity
|
||||
# Validate that each want card does not exceed the max quantity of 20.
|
||||
for card_id, quantity in parsed.items():
|
||||
if quantity > 20:
|
||||
# look up card name
|
||||
card = Card.objects.get(pk=card_id)
|
||||
raise forms.ValidationError(
|
||||
f"Maximum allowed quantity for each want card is 20. Card {card} has {quantity}."
|
||||
)
|
||||
# Ensure no more than 20 unique want cards are selected.
|
||||
if len(parsed) > 20:
|
||||
raise forms.ValidationError("You can only select a maximum of 20 unique want cards.")
|
||||
return parsed
|
||||
|
||||
def save(self, commit=True):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue