aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorXinhui2017-05-02 12:42:37 +0200
committerRobert2017-05-02 16:44:25 +0200
commit0a7b3fb40b40a3ff613a11cd4936bf4cd9b2cc3a (patch)
tree08df498eadb1960b292a8d24386e017a650a2b94 /app
parent3408fc0023e1c43359a0b52e249d6ce270f2f9d4 (diff)
downloadchouette-core-0a7b3fb40b40a3ff613a11cd4936bf4cd9b2cc3a.tar.bz2
TimeTables#edit crud periods from state
Refs #2899
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