Dandelion is a fair source project. View the code on Github

Commits on Jun 25, 2025
c367cfa

⬆️ (ci): upgrade Ruby version to 3.2.8

64cb873

🔧 (Gemfile.lock): Make Gemfile.lock platform-agnostic

Update Gemfile.lock to specify 'ruby' as the platform. This change removes the specific architecture (arm64-darwin-23) to improve cross-platform compatibility for dependency resolution. It prevents issues when bundling on diverse environments.

ed589ce

⬆️ (Gemfile): Upgrade Ruby and loosen gem version constraints

Upgrade Ruby to 3.2.8 to benefit from the latest patch fixes. Remove specific patch version constraints for activesupport and cuprite to allow for automatic updates to newer compatible versions. Add a comment to the rack gem to clarify its version constraint, noting it's temporary until Padrino 0.16 is released.

Commits on Jun 24, 2025
7ff4025

✨ (events): Add option to hide unavailable tickets from purchase view

This commit introduces a new boolean field hide_unavailable_tickets to events.

WHAT: - Added hide_unavailable_tickets field to EventFields concern. - Included hide_unavailable_tickets in the list of boolean fields for events. - Added a checkbox for hide_unavailable_tickets to the event build form. - Modified the purchase partial to skip rendering ticket types that are unavailable (sold out or sales ended) if hide_unavailable_tickets is enabled for the event. - Added a hint for the new field in EventFields.

WHY: - To provide event organizers with the ability to automatically hide ticket types that are no longer available for purchase. - This improves the user experience by reducing clutter on the purchase page and preventing users from attempting to select tickets that cannot be bought. - It streamlines the checkout process by only showing relevant ticket options.

df1eae3

💄 (organisation.scss): Ensure consistent styling for active primary buttons

42d48c5

🐛 (honeybadger_init.rb): ignore invalid byte sequence in UTF-8 errors

003d188

♻️ (events_build): Refactor draft loading logic for form fields

Separates the logic for setting regular form inputs, datetime pickers, and rich text editors when loading draft data. This improves maintainability and extensibility by using generic selectors (CSS classes) instead of hardcoded field names.

f95e5ee

🐛 Configure Honeybadger to ignore Sinatra::BadRequest for encoding

Updates Honeybadger configuration to correctly ignore Sinatra::BadRequest errors that include "invalid %-encoding". Previously, these errors were incorrectly filtered as ArgumentError. This change ensures Honeybadger only reports actual ArgumentError instances and correctly suppresses expected client-side malformed URL errors.

Removes a superfluous newline at the end of the ruby.yml workflow file to improve formatting.

e4c66b3

🥅 Refine Honeybadger error filtering

Refactor Honeybadger's before_notify hook. Expand ignored errors to include specific types and messages. Prevents reporting of non-critical exceptions like Sinatra::NotFound, ArgumentError, ThreadError, Mongoid::Errors::Validations, and Errno::EIO. Reduces noise in error monitoring, improving focus on actionable issues.

fa93a94

🥅 Refine Stripe error reporting Removes 'No such charge' and 'No such transfer' from global ignore. Adds local handling for Stripe::InvalidRequestError in Order#create_stripe_charge. This prevents noise from expected Stripe errors in this specific context. Ensures other Stripe errors are still reported globally.

af53ad0

♻️ Centralize Honeybadger error message suppression

Introduce MESSAGES_TO_IGNORE constant for common error messages. Update Honeybadger's before_notify hook to use this list. Remove specific Stripe error rescue in Order model.

This centralizes error filtering, reducing duplicate logic. It also prevents unnecessary notifications for known issues.

1b43178

🔧 Configure Honeybadger to filter specific errors

Adds a Honeybadger initializer to prevent notifications for errors with the message "Ticket type is full". This reduces alert noise from expected application behavior.

Commits on Jun 23, 2025
2bb8de6

💄 (email.css): Adjust figcaption spacing

Remove negative margin-top from figcaption.

This change improves the visual spacing between images and their captions, preventing overlap and ensuring better readability in email templates.

1fab96a

🚸 (app/app.rb): Improve 404 responses for different content types

Provide specific error formats for .ics and .json requests. This ensures calendar clients receive text/calendar responses and API consumers get JSON errors, improving usability.

0d55e1d

✨ (events): Allow co-hosts to feature events

Remove future_and_current_featured event scope. Update all event queries to use future_and_current. Introduce featured boolean field on Cohostship. Enable co-hosting organisations to mark an event as featured. Refactor Organisation#featured_events to include events where the organisation is either the primary host with featured: true or a co-host with cohostship.featured: true. Update event display logic and UI to support co-host featured status. This provides more flexible control over featured events.

039eace

✨ (honeybadger): Add Delayed Job error notifications

Introduce a new mechanism to report errors from failed Delayed Jobs. Refactor existing error reporting to use Honeybadger.context and notify directly, removing the custom helper for consistency.

60b753f

♻️ (error-reporting): Refactor Honeybadger context handling

Refactor honeybadger_notify helper to use Honeybadger.context for attaching additional data to error reports. This provides a more robust and standard way to capture contextual information.

Update all existing honeybadger_notify calls to pass only relevant IDs (e.g., event_id, order_id) instead of full objects. This prevents potential serialization issues and reduces data volume in error reports.

Enhance the /raise endpoint to allow sending custom Honeybadger notifications with detailed context without necessarily raising an exception. This enables more flexible testing and specific logging.

e220147

♻️ (helpers): Simplify Honeybadger notification

Remove explicit context passing in honeybadger_notify. Honeybadger automatically collects relevant request and environment details. This reduces data sent and improves privacy by not explicitly sending sensitive session or account data.

018d7e0

✨ (app.rb): Allow custom error message for /raise endpoint

The /raise endpoint now accepts an optional message parameter. This enables testing of error handling with specific, user-defined error messages, improving debugging and development flexibility.

d47dced

✨ Improve Honeybadger error reporting with user context

Add current user ID and email to Honeybadger context on each request. Refactor Honeybadger.notify calls to consistently use the context hash. This provides more comprehensive error reports for debugging.