mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2025-01-29 18:52:22 +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
|
attr_accessor :recurrence, :recurrence_end_at
|
||||||
|
|
||||||
after_create :event_recurrence
|
after_create :event_recurrence
|
||||||
before_save :set_nb_free_places
|
before_save :update_nb_free_places
|
||||||
before_update :update_nb_free_places, if: :nb_total_places_changed?
|
|
||||||
|
|
||||||
def name
|
def name
|
||||||
title
|
title
|
||||||
@ -33,6 +32,10 @@ class Event < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def reservations
|
||||||
|
Reservation.where(reservable: self)
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
def event_recurrence
|
def event_recurrence
|
||||||
if recurrence.present? and recurrence != 'none'
|
if recurrence.present? and recurrence != 'none'
|
||||||
@ -79,16 +82,12 @@ class Event < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
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
|
def update_nb_free_places
|
||||||
unless nb_total_places_was.nil? or nb_total_places.nil?
|
if nb_total_places.nil?
|
||||||
diff = nb_total_places - nb_total_places_was
|
self.nb_free_places = nil
|
||||||
self.nb_free_places += diff
|
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
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user