- create(): slugs were only checked against the database, so records created
in the same batch (duplicating several orders from the list view, importing
rows sharing a name) collided on group_order_slug_uniq. _generate_unique_slug
now also skips the slugs already handed out in the batch.
- _redirect_to_slug_url(): `post` is passed as a dict instead of splatted, so a
query parameter named `suffix` no longer binds to the keyword argument of the
same name (HTTP 500 on /eskaera/<id>/checkout?suffix=x, and a corrupted path
on the shop route).
- post-migrate: the backfill runs with tracking_disable, `slug` is tracked and
the upgrade posted a chatter message on every pre-existing order.
Tests for the two reachable cases: batch create and query parameters kept
across the legacy redirect.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>