From b0b14e716ebcd0514cb92528b53b55cd0152c270 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Tue, 4 Dec 2012 13:40:11 +0100 Subject: [PATCH] SONAR-3825 upgrade existing widgets on deprecated measure filters --- .../db/migrate/360_move_filter_widgets.rb | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/360_move_filter_widgets.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/360_move_filter_widgets.rb index 406963346b9..ec3d14405d0 100644 --- a/sonar-server/src/main/webapp/WEB-INF/db/migrate/360_move_filter_widgets.rb +++ b/sonar-server/src/main/webapp/WEB-INF/db/migrate/360_move_filter_widgets.rb @@ -26,8 +26,32 @@ class MoveFilterWidgets < ActiveRecord::Migration class MeasureFilter < ActiveRecord::Base end - def self.up + class Widget < ActiveRecord::Base + end + + class WidgetProperty < ActiveRecord::Base + end + class Dashboard < ActiveRecord::Base + end + + def self.up + widgets = Widget.find(:all, :conditions => ["widget_key='filter'"]) + say_with_time "Updading #{widgets.size} widgets" do + widgets.each do |widget| + dashboard = Dashboard.find_by_id(widget.dashboard_id) + widget_property = WidgetProperty.find(:first, :conditions => {:widget_id => widget.id, :kee => 'filter'}) + if dashboard && widget_property + filter = MeasureFilter.find(:first,:conditions => ['name=? and user_id=?', widget_property.text_value, dashboard.user_id]) if dashboard.user_id + filter = MeasureFilter.find(:first,:conditions => ['name=? and shared=?', widget_property.text_value, true]) unless filter + if filter + widget_property.text_value = filter.id.to_s + widget_property.save + widget.widget_key = (filter.data.include?('display=treemap') ? 'measure_filter_treemap' : 'measure_filter_list') + widget.save + end + end + end end end -- 2.39.5