Issue #3612600: Per-resource ticketing opt-in (ticketing_enabled)

Makes ticket issuing a deliberate per-resource opt-in, instead of every confirmed booking getting a ticket (and an email attachment) unconditionally.

  • Resource type: an Issue tickets default, stored as a yoyaku_ticket third-party setting on the type config entity (checkbox on the type form).
  • Resource: a Ticketing base field overriding the type (inherit / enable / disable).
  • Default off, so a plain reservation never gets a QR code by accident.
  • TicketingResolver resolves the resource-over-type cascade (mirrors the payment submodule).
  • TicketBuilder::units() gates on the resolver, so the download route and the Orchestra confirmation-email bridge (which both flow through the builder) issue tickets only where ticketing is on.

Includes the resolver + gating kernel tests, the third-party config schema, French translations, and a docs section.

Merge request reports

Loading