diff options
| author | Xinhui | 2017-05-02 12:42:37 +0200 |
|---|---|---|
| committer | Robert | 2017-05-02 16:44:25 +0200 |
| commit | 0a7b3fb40b40a3ff613a11cd4936bf4cd9b2cc3a (patch) | |
| tree | 08df498eadb1960b292a8d24386e017a650a2b94 /app | |
| parent | 3408fc0023e1c43359a0b52e249d6ce270f2f9d4 (diff) | |
| download | chouette-core-0a7b3fb40b40a3ff613a11cd4936bf4cd9b2cc3a.tar.bz2 | |
TimeTables#edit crud periods from state
Refs #2899
Diffstat (limited to 'app')
| -rw-r--r-- | app/models/chouette/time_table.rb | 21 |
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 |
