Migrate old reports to new experiment level reports

This commit is contained in:
Jure Grabnar 2016-08-04 13:19:46 +02:00
parent da2a06c999
commit 8b2b134614
2 changed files with 46 additions and 3 deletions

View file

@ -20,7 +20,7 @@
data-project-id="<%= @project.id %>"
data-save-report-url="<%= save_modal_project_reports_url %>"
data-report-id="<%= @report.present? ? @report.id : "" %>"
data,unsaved-work-text="<%=t "projects.reports.new.unsaved_work" %>"
data-unsaved-work-text="<%=t "projects.reports.new.unsaved_work" %>"
data-global-sort-text="<%=t "projects.reports.new.global_sort" %>"
>
</div>

View file

@ -1,8 +1,51 @@
class AddExperimentToReportElements < ActiveRecord::Migration
def change
def up
add_column :report_elements, :experiment_id, :integer
add_foreign_key :report_elements, :experiments
add_index :report_elements, :experiment_id
Project.find_each do |project|
experiment = project.experiments.first
next unless experiment && project.reports.count > 0
project.reports.each do |report|
project_element = report.report_elements.where(type_of: 0).first
module_elements = report.report_elements.where(type_of: 1)
next unless project_element
experiment_element = report.report_elements.create(
type_of: :experiment,
experiment: experiment,
position: 0
)
next unless module_elements.count > 0
module_elements.each do |element|
element.parent_id = experiment_element.id
element.save!
end
end
end
end
def down
Project.find_each do |project|
next unless project.reports.count > 0
project.reports.each do |report|
experiment_elements = report.report_elements.where(type_of: 15)
module_elements = report.report_elements.where(type_of: 1)
next unless module_elements.count > 0
module_elements.each do |element|
element.parent_id = nil
element.save!
end
experiment_elements.destroy_all
end
end
remove_index :report_elements, :experiment_id
remove_foreign_key :report_elements, :experiments
remove_column :report_elements, :experiment_id
end
end