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

Commits on Mar 22, 2026
80e2868

♻️ (payment_methods.rb): refactor to compute organisationship once instead of calling it multiple times

The event.revenue_sharer_organisationship method was being called twice in the same method. Moved the assignment earlier and removed the duplicate call to improve performance and code clarity.

1758e6f

♻️ Extract payment handling logic into separate module

59f0032

♻️ (payment methods): Extract payment method views into dynamic partials

  • Move pay_with_opencollective and pay_with_evm to separate partials
  • Add partial attribute to PaymentMethod class for dynamic rendering
  • Fix evm condition to check event.chain exists before accessing properties
a6aeada

♻️ Refactor payment processing by moving logic into PaymentMethod class

Move payment processing logic from helper methods to individual PaymentMethod objects using lambda functions. This encapsulates payment behavior within each payment method, improving maintainability and reducing coupling with the controller.

9226559

♻️ Refactor payment methods into a centralized configuration class

Instead of hardcoding payment methods across views, helpers, and JavaScript, introduce a PaymentMethod class that encapsulates all payment method configuration (name, labels, conditions, logos, URLs). This eliminates duplication and makes adding new payment methods straightforward.

Key changes: - Extract payment method definitions to lib/payment_methods.rb - Refactor views to iterate over PaymentMethod.all instead of hardcoding - Replace case statement in process_payment with dynamic method dispatch - Simplify JavaScript button visibility logic using grouped selectors - Update organisation model to use PaymentMethod for payment_method? checks

Commits on Mar 21, 2026
9bd258a

⬆️ (Gemfile.lock): upgrade bcrypt and json dependencies

cbcc22b

👷 (CI): add concurrency controls and actions:read permissions to workflows

8ef1126

📝 Update CI workflow instructions for error handling to clarify PR creation steps

c3b5d24

🔧 (ci): update claude-code-action configuration to enable full output, reports and skip permissions for all jobs

70cdd92

🔧 (CI): Improve Honeybadger auto-triaging workflow to use author association instead of hardcoded bot username

This change makes the workflow more robust by checking the author's association type (OWNER, MEMBER, or COLLABORATOR) rather than relying on a specific username, providing better flexibility for future changes.

2bb2edb

🔒️ (CI): restrict @claude mentions to trusted collaborators and add honeybadger bot filter

d9ea353

🐛 Fix jpg export to use event image instead of falling back to organization image

4ddce71

🚸 (event_stats.erb): Remove unnecessary Stripe client ID check for CSV download button, allowing all organisations to export their event stats

Commits on Mar 20, 2026
acc0e70

✨ (events): add jpg format support for event OG image redirects and update calendar feed URLs to use SEO-friendly slugs

c239839

👷 (daily-bug-review.yml): skip permission prompts in CI workflow

Commits on Mar 19, 2026
b1261c0

🐛 Filter hidden organisations from search scope
🔥 Remove obsolete setup-hooks.sh script

6cad3d2

🗑️ Remove pre-commit hook that auto-generated AGENTS.md dependencies section

Simplify AGENTS.md to reference source files directly instead of duplicating content

eee6b74

🗑️ Remove commands/gp.md file

1f322a4

🚚 Move command files from .cursor/commands to root commands directory

06c9af5

🔧 (daily-bug-review.yml): add display_report option to show full output in Claude Code step