Dandelion is a fair source project. View the code on Github
Commits on Sep 16, 2026
| 6e70d69 |
Move organisation payment fields and validation into their own concern. |
| aeaae96 |
Move refunds, badges, and purchase errors onto EventPaymentMethod. Adding a processor should mean a registry entry and its lib file, not another if/elsif chain in Order, Ticket, and the purchase controller. |
| 336661d |
Let organisations take event payments through Mollie. |
| 2a25c63 |
Let event mailers email ticket type waitlists. The existing Waitlist To option only covered the event-wide waitlist, so organisers with people waiting on ticket types saw a send count of 0. |
| d5ab2dc |
Publish a robots.txt so crawlers have allow and disallow rules. |
Commits on Sep 15, 2026
| a558371 |
Expect leftover decoded markup after a single name sanitise pass. One Nokogiri pass strips the Mailgun token but leaves the decoded img text; the tests now match that instead of requiring a second strip. |
| b5aaff3 |
Hide GoCardless checkout on non-GBP/EUR events. Instant Bank Pay only supports UK and Eurozone currencies, so SEK events were failing at billing-request creation. Fixes DANDELION-3R. |
| b35549f |
Stop re-parsing names until a fixed point on every save. One Nokogiri pass is enough; nested Mailgun tokens are already stripped by EmailHelper, and the loop made sanitise quadratic in attacker-controlled input. |
| 7a434bf |
Only complete Open Collective bookings when the contribution is paid. Abandoned or failed OC checkouts stay NEW/ERROR/CANCELLED, but Dandelion was matching those orders and marking tickets payment_completed. Ask OC for PAID and ACTIVE contributions only, skip any other status, and page through the GraphQL results. Co-authored-by: stephen |
| 8ddeaa5 |
Replace Object#presence with explicit present? and blank? checks. |
Commits on Sep 14, 2026
| d540b5f |
Ignore memoized deleted accounts and leftover cookies when signing in via magic link. |
| d5621a0 |
Allow magic-link sign-in when the session account no longer exists. A leftover account_id for a deleted account was treated as a live session, so later booking tests RSVPed as guests and never reached the confirmation page. |
| ccc8a2a |
Merge pull request #238 from symbiota-coop/cursor/mailgun-token-strip-fixed-point-262b Keep stripping Mailgun recipient tokens until none remain |
| 4273dd8 |
Fix overlapping-token strip assertion to ignore leftover whitespace. Co-authored-by: stephen |
| 4ca89fe |
Keep stripping Mailgun recipient tokens until none remain. A single-pass gsub left overlapping tokens intact, and entity-decoding in sanitize_fields could reassemble markup. Loop both until the value stops changing so saved names cannot keep %recipient.token%. Co-authored-by: stephen |
| 81593ab |
Stop Mailgun sign-in tokens leaking through saved names. |
| dea6b02 |
Clarify that star ratings are public and only written answers can be quoted. |
| 7437961 |
Count only current star ratings in feedback averages. Deleted and unrated feedback was inflating the "from N ratings" figure on organisation and profile pages. |
Commits on Sep 13, 2026
| e54822b |
Ask buyers to confirm before booking another ticket for the same email. |
| 2d0663b |
Bind Bluesky OAuth logins to the DID resolved from the handle. Without this check a malicious authorization server can return any public DID in token.sub and take over a linked account. |