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

Commits on Jun 18, 2025
e4c1961

♻️ Consolidate analytics tracking and introduce Plausible

Remove Google Analytics integration and associated files. Remove separate Facebook Pixel, Hotjar, and Simple Analytics partials. Introduce Plausible Analytics as a privacy-friendly alternative. Consolidate all remaining analytics scripts into a new _analytics.erb partial. Update Organisation model and build form for Plausible domain. Remove Google Analytics specific transaction tracking from event controller. Fix OpenRouter model parsing to correctly handle model names.

bc092b7

✨ (open_router.rb): Enable reasoning feature via model name suffix

  • WHAT:
    • The model parameter is now processed to extract the base model name by splitting on :.
    • If the model string includes :thinking, a reasoning object is added to the payload with enabled: true.
  • WHY:
    • This allows users to activate the OpenRouter API's reasoning feature by simply appending :thinking to the model name.
    • It provides a flexible and concise way to control this specific API behavior without introducing new, separate parameters.
    • Stripping the suffix ensures the API receives a valid base model name.
552b6d1

👽️ Update Gemini Flash model names to stable version

Update Gemini 2.5 Flash model names from preview-05-20 to flash. This aligns the model identifiers with the current stable naming convention used by OpenRouter, ensuring the application uses the most up-to-date and supported model versions.

Commits on Jun 14, 2025
5335f31

♻️ Extract email preview iframe styles Moves duplicated inline CSS for email preview iframes from individual ERB templates to the main stylesheet. This centralizes styling, improves maintainability, and reduces code duplication across view files. Also renames the container class for clarity.

fab9c56

🎨 (email templates): Improve iframe rendering and cleanup

WHAT: - Adjusted CSS for iframe containers in email templates to ensure proper sizing and responsiveness. - Removed an unused field description from the OrganisationFields concern.

WHY: - The iframe styling changes ensure embedded content, such as videos, correctly fills its designated area within emails, improving visual consistency and user experience. - Removing the 'send_ticket_emails_from_organisation' description cleans up outdated configuration documentation, maintaining accuracy.

8919471

🚸 Improve iframe height in email templates

Change iframe height from 100% to 80vh in various email templates. This prevents iframes from consuming the entire viewport, improving readability and user experience by allowing other email content to be visible without excessive scrolling.

0072092

💄 (events_build/build.erb): Make 'enable resales' checkbox always visible

Removes the conditional rendering logic for the enable_resales checkbox. This ensures the option is consistently available to all users, simplifying the UI.

5fcd174

🚸 (events/_ticket_type.erb): Improve display for deleted ticket types

Display the original ticket type name for tickets whose associated type has been deleted. This provides clarity to users by showing the historical name and indicating that the type is no longer active.

281bf68

✨ (models/ticket.rb): Add original_ticket_type_name field to Ticket model

Add original_ticket_type_name field to the Ticket model. This field captures the name of the ticket type at the time of ticket creation. This ensures that the original ticket type name is preserved, even if the associated ticket type's name is later modified.

5005d53

🔥 Remove A/B testing feature

  • Removes PmailTest and PmailTestship models and their associations.
  • Deletes all related controllers and views for A/B tests.
  • Simplifies Pmail sending logic by removing A/B test specific recipient filtering.
  • Streamlines the codebase by removing deprecated functionality.
ffffc07

✨ Enhance ticket resale notification with previous owner details

The ticket resale notification email now includes the name and email of the previous ticket owner. This is achieved by modifying the send_resale_notification method to accept the previous_account as an argument, which is then passed from the Ticket model when a resale occurs.

This change provides more comprehensive information about the origin of the resale ticket, improving transparency for event organizers and recipients.

71223b9

✨ Introduce explicit refund and destroy actions

Add refund_and_destroy routes for orders and tickets. Modify existing destroy routes to prevent automatic refunds. Update UI links in order and ticket tables to reflect new actions.

This provides clear, distinct actions for administrators. Allows removal of orders/tickets with or without an associated refund. Improves control and reduces ambiguity of destroy operations.

4041091

✨ (messages.erb): Add hidden field to specify search type as accounts

18bc6ad

🔥 Remove "Sent with Dandelion" footer from email templates

Remove the "Sent with Dandelion" branding footer from all email templates. This change ensures that outgoing emails no longer contain this specific branding link.

4c4a8d8

💄 Improve email template styling and consistency

Add margin-bottom: 0 to main paragraphs in email templates. Include a consistent "Sent with Dandelion" footer in the CSV email template. This ensures uniform spacing and branding across all outgoing emails.

e1a73b7

🐛 (email): Ensure organisation image is used for email headers

Remove event.organisation.reply_to check from conditions for displaying the organisation's image in email headers. The reply_to field is not relevant to whether the header image should be shown. This ensures the image is used when send_ticket_emails_from_organisation is true and an image exists, regardless of the reply_to setting.

9e2b7b0

🐛 (email): Standardize sender and consolidate reply-to

Standardize the 'from' email address for order and ticket notifications to use a system-controlled email (TICKETS_EMAIL) while displaying the organization's name. This improves email deliverability and branding consistency. Consolidate the 'reply-to' email address logic into a single line after the conditional block. This removes duplication and ensures consistent application of the reply-to address.

03c5f8c

🚸 Enhance organisation tier form for improved usability

Add autosize to description textarea for dynamic resizing. Integrate currency and percentage symbols into threshold and discount fields for better clarity. Wrap the form in a container for improved visual presentation.

4d380b3

🐛 (event_feedbacks/_public.erb): Allow adding initial public feedback

Previously, the public feedback form was not rendered if no public answers existed. This prevented users from adding the first public extract.

This change ensures the form is always available, allowing users to add public feedback even when the public_answers array is initially empty or nil. It improves the user experience by making the input field consistently accessible.

2ca0db4

💄 (event_feedback.erb): Adjust margin unit for email template consistency

Changes the margin-bottom unit from 'rem' to 'em' for a table element. This improves rendering consistency across various email clients, as 'em' units are generally better supported and provide more predictable scaling within email environments compared to 'rem'.