aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/models/chouette/time_table.rb21
1 files changed, 20 insertions, 1 deletions
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