diff --git a/app/controllers/concerns/bulkrax/datatables_behavior.rb b/app/controllers/concerns/bulkrax/datatables_behavior.rb index 46cbecb4..570ac18d 100644 --- a/app/controllers/concerns/bulkrax/datatables_behavior.rb +++ b/app/controllers/concerns/bulkrax/datatables_behavior.rb @@ -132,7 +132,7 @@ def format_entries(entries, item) status_message: status_message_for(e), type: e.type, updated_at: e.updated_at, - errors: e.latest_status&.error_class&.present? ? view_context.link_to(e.latest_status.error_class, view_context.item_entry_path(item, e), title: e.latest_status.error_message) : "", + errors: e.status_message == 'Failed' ? view_context.link_to(e.error_class, view_context.item_entry_path(item, e)) : "", actions: entry_util_links(e, item) } end diff --git a/app/models/bulkrax/status.rb b/app/models/bulkrax/status.rb index 86c850b0..a8df74ba 100644 --- a/app/models/bulkrax/status.rb +++ b/app/models/bulkrax/status.rb @@ -2,7 +2,7 @@ module Bulkrax class Status < ApplicationRecord - belongs_to :statusable, polymorphic: true, denormalize: { fields: %i[status_message], if: :latest? } + belongs_to :statusable, polymorphic: true, denormalize: { fields: %i[status_message error_class], if: :latest? } belongs_to :runnable, polymorphic: true serialize :error_backtrace, Array diff --git a/db/migrate/20241203010707_entry_error_denormalization.rb b/db/migrate/20241203010707_entry_error_denormalization.rb new file mode 100644 index 00000000..9a28775f --- /dev/null +++ b/db/migrate/20241203010707_entry_error_denormalization.rb @@ -0,0 +1,5 @@ +class EntryErrorDenormalization < ActiveRecord::Migration[6.1] + def change + add_column :bulkrax_entries, :error_class, :string unless column_exists?(:bulkrax_entries, :error_class) + end +end diff --git a/lib/tasks/bulkrax_tasks.rake b/lib/tasks/bulkrax_tasks.rake index 18b5b8e1..4f597874 100644 --- a/lib/tasks/bulkrax_tasks.rake +++ b/lib/tasks/bulkrax_tasks.rake @@ -9,7 +9,7 @@ namespace :bulkrax do progress_mark: ' ', remainder_mark: "\u{FF65}") Bulkrax::Status.latest_by_statusable.includes(:statusable).find_each do |status| - status.statusable.update(status_message: status.status_message) + status.statusable.update(status_message: status.status_message, error_class: status.error_class) @progress.increment end end