mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2025-01-17 06:52:27 +01:00
[bug taiga#25] allow event update if changing ng_places
This commit is contained in:
parent
e1567ba7c5
commit
a0397a2c15
@ -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,16 +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
|
||||
end
|
||||
end
|
||||
|
||||
def update_nb_free_places
|
||||
unless nb_total_places_was.nil? or nb_total_places.nil?
|
||||
diff = nb_total_places - nb_total_places_was
|
||||
self.nb_free_places += diff
|
||||
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
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user