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

Commits on Feb 16, 2026
59aeeff

🔥 (contact.erb): remove advisors section and project lead line

891746f

🐛 (build.erb): open contribution link in new tab to avoid losing unsaved form data

5462d61

✏️ Fix typos and clarify wording in insufficient-funds email
💬 Update subject line to be shorter and clearer

db68a4b

✨ Add “insufficient funds” email template and notify admins on failed top-up

  • Create new view for declined-card scenario
  • Catch Stripe::CardError, detect “insufficient funds”
  • Queue Mailgun notification to all org admins
  • Keep Honeybadger reporting for other errors
8828191

🐛 Add organisation context to Honeybadger error reporting

Commits on Feb 15, 2026
66c08f9

💄 Remove rounded class from block elements to align with new flat design

1e860ad

💄 Add rounded corners to block elements for consistent UI styling

dfec234

💄 Force square aspect-ratio on account avatars in _square.erb

81d5b77

🎨 Lower minimum contrast ratio from 2.5 to 2 for clamp_color helper

This relaxes the contrast requirement so slightly darker backgrounds are accepted while still maintaining WCAG 2.0 AA compliance (≥ 2.0) for normal-sized text.

c779dd7

🐛 (events_build.js): prevent redundant theme.css reloads by checking href equality
✨ (events_build.js): swap stylesheets on load to avoid flash of unstyled content

a03a6c6

✨ Add dynamic theme.css injection on color change

  • Introduce updateThemeCSS() to create/remove a tag pointing to /theme.css?theme_color=
959f190

✨ Add quick‐pick theme‐color palette with WCAG contrast guard

  • Add luminosity_contrast gem for WCAG ratio checks
  • Generate harmonious color wheel via quick_colors helper
  • Clamp chosen color to minimum 2.5 contrast vs white & 25 % lightness
  • Render 13 swatches (skip 1st to avoid duplicate primary) in build form
  • JS keeps swatch selection in sync with colorpicker
ca1b637

♻️ (event.rb): move guard clause into callback condition to avoid unnecessary method call

2eae2a9

♻️ (models/event.rb): inline copy_to method into bulk_update_activity_events

57ffb7f

✨ Add capacity to Event's copy fields list

f4205d3

✨ Add checkbox to bulk-update future activity events
📝 Add help text listing fields that will be copied
🔧 Introduce COPY_FIELDS constant and copy_to method
🗃️ Run bulk update asynchronously via Sidekiq

Commits on Feb 14, 2026
306d66c

💄 (build.erb): wrap email form sections in divs with mt-5 spacing to improve visual separation and readability

9e5b942

🐛 (events_build/build.erb): remove duplicate recording email fields and wrap them in conditional visibility
🐛 (event_validation.rb): ensure has_recording is always boolean

0fa0d10

🗃️ Replace extra_info_for_recording_email with has_recording boolean

  • Add has_recording boolean field to Event
  • Derive has_recording from extra_info/recording email fields
  • Update carousel & recording? helper to use new flag
  • Simplifies queries and unifies recording logic
8516ad9

🐛 (asn.rb): add early-skip when window_end exceeds current time to prevent processing incomplete windows