diff options
| author | Xinhui | 2017-04-27 16:01:49 +0200 |
|---|---|---|
| committer | Xinhui | 2017-04-27 16:01:53 +0200 |
| commit | b7651ff972af8e0e2729d99baa8db51dc5ec25dc (patch) | |
| tree | 5289edece9d0966d915a31e2f2778dc8712a42aa | |
| parent | 45bb5aa08bf914f22f8c2ea549a2217310072556 (diff) | |
| download | chouette-core-b7651ff972af8e0e2729d99baa8db51dc5ec25dc.tar.bz2 | |
Wip TimeTables#update save tags
Refs #2899
| -rw-r--r-- | app/models/chouette/time_table.rb | 1 | ||||
| -rw-r--r-- | spec/models/chouette/time_table_spec.rb | 18 |
2 files changed, 19 insertions, 0 deletions
diff --git a/app/models/chouette/time_table.rb b/app/models/chouette/time_table.rb index 319abfa47..7285e9716 100644 --- a/app/models/chouette/time_table.rb +++ b/app/models/chouette/time_table.rb @@ -34,6 +34,7 @@ class Chouette::TimeTable < Chouette::TridentActiveRecord def state_update state update_attributes(self.class.state_permited_attributes(state)) + self.tag_list = state['tags'].collect{|t| t['name']}.join(', ') days = state['day_types'].split(',') Date::DAYNAMES.map(&:underscore).each do |name| diff --git a/spec/models/chouette/time_table_spec.rb b/spec/models/chouette/time_table_spec.rb index 1117eecc0..96f91aa03 100644 --- a/spec/models/chouette/time_table_spec.rb +++ b/spec/models/chouette/time_table_spec.rb @@ -13,10 +13,28 @@ describe Chouette::TimeTable, :type => :model do item['day_types'] = "Di,Lu,Ma,Me,Je,Ve,Sa" item['current_month'] = time_table.month_inspect(Date.today.beginning_of_month) item['current_periode_range'] = Date.today.beginning_of_month.to_s + item['tags'] = time_table.tags.map{ |tag| {id: tag.id, name: tag.name}} end end let(:state) { time_table_to_state subject } + it 'should save new tags' do + subject.tag_list = "awesome, great" + subject.save + state['tags'] << {'id' => false, 'name' => 'new_tag'} + + subject.state_update state + expect(subject.reload.tags.map(&:name)).to include('new_tag') + end + + it 'should remove removed tags' do + subject.tag_list = "awesome, great" + subject.save + state['tags'] = [] + + subject.state_update state + expect(subject.reload.tags).to be_empty + end it 'should update comment' do state['comment'] = "Edited timetable name" |
