Some checks failed
lint.yml / docs: copy-to-organizer + Email sent column (pull_request) Failing after 0s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EYwoAkZZmXMMmaBp4WGUBo
6.3 KiB
6.3 KiB
Upstream PR candidates
Running log of fork features that are shaped so they could be offered to
lnbits/events (or lnbits/lnbits). Add a row whenever a change lands here
in an upstream-compatible form; strike it when the PR merges upstream.
| Feature | Where | Upstream target | Readiness |
|---|---|---|---|
frontend_url + origin allow-list + ?checkout= return contract |
views_api.py _resolve_frontend_root, api_ticket_create |
lnbits/events | after the #33 rebase, as a small PR |
Ticket ids minted before the invoice so success_url can carry them |
api_ticket_create |
lnbits/events | ships with the above |
extra.checkout (success/cancel URL, customer_email, line item, metadata) on fiat purchases |
api_ticket_create |
lnbits/events (needs lnbits StripeCheckoutOptions.cancel_url/customer_email, PR'd from aiolabs/lnbits) |
with the lnbits patch |
extra.payment_methods per event + tickets_payment_methods NIP-52 tag |
models.py, nostr_publisher.py |
lnbits/events (v2 PR #64 introduces the same field) | offer as review input on #64 |
asyncio.to_thread around the smtplib send |
services.py _send_ticket_email_notification |
lnbits/events | trivial, standalone |
QR logo overlay in make_qr_png (instance lnbits_qr_logo) |
views_api.py |
lnbits/events | standalone |
Multi-ticket purchase as N rows on one payment_hash |
api_ticket_create, crud.py |
lnbits/events | overlaps v2 baskets; review input on #64 |
| Free tickets without minting an invoice | _issue_free_tickets |
lnbits/events | small, standalone |
| NIP-52 publishing + approval workflow | nostr_*.py, views_api.py |
lnbits/events #46 | open; rebase onto v1.6.8 |
Date + Message-ID + From display name on the ticket email (build_ticket_email); event details in the body |
services.py |
lnbits/events (mailer) and lnbits/lnbits send_email (same omissions, hits password-reset/admin mails) |
trivial, standalone — measured: SpamAssassin MISSING_DATE 1.4 + MISSING_MID 0.14 |
Ticket card PNG (event/when/where/QR/name/id) attached to the ticket email instead of a remote <img> (qr.py, GET /api/v1/ticket-card/{id}) |
qr.py, services.py |
lnbits/events (their "ticket image" compositing could reuse the renderer) | standalone; mail-tester: removes HTML_IMAGE_ONLY (1.8) |
Per-event sender identity: extra.organizer_name (From display name "X via ") + extra.reply_to_email (Reply-To, falls back to owner account email) |
models.py, services.py, admin dialog |
lnbits/events | small, standalone |
extra.copy_to_organizer (envelope BCC of ticket emails to the reply-to) + "Email sent" column in the admin ticket table |
services.py, static/js/index.* |
lnbits/events | small, standalone |