Skip to content

Release: crowd funding, mode test, iframe export, suppression utilisateur - #31

Merged
rockynox merged 21 commits into
mainfrom
develop
Jun 17, 2026
Merged

Release: crowd funding, mode test, iframe export, suppression utilisateur#31
rockynox merged 21 commits into
mainfrom
develop

Conversation

@rockynox

Copy link
Copy Markdown
Member

Nouveautés

Compatibilité CrowdFunding

  • Les formulaires HelloAsso de type CrowdFunding sont désormais pris en charge en plus des Donations (form_type ajouté sur charity_stream)
  • ApiWrapper::getOrganizationForms accepte maintenant les deux types en parallèle
  • Migration 15-add-form-type.sql

Mode test

  • Activation par stream/event depuis l'interface admin : simule un montant de collecte sans appeler l'API HelloAsso
  • Formulaire de simulation de don (pseudo, montant, message) avec remise à zéro
  • Overlay "⚠️ mode test" affiché sur les widgets en mode test
  • Migration 14-add-test-mode.sql — colonnes is_test_mode et test_amount sur charity_stream et charity_event

Export iframe

  • Bouton d'export iframe sur les pages d'édition stream/event
  • Snippet <iframe> pré-rempli avec les bonnes dimensions et l'URL du widget

Suppression d'utilisateur

  • Les admins peuvent supprimer un compte utilisateur depuis l'onglet Users (impossible de se supprimer soi-même)
  • Route DELETE /admin/users/{id} avec redirection sur l'onglet users

Améliorations diverses

  • Gestion des erreurs widget refactorisée via renderWidgetError avec template dédié widget/error.html.twig
  • Cache TTL du widget configurable via variable d'environnement WIDGET_CACHE_TTL (défaut 30s)
  • Validation des slugs d'organisation dans le cron
  • AdminController : onglet actif conservé entre les redirections POST → GET

Migrations à appliquer

migrations/14-add-test-mode.sql
migrations/15-add-form-type.sql

rockynox and others added 21 commits June 16, 2026 13:49
…references

- Restore initGoalsManager() in admin.js with chips UI and window.previewGoal sync
- Remove stream_goal/event_goal input lookups from preview functions (replaced by window.previewGoal)
- Fix event/edit.html.twig: replace event.goal references with eventGoals[0] ?? 1000

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fetch endpoints now return active goal in JSON response
- JS detects goal change between polls, triggers fireworks + banner
- CSS: particle burst animation, goal-reached banner, goal text flash
- Goal text updates live to show the next objective

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Bar fills to 100% when a goal is crossed, then shimmer/glow plays (2.4s)
- Bar then resets to the new percentage relative to the next goal
- Goal text updates live to show the next objective
- Both stream and event donation bar endpoints now return active goal

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Backend: all 4 fetch endpoints now return allGoalsReached flag
- Donation bar: stays at 100% when last goal is crossed (no reset)
- Card: banner shows "Tous les objectifs atteints !" instead of "Prochain objectif"
- Detection: justCrossedGoal catches both goal change AND last goal threshold crossing

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…vent edit templates

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…dion reorder

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace full card section with a compact toggle slider in the page header
- Show simulation section (amount, reset, simulate form) only when mode is active
- Show reload reminder only when mode is active

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Checkboxes don't submit their value when unchecked, so toggling off
never reached the backend. The hidden input ensures toggle_test_mode=1
is always sent on form submit.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- In triggerGoalAnimation: call updateDonationBar in the isLastGoal branch
  so the current-amount counter updates after the shimmer animation ends
- In stream.js / event.js: initialize CountUp with currentAmount/100 (euros)
  instead of raw centimes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
feat: système de goals multiples avec animations et auto-save
@rockynox
rockynox merged commit 6201ea7 into main Jun 17, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant