This implementation provides automatic geocoding and map integration:
- **Event Model Enhancements:**
- Automatic geocoding callback using OpenStreetMap Nominatim API
- 3-tier fallback system: exact coordinates → city-based → country default
- Fallback coordinates for major French cities (Paris, Lyon, Marseille, etc.)
- Robust error handling that prevents event creation failures
- **User-Friendly Event Forms:**
- Address-first approach - users just enter addresses
- Hidden coordinate fields (auto-generated behind scenes)
- Real-time geocoding with 1.5s debounce
- "Ma position" button for current location with reverse geocoding
- "Prévisualiser" button to show map links
- Smart feedback system (loading, success, warnings, errors)
- **Enhanced Event Show Page:**
- Map provider links (OpenStreetMap, Google Maps, Apple Plans)
- Warning badges when approximate coordinates are used
- Address-based URLs for better map integration
- **Comprehensive JavaScript Controller:**
- Debounced auto-geocoding to minimize API calls
- Multiple geocoding strategies (manual vs automatic)
- Promise-based geolocation with proper error handling
- Dynamic map link generation with address + coordinates
- **Failure Handling:**
- Events never fail to save due to missing coordinates
- Fallback to city-based coordinates when exact geocoding fails
- User-friendly warnings when approximate locations are used
- Maintains existing coordinates on update failures
🤖 Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
- Updated breadcrumb on event show page to use the new consistent style with rounded background and shadow
- Improved spacing and responsive design for breadcrumbs
- Made minor layout adjustments to flash messages component
- Enhanced overall UI consistency across the application
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Updated all breadcrumbs across the application to use the new consistent style
- Added rounded background with shadow for better visual hierarchy
- Improved spacing and responsive design
- Maintained proper navigation paths for all pages
- Enhanced overall UI consistency with the new design language
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Document various invoice generation approaches (PDF, HTML-to-PDF, Stripe)
- Compare Stripe Payment Intents vs Invoicing vs Checkout Sessions
- Provide complete code implementation with models, controllers, services
- Include phase-by-phase implementation strategy for current use case
- Add testing, security, and deployment guidelines
- Recommend hybrid approach: keep current checkout + post-payment invoices
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update events/show form to use event_order_new_path instead of order_new_path
- Fix JavaScript redirect in ticket_selection_controller.js to use event-scoped URL
- Ensure proper event context is maintained throughout the order flow
- Resolve routing issues that caused "Commande non trouvée" errors
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create new TicketsController with actions for name collection, creation, and checkout
- Add dedicated ticket views (new.html.erb, checkout.html.erb, show.html.erb)
- Update ticket_selection_controller.js to handle form submission via AJAX
- Add store_cart endpoint in EventsController for session-based cart management
- Update routes to support new ticket flow: /tickets/new, /create, /checkout
- Fix attribute name consistency across views (title→name, starts_at→start_time)
- Add Stripe checkout integration with proper error handling
- Remove deprecated collect_names flow in favor of streamlined approach
The flow is now: Event selection → AJAX cart storage → Name collection → Checkout → Payment
- Add ticket selection functionality to event show page using Stimulus
- Create ticket_selection_controller.js for handling ticket quantity changes
- Update ticket card component and event show view to work with Stimulus
- Add comprehensive comments to all JavaScript files for better maintainability
- Remove dependent: :destroy from event ticket_types association
- Enhanced events index page with improved visual design and better information display
- Completely redesigned event show page with modern layout, ticket selection, and checkout functionality
- Implemented Stripe payment processing for ticket purchases
- Created ticket generation system with PDF tickets and QR codes
- Added email confirmation system with ticket attachments
- Updated database configuration to use SQLite for easier development setup
- Fixed gem dependencies and resolved conflicts
- Improved error handling throughout the checkout process
- Enhanced Stimulus controller for ticket cart management
- Added proper redirect handling for successful and cancelled payments
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit refactors the entire application to replace the 'parties' concept with 'events'. All controllers, models, views, and related files have been updated to reflect this change. The parties table has been replaced with an events table, and all related functionality has been updated accordingly.
- Added slug column to parties table via migration
- Updated seed data to properly assign slug values to Party records
- Fixed NoMethodError when assigning slug attribute in seed file
This resolves the ActiveModel::UnknownAttributeError that occurred
when trying to set the slug attribute on Party model instances.