mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-06 21:24:23 +08:00
Migrate old reports to new experiment level reports
This commit is contained in:
parent
da2a06c999
commit
8b2b134614
2 changed files with 46 additions and 3 deletions
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue