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

Commits on Oct 03, 2025
902059b

♻️ (searchable): inline search_paths variable to simplify development query

ab32268

♻️ Extract duplicated search/tag filtering into filter_events_by_search_and_tags helper

2ba6bf3

♻️ Refactor search to accept a scope and filter within it

Moves every .search(query) call to .search(query, scope) so the MongoDB aggregation pipeline receives the current scope (filters, geo-queries, etc.) as an extra $match stage. This guarantees that text-search results are always intersected with pre-existing filters instead of being applied first and overwritten later, fixing subtle bugs where search appeared to ignore location, time-range or other constraints.

Commits on Oct 02, 2025
8fcd67c

✨ Introduce AccountNotificationCache to speed up network_notifications query

  • Create new AccountNotificationCache model to store pre-computed IDs
  • Cache gathering_ids, account_ids, activity_ids, local_group_ids, organisations_following_ids and organisations_monthly_donor_ids
  • Add cache_valid? / refresh! / invalidate! helpers
  • Wire cache invalidation into Membership, Activityship, Follow, LocalGroupship and Organisationship lifecycle hooks
  • Replace heavy pluck queries in network_notifications with cached IDs
  • Fixes deprecated hidden_changed? / paid_up_changed? in Organisation
c26382e

💄 (events/_waitlist.erb): simplify next-event date display to plain date

4d27667

🐛 (event_feedbacks): hide empty feedback blocks by wrapping in qas.empty? check

79af133

🐛 Fix event_feedbacks to include co-hosted events

607c841

💄 Reduce email font size from 18px to 17px

e337436

💄 (events/_view_options): add tooltips and hide labels on small screens

6fec0fd

🐛 (purchase): strip email suffix from payment-plan ticket names

Commits on Oct 01, 2025
7d9b109

✨ Allow fetching single account by id without search term

78330ab

🐛 (transfer_order.erb): replace events_for_search with events to fix missing method

245b650

🐛 (accounts): enforce presence of search param q to avoid returning full dataset

Commits on Sep 25, 2025
cbd273b

🍱 Replace bread.jpg with bread.png and update solidarity-fund URL

Commits on Sep 15, 2025
ab0dc9e

♻️ (searchable.rb): replace text search with phrase search for more precise results
🔥 (searchable.rb): remove newline bot-protection filter to rely on length check only

6d5438d

🔒️ (search): enforce 3-200 char limit on search queries to prevent abuse

b719486

🐛 Fix missing closing tag in organisations events partial

8761ea1

🐛 Fix pagination display in organisation events partial

Hide pagination when minimal view is requested unless past events are explicitly shown. This prevents empty pagination blocks on lightweight pages while keeping full navigation for past lists.

9629791

🔒️ (searchable.rb): add bot protection by rejecting queries with newlines

23b7e91

✨ Add optional all_fields flag to search method