checkout() decrements stock_quantity/increments sold_count per order item, but cancellation never reversed it, so a cancelled order's stock stayed permanently reduced. Add _restock_order_items(), called from _transition() on the CANCELLED transition, using F() expressions to reverse both counters atomically; wrap _transition() itself in @transaction.atomic so the status change and restock can't partially apply. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| base.py | ||
| test_cart.py | ||
| test_checkout.py | ||
| test_status_transitions.py | ||