diff --git a/app/controllers/promoter/events_controller.rb b/app/controllers/promoter/events_controller.rb index 31e2ada..a45c7c0 100644 --- a/app/controllers/promoter/events_controller.rb +++ b/app/controllers/promoter/events_controller.rb @@ -5,7 +5,7 @@ class Promoter::EventsController < ApplicationController before_action :authenticate_user! before_action :ensure_can_manage_events! - before_action :set_event, only: [ :show, :edit, :update, :destroy, :publish, :unpublish, :cancel, :mark_sold_out, :duplicate ] + before_action :set_event, only: [ :show, :edit, :update, :destroy, :publish, :unpublish, :cancel, :mark_sold_out, :mark_available, :duplicate ] # Display all events for the current promoter def index @@ -93,6 +93,16 @@ class Promoter::EventsController < ApplicationController end end + # Mark event as available again + def mark_available + if @event.sold_out? + @event.update(state: :published) + redirect_to promoter_event_path(@event), notice: "Event marqué comme disponible!" + else + redirect_to promoter_event_path(@event), alert: "Cet event ne peut pas être marqué comme disponible." + end + end + # Duplicate an event and all its ticket types def duplicate clone_ticket_types = params[:clone_ticket_types] == "true" diff --git a/app/models/event.rb b/app/models/event.rb index 674770c..2fa5daa 100755 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -55,7 +55,6 @@ class Event < ApplicationRecord # Scope for published events ordered by start time scope :upcoming, -> { published.where("start_time >= ?", Time.current).order(start_time: :asc) } - # === Instance Methods === # Check if coordinates were successfully geocoded or are fallback coordinates diff --git a/app/views/promoter/events/show.html.erb b/app/views/promoter/events/show.html.erb index fe95cb4..ce0b4a1 100644 --- a/app/views/promoter/events/show.html.erb +++ b/app/views/promoter/events/show.html.erb @@ -132,10 +132,14 @@
Tous les billets pour cet événement ont été vendus.