mirror of https://github.com/docusealco/docuseal
				
				
				
			
							parent
							
								
									a25022532e
								
							
						
					
					
						commit
						1066131143
					
				| @ -0,0 +1,51 @@ | |||||||
|  | # frozen_string_literal: true | ||||||
|  | 
 | ||||||
|  | class UpdateFieldOptions < ActiveRecord::Migration[7.0] | ||||||
|  |   class MigrationTemplate < ApplicationRecord | ||||||
|  |     self.table_name = 'templates' | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   class MigrationSubmission < ApplicationRecord | ||||||
|  |     self.table_name = 'submissions' | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   # rubocop:disable Metrics | ||||||
|  |   def up | ||||||
|  |     MigrationTemplate.find_each do |template| | ||||||
|  |       next if template.fields.blank? | ||||||
|  | 
 | ||||||
|  |       template_fields = JSON.parse(template.fields) | ||||||
|  | 
 | ||||||
|  |       new_fields = template_fields.deep_dup | ||||||
|  | 
 | ||||||
|  |       new_fields.each do |field| | ||||||
|  |         if field['options'].present? && !field['options'].first.is_a?(Hash) | ||||||
|  |           field['options'] = field['options'].map { |o| { value: o || '', uuid: SecureRandom.uuid } } | ||||||
|  |         end | ||||||
|  |       end | ||||||
|  | 
 | ||||||
|  |       template.update_columns(fields: new_fields.to_json) if template_fields != new_fields | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     MigrationSubmission.find_each do |submission| | ||||||
|  |       next if submission.template_fields.blank? | ||||||
|  | 
 | ||||||
|  |       template_fields = JSON.parse(submission.template_fields) | ||||||
|  | 
 | ||||||
|  |       new_fields = template_fields.deep_dup | ||||||
|  | 
 | ||||||
|  |       new_fields.each do |field| | ||||||
|  |         if field['options'].present? && !field['options'].first.is_a?(Hash) | ||||||
|  |           field['options'] = field['options'].map { |o| { value: o || '', uuid: SecureRandom.uuid } } | ||||||
|  |         end | ||||||
|  |       end | ||||||
|  | 
 | ||||||
|  |       submission.update_columns(template_fields: new_fields.to_json) if template_fields != new_fields | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  |   # rubocop:enable Metrics | ||||||
|  | 
 | ||||||
|  |   def down | ||||||
|  |     nil | ||||||
|  |   end | ||||||
|  | end | ||||||
					Loading…
					
					
				
		Reference in new issue