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

Commits on Aug 03, 2025
5597283

"Update Claude PR Assistant workflow"

ef136a4

Merge pull request #48 from symbiota-coop/add-claude-github-actions-1754206471069

Add Claude Code GitHub Workflow

de4585d

Merge pull request #47 from symbiota-coop/claude/issue-46-20250803-0727

Use || not_found pattern for carousel lookup

181d467

"Update Claude Code Review workflow"

0c30eaf

"Update Claude PR Assistant workflow"

9be8b84

Use || not_found pattern instead of nil checks for carousel

10c321e

Merge pull request #45 from symbiota-coop/add-claude-github-actions-1754205323563

Add Claude Code GitHub Workflow

7b34e38

Claude Code Review workflow

6ce98b6

Claude PR Assistant workflow

Commits on Aug 02, 2025
44f94ad

🐛 (ticket_notifications.rb): Assign account to order for notifications

Assigns the account associated with the ticket to the order object. This ensures the order has the correct account context, which is crucial for subsequent operations like email templating that may rely on order.account being present and correctly set.

649cc5a

🐛 Fix order PDF generation and update discount label

Refactor order PDF to use order's account name for consistency. Add safe navigation for time zone to prevent errors when account is nil. Update discount label in purchase view to be more general.

35696ed

🐛 (emails): Safely access account time zone

Use #try to prevent a NoMethodError if the account object or its time_zone attribute is nil when rendering event details in ticket emails.

cdeb00d

✨ (discounts): Support multiple comma-separated filters for discounts

This change modifies the discount code filtering logic in both the purchase view and the order model. Previously, discount codes could only filter based on a single keyword in the ticket type name.

Now, the discount_code.filter string is split by commas, and each part is used as an individual filter. If any of these filters match the ticket type name, the discount is considered applicable. This enhances the flexibility of discount codes, allowing them to target multiple specific ticket types with a single filter string.

bbe1a43

♻️ Refactor email personalization and account handling

Remove firstname personalization from ticket and order email templates. Stop passing firstname as a recipient variable to Mailgun. Refactor account variable usage in email views and notification concerns. Add checks for account.persisted? to ensure links are generated only for saved accounts, improving robustness.

9c2cac5

✨ Add ability to resend single tickets

Introduces a new endpoint to resend individual tickets. Adds a UI option in the tickets table for this action. Updates the ticket notification logic to allow sending to a specific email.

This enables event administrators to resend a single ticket, addressing cases where only one ticket needs to be resent, rather than the entire order confirmation.

Commits on Jul 27, 2025
95a26b5

✨ (events.erb): introduce full_width variable for layout control

1ca6a0e

⚡️ (helpers.rb): Optimize time zone lookup to avoid redundant calls

The MaxMind GeoIP2 time zone lookup was previously performed twice: once in the conditional check and again for assignment. This change assigns the result to a local variable within the elsif condition, ensuring the lookup is performed only once. This improves efficiency by avoiding redundant computation.

Commits on Jul 25, 2025
aefaef3

💡 (Gemfile): Add comments explaining dependency constraints

Explain why 'coinbase_commerce' is problematic, as it is unmaintained and prevents 'mailgun-ruby' from being updated. Clarify that 'mailgun-ruby' is pinned due to attachment issues with version 1.3.2, which is the latest allowed by 'coinbase_commerce'.

cb195d3

⚰️ (models/concerns/order_notifications.rb): Remove redundant send_tickets_again method

The send_tickets_again method duplicated the functionality of send_tickets and was no longer being called. Removing this dead code simplifies the OrderNotifications concern and improves maintainability.

Commits on Jul 24, 2025
ff089cf

✨ Implement ticket resend functionality

Adds a new send_tickets_again method to the OrderNotifications concern. This method allows for re-sending ticket emails to customers, which is useful for cases where the initial email might have been missed or a customer requests a resend.

The new method is handled asynchronously to prevent blocking the main application thread during email delivery. It also includes a distinct subject line to clearly indicate that the email is a resend.