diff --git a/app/models/event.rb b/app/models/event.rb index f30c8ec5e..8007f6a4e 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -13,8 +13,7 @@ class Event < ActiveRecord::Base attr_accessor :recurrence, :recurrence_end_at after_create :event_recurrence - before_save :set_nb_free_places - before_update :update_nb_free_places, if: :nb_total_places_changed? + before_save :update_nb_free_places def name title @@ -33,6 +32,10 @@ class Event < ActiveRecord::Base end end + def reservations + Reservation.where(reservable: self) + end + private def event_recurrence if recurrence.present? and recurrence != 'none' @@ -79,14 +82,12 @@ class Event < ActiveRecord::Base end end - def set_nb_free_places - if nb_free_places.nil? - self.nb_free_places = nb_total_places + def update_nb_free_places + if nb_total_places.nil? + self.nb_free_places = nil + else + reserved_places = reservations.map{|r| r.nb_reserve_places + r.nb_reserve_reduced_places}.inject(0){|sum, t| sum + t } + self.nb_free_places = (nb_total_places - reserved_places) end end - - def update_nb_free_places - diff = nb_total_places - nb_total_places_was - self.nb_free_places += diff - end end diff --git a/config/locales/en.yml b/config/locales/en.yml index 01549d362..bb12272d4 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -106,7 +106,7 @@ en: trainings: # training availabilities i_ve_reserved: "I've reserved" - completed: "Completed" + completed: "Full" export_members: # members list export to EXCEL format diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 1554fc3fb..de96420e0 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -106,7 +106,7 @@ fr: trainings: # disponibilités formations i_ve_reserved: "J'ai réservé" - completed: "Effectué" + completed: "Complet" export_members: # export de la liste des members au format EXCEL