From dca034ca9ffafca64e1dca96c21618999b2e34cb Mon Sep 17 00:00:00 2001 From: Andrew Brown Date: Sat, 20 Mar 2021 17:04:21 -0700 Subject: [PATCH] start implementing stopgap field type between new and old link types --- app/models/serializers/content_serializer.rb | 4 +- app/views/content/form/_panel.html.erb | 10 +++-- .../form/field_types/_legacy_link.html.erb | 1 - .../form/field_types/_migration_link.html.erb | 44 +++++++++++++++++++ ...2_add_field_options_to_attribute_fields.rb | 5 +++ ...link_migration_flag_to_attribute_fields.rb | 6 +++ db/schema.rb | 36 ++------------- 7 files changed, 68 insertions(+), 38 deletions(-) create mode 100644 app/views/content/form/field_types/_migration_link.html.erb create mode 100644 db/migrate/20210320224432_add_field_options_to_attribute_fields.rb create mode 100644 db/migrate/20210320230154_add_link_migration_flag_to_attribute_fields.rb diff --git a/app/models/serializers/content_serializer.rb b/app/models/serializers/content_serializer.rb index af5de370..2772a546 100644 --- a/app/models/serializers/content_serializer.rb +++ b/app/models/serializers/content_serializer.rb @@ -66,7 +66,8 @@ class ContentSerializer hidden: !!field.hidden, position: field.position, old_column_source: field.old_column_source, - value: value_for(field, content) + value: value_for(field, content), + options: field.field_options } }.sort do |a, b| if a[:position] && b[:position] @@ -111,6 +112,7 @@ class ContentSerializer def value_for(attribute_field, content) case attribute_field.field_type when 'link' + # TODO: use attribute_values but fall back on sending old_column if blank / not migrated self.raw_model.send(attribute_field.old_column_source) when 'tags' diff --git a/app/views/content/form/_panel.html.erb b/app/views/content/form/_panel.html.erb index 11c37068..ec8ebb5f 100644 --- a/app/views/content/form/_panel.html.erb +++ b/app/views/content/form/_panel.html.erb @@ -10,11 +10,15 @@
<% if category[:name] == 'gallery' %> - <%= render partial: 'content/form/gallery/panel', locals: { f: f, content: content } %> + <%= form_for raw_model do |f| %> + <%= render partial: 'content/form/gallery/panel', locals: { f: f, content: content } %> + <% end %> <% end %> <% if category[:name] == 'contributors' %> - <%= render partial: 'content/form/contributors', locals: { f: f, content: content } %> + <%= form_for raw_model do |f| %> + <%= render partial: 'content/form/contributors', locals: { f: f, content: content } %> + <% end %> <% end %> <% category[:fields].each do |field| %> @@ -24,7 +28,7 @@
<% if field[:type] == 'link' %> <%= - render partial: 'content/form/field_types/legacy_link', locals: { + render partial: 'content/form/field_types/migration_link', locals: { f: f, attribute: field[:old_column_source], field: field, diff --git a/app/views/content/form/field_types/_legacy_link.html.erb b/app/views/content/form/field_types/_legacy_link.html.erb index a1a966ae..89ada440 100644 --- a/app/views/content/form/field_types/_legacy_link.html.erb +++ b/app/views/content/form/field_types/_legacy_link.html.erb @@ -1,4 +1,3 @@ -<%= raise field.inspect %>