Skip to content

Address self-hosting feedback from #1431 - #1434

Merged
daveearley merged 1 commit into
developfrom
fix/issue-1431-feedback
Oct 23, 2026
Merged

daveearley merged 1 commit into
developfrom
fix/issue-1431-feedback

Conversation

@max-1-max

Copy link
Copy Markdown
Collaborator

Addresses the self-hosting feedback in #1431.

Fixed

Issues reported

  • Invited users stuck at login. Someone whose only membership is a pending invitation (for example after resetting their password instead of opening the invite) now gets a 401 with error_code: INVITATION_PENDING. The login page tells them to open the invitation email, and to ask for a new one if it has expired. The message is only returned after the password has been checked.
  • Orders from deleted events. The organizer order list no longer includes orders whose event was deleted, so it matches the dashboard totals and no longer links to a page that never loads.

Suggestions

  • iDEAL asks for the name again. The Stripe payment form is now prefilled with the buyer's name from the details step.
  • Platform fees report on self-hosted installs. It's now listed only in SaaS mode, matching the Platform Fees settings section.
  • Extra space above the pay button. The payment form's minimum height now only applies while it loads, so iDEAL-only forms don't leave a gap.
  • Recurring to single event. Event settings has a new Event Type card that switches an event between single and recurring (PUT /events/{event_id}/type).
    • A recurring event can become single only when it has exactly one date that isn't cancelled and no orders. That date's own prices, product visibility, capacity and label are removed, and its time and location are kept.
    • The card and the confirmation dialog warn when the change can't be undone. If a single event already has orders, the change to recurring is permanent.

Not included: suggestion 3, making the "GMT+1" timezone label optional. That needs a decision on the setting and where it applies, so it's left for a follow-up.

Also in this PR

  • Collapsed tickets keep their quantity stepper, add-ons and limit errors.
  • Checkout details page polish:
    • The waitlist banner follows the checkout theme instead of a fixed mint gradient.
    • The disabled "Copy my details to" control is readable.
    • The segmented control has a visible track in dark mode.
    • Fees are no longer shown in the accent colour.
    • There's no placeholder tile when an event has no cover image.
    • The ticket count and "Copied from above" labels are quieter.
  • E2E fixes for the failures on Redesign event and organizer pages #1433:
    • event-page-layouts measured the footer from its last child. That broke when the development-licence notice added a second line.
    • The lineup widget switch was clicked while its panel was still opening.
    • per-date-quantity-cases failed whenever its two test dates fell in different months.

API

Additive only: a new endpoint PUT /events/{event_id}/type and a new error code INVITATION_PENDING (on /auth/login, documented in the error table). The API reference is regenerated.

Testing

  • Backend: Unit and Feature suites pass, and scramble:analyze is clean. There are new feature tests for the event type endpoint, the invitation-pending login and the organizer order list.
  • The event type endpoint was smoke-tested on the dev stack:
    • Both conversions succeed, and sending the current type does nothing.
    • A recurring event with several dates, an invalid type and a missing type each return 422.
    • Another account's event returns 403.
  • E2E, new specs:
    • Switching the event type both ways.
    • The warning on a single event with orders, and the refused change back.
    • The invitation-pending login after a password reset.
    • Add-ons on a collapsed ticket.
  • Checked by hand in light and dark checkout themes.

- Tell invited users with no accepted membership to open their invitation
  email when they sign in (INVITATION_PENDING) instead of a generic error
- Hide orders from deleted events in the organizer order list
- Prefill the buyer's name in the Stripe payment form and drop the empty
  space above the pay button once the form has loaded
- Show the platform fees report only in SaaS mode
- Let organizers switch an event between single and recurring, with a
  warning when the change can't be undone
- Keep add-ons, quantity steppers and errors working on collapsed tickets
- Checkout details polish: themed waitlist banner, readable disabled copy
  control, quieter ticket count and copied labels, no placeholder tile
- Stabilise e2e specs that depended on licence, timing and calendar dates
@railway-app

railway-app Bot commented Oct 23, 2026

Copy link
Copy Markdown

This PR was not deployed automatically as @max-1-max does not have access to the Railway project.

In order to get automatic PR deploys, please add @max-1-max to your workspace on Railway.

@github-actions

Copy link
Copy Markdown
Contributor

✅ E2E smoke tests: Everything passed.

Mode Result ✅ Passed ❌ Failed ⚠️ Flaky ⏭️ Skipped ⏱️ Duration
Self-hosted ✅ Passed 111 0 0 0 3m 52s

Open the run

@daveearley
daveearley merged commit 7299af5 into develop Oct 23, 2026
9 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 23, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants