From 0a7b3fb40b40a3ff613a11cd4936bf4cd9b2cc3a Mon Sep 17 00:00:00 2001 From: Xinhui Date: Tue, 2 May 2017 12:42:37 +0200 Subject: TimeTables#edit crud periods from state Refs #2899 --- app/models/chouette/time_table.rb | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'app') diff --git a/app/models/chouette/time_table.rb b/app/models/chouette/time_table.rb index 7285e9716..fcdc525a9 100644 --- a/app/models/chouette/time_table.rb +++ b/app/models/chouette/time_table.rb @@ -54,7 +54,6 @@ class Chouette::TimeTable < Chouette::TridentActiveRecord time_table_date = self.dates.find(date_id) if date_id next if !checked && !time_table_date - # Destroy date if no longer checked next if !checked && time_table_date.destroy @@ -67,9 +66,29 @@ class Chouette::TimeTable < Chouette::TridentActiveRecord time_table_date.update_attributes({in_out: in_out}) end end + + self.state_update_periods state['time_table_periods'] self.save end + def state_update_periods state_periods + state_periods.each do |item| + period = self.periods.find(item['id']) if item['id'] + next if period && item['deleted'] && period.destroy + period ||= self.periods.build + + period.period_start = Date.parse(item['period_start']) + period.period_end = Date.parse(item['period_end']) + + if period.changed? + period.save + item['id'] = period.id + end + end + + state_periods.delete_if {|item| item['deleted']} + end + def self.state_permited_attributes item item.slice('comment').to_hash end -- cgit v1.2.3