Dandelion is an open-source project. View the code on Github
Streamlined Payments and Order Details
Users will now find it even easier to manage their payments and understand their orders. We've introduced GoCardless Instant Bank Pay, providing a convenient new payment method for event purchases that allows for direct bank transfers. You will also clearly see "GoCardless" displayed in your order history and ticket views for transactions made using this method, offering better transparency. Additionally, organisations now have the option to streamline order descriptions by choosing to hide event names, leading to cleaner and potentially more private purchase records.
Enhanced Tools for Event Organisers
Organisers and hosts will benefit from several new controls and interface improvements designed to simplify event management. When duplicating event ticket types, the sales end date will no longer be automatically copied, giving you immediate flexibility for new event configurations. We’ve also enhanced GoCardless settings, allowing organisations explicit control over monthly donation capabilities and providing clearer setup instructions with better-organized settings. Furthermore, managing your organisation details is easier as the 'Other services' tab has been logically renamed to 'Analytics', with some less common fields moved to an 'Experimental' section for better clarity and navigation, and you can now configure how many events are displayed per page for better browsing.
Improved Event Engagement and Feedback
Your interaction with events and feedback processes has been made more intuitive. Feedback mail links for events will now become visible as soon as an event begins, rather than only after it concludes, ensuring you can provide input promptly. The text for these links will also intelligently update, guiding you whether to "Send feedback mail" or "Resend feedback mail" based on the event's status. Lastly, event question headings have been visually enhanced, making them stand out more clearly and improving the overall readability of event details.
Commits on Jul 24, 2025
eceeaa6 |
♻️ Refactor payment method checks for improved clarity Move |
Commits on Jul 23, 2025
9d5d521 |
♻️ (models/carousel.rb): Refactor event retrieval logic for clarity Break down the complex single-line event query into two distinct queries for future and past events. Combine the results and ensure uniqueness. This improves code readability and maintainability by separating the concerns of fetching future and past events. It also streamlines the process of combining event collections directly rather than through an intermediate ID list. |
bbdb5b0 |
♻️ (models): Improve event description field semantics Rename 'hide_event_names_from_order_descriptions' to 'use_event_slugs_in_order_descriptions'. The previous name was semantically inverted and less clear. Update order description logic to use event slugs when the new flag is enabled, providing more meaningful context. |
b122e6f |
✨ Add option to hide event names from order descriptions
This feature provides organisations with the flexibility to hide event names from order descriptions, which can be beneficial for privacy or to streamline information presented to users. |
395b1cf |
🐛 (event_duplication.rb): Prevent copying sales end date for duplicated ticket types Exclude the |
12ae4e3 |
✨ Display GoCardless payment method in order and ticket views Add GoCardless specific styling for background and label colors. Display a "GoCardless" label in the orders table and ticket price views when an order is associated with a GoCardless billing request. This provides visual identification for GoCardless transactions. Ensure Coinbase background color is applied with high specificity. |
Commits on Jul 21, 2025
26dcdd8 |
🦺 Add prefix validation for tax_rate_id Adds a validation rule to ensure This enforces a consistent format for tax rate identifiers, preventing invalid IDs and improving data integrity across events and organisations. |
ee67946 |
♻️ (models/carousel.rb): refactor events to return queryable criteria The method now plucks event IDs from sub-queries and uses an :id.in query. This ensures a Mongoid::Criteria object is returned, improving efficiency and allowing proper chaining of further queries. |
Commits on Jul 20, 2025
57a2d6a |
✨ Introduce explicit GoCardless subscriptions toggle Adds a new Modifies the event ticket type view to conditionally display GoCardless
donation options based on this new setting. Updates the monthly donation
sync Rake task to only process organisations with This provides organisations with explicit control over GoCardless monthly donor functionality, separating it from Instant Bank Pay. It ensures subscription-related features and tasks only run when opted in. |
Commits on Jul 19, 2025
6693872 |
✨ (organisations): Add GoCardless webhook secret and setup instructions
|
5f00d4c |
🎨 (organisations): Rename 'Other services' tab to 'Analytics' Rename the 'Other services' tab in the organisation build form to 'Analytics'. This provides a more accurate description as the tab primarily contains analytics-related fields. Move GoCardless access token, instant bank pay, and Patreon API key fields to the 'Experimental' tab. These fields are less commonly used or experimental, decluttering the 'Analytics' tab and improving logical grouping. |
c7fb4a3 |
🐛 (app/controllers/purchase.rb): connect GoCardless client to production environment Remove explicit sandbox environment setting from GoCardless client. This ensures the client connects to the production environment by default, preventing hardcoded sandbox connections in production deployments. |
097e5df |
✨ Introduce GoCardless Instant Bank Pay and gathering payments Add GoCardless Instant Bank Pay as a new payment method for events. This includes UI elements, JavaScript logic, backend controller integration, and webhook handling for successful payments. This expands payment options for users, offering direct bank transfers. Introduce a dedicated Refactor the |
Commits on Jul 16, 2025
4d87b93 |
⬆️ Upgrade dependencies Upgrade various Ruby gems to their latest patch versions. This ensures the project benefits from the latest bug fixes, performance improvements, and security updates from upstream. Specifically: - Upgrade activate-tools from 0.0.23 to 0.0.24. - Upgrade mime-types-data from 3.2025.0701 to 3.2025.0708. - Upgrade tilt from 2.6.0 to 2.6.1. |
Commits on Jul 15, 2025
b53e4fd |
🐛 Fix The This allows feedback email links to appear as soon as an event starts, rather than only after it finishes. The link text also adapts to the event's state, showing "Send feedback email" for started events and "Resend feedback email" for finished ones. |
dc6c871 |
📝 Update feedback email body description Add guidance to include a feedback URL in the email body. |
Commits on Jul 11, 2025
92042c8 |
🐛 Handle missing account for order and ticket notifications Prevent |
4f13910 |
🐛 (stripe_charge.rb): Add guard clause for nil application fee Add a guard clause to the ticket_revenue_to_revenue_sharer method. This ensures that if application_fee_amount is nil, the method returns Money.new(0, currency) immediately. Prevents potential errors when application_fee_amount is not set, making the calculation more robust. |
79cd37a |
🐛 Fix revenue calculation for zero application fees and balance Previously, revenue calculation methods incorrectly returned zero when both
This commit introduces a specific handling for the |
f802b4c |
🐛 Fix calculation for zero application fees Removed redundant |
Commits on Jul 08, 2025
3adab12 |
🎨 (Gemfile): Reorganize gem declarations for better categorization Moves the |
97882de |
🎨 Move |
Commits on Jul 07, 2025
7eaead9 |
🐛 (delayed_job_error_notifications.rb): Send full error string to Honeybadger context The |
e531c54 |
♻️ Move Stripe webhook URL definition to respective models Move the This removes conditional logic from the shared concern, making the webhook URL definition explicit within each model. It improves code clarity and adheres better to the Single Responsibility Principle. |
c2dd4f6 |
🐛 (belongs_to_without_parent_validation): Validate in-memory parent Add check for in-memory parent object before querying the database. This ensures validations pass for unsaved associated records, particularly with nested attributes, by recognizing objects present in memory. It also reduces unnecessary database queries. |
42eeba3 |
♻️ Removed the |
35084c3 |
🎨 (dandelion_model.rb): Automate Mongoid collection naming for subclasses Remove |
d8820dd |
🏗️ (dandelion_model.rb): Mark DandelionModel as an abstract class Prevents direct instantiation of the base model. Ensures it serves solely as a parent for other models. |
cbb0241 |
✨ (models): introduce |
Commits on Jul 06, 2025
bc212b6 |
♻️ perf(event_boost_bid): index event association for performance Adding an index to the event_id field improves query performance when looking up EventBoostBid records by their associated event. |
Commits on Jul 05, 2025
b9ccfd3 |
✨ (organisations/_events.erb): Make event pagination per_page configurable The |
Commits on Jul 03, 2025
292d2de |
♻️ Refactor event feedback associations and view logic Removes the direct 'activity_id' association from EventFeedback and related callbacks. EventFeedback is now implicitly linked to an Activity through its Event, simplifying the data model and reducing redundancy. This eliminates the need for manual 'activity_id' updates and ensures data consistency. Also removes the 'unscoped: true' local variable from event feedback partials and the corresponding 'unscoped' check within the partial. The responsibility for providing scoped or unscoped feedback collections is now solely with the calling controller or model, simplifying view logic. |
Commits on Jul 02, 2025
bce9fd4 |
🎨 (events): Use h4 for question headings Change label tag to h4 for questions prefixed with '#'. This improves the semantic structure and visual hierarchy. Questions now appear as distinct headings, enhancing readability. |