Browse Source
* Replace Discard with Paper Trail * Track who created or changed records via UI * Track model updates by AdminUserspull/286/head
baarkerlounger
3 years ago
committed by
GitHub
28 changed files with 407 additions and 126 deletions
@ -0,0 +1,15 @@
|
||||
module Admin |
||||
module PaperTrail |
||||
extend ActiveSupport::Concern |
||||
|
||||
included do |
||||
before_action :set_paper_trail_whodunnit |
||||
end |
||||
|
||||
protected |
||||
|
||||
def user_for_paper_trail |
||||
current_admin_user |
||||
end |
||||
end |
||||
end |
@ -0,0 +1,22 @@
|
||||
# This migration creates the `versions` table, the only schema PT requires. |
||||
# All other migrations PT provides are optional. |
||||
class CreateVersions < ActiveRecord::Migration[7.0] |
||||
# The largest text column available in all supported RDBMS is |
||||
# 1024^3 - 1 bytes, roughly one gibibyte. We specify a size |
||||
# so that MySQL will use `longtext` instead of `text`. Otherwise, |
||||
# when serializing very large objects, `text` might not be big enough. |
||||
TEXT_BYTES = 1_073_741_823 |
||||
|
||||
def change |
||||
create_table :versions do |t| |
||||
t.string :item_type, null: false, limit: 191 |
||||
t.bigint :item_id, null: false |
||||
t.string :event, null: false |
||||
t.string :whodunnit |
||||
t.text :object, limit: TEXT_BYTES |
||||
|
||||
t.datetime :created_at |
||||
end |
||||
add_index :versions, %i[item_type item_id] |
||||
end |
||||
end |
@ -0,0 +1,11 @@
|
||||
class RemoveDiscardedAtFromCaseLogs < ActiveRecord::Migration[7.0] |
||||
def up |
||||
remove_index :case_logs, :discarded_at |
||||
remove_column :case_logs, :discarded_at |
||||
end |
||||
|
||||
def down |
||||
add_column :case_logs, :discarded_at, :datetime |
||||
add_index :case_logs, :discarded_at |
||||
end |
||||
end |
Loading…
Reference in new issue