Sha256: 06be4b9a5f91ae9b626c6e8f2f45723b6ba27fa39b7b72d57589d43aaff40d2f
Contents?: true
Size: 1.61 KB
Versions: 4
Compression:
Stored size: 1.61 KB
Contents
module AbAdmin module Models module Track extend ActiveSupport::Concern included do belongs_to :trackable, polymorphic: true belongs_to :owner, class_name: 'User' belongs_to :user, class_name: 'User' serialize :parameters, Hash serialize :trackable_changes, Hash before_create :make_trackable, if: :trackable class_attribute :tracking_enabled self.tracking_enabled = true alias_method :tracking_enabled?, :tracking_enabled scope :recently, -> { order('id DESC') } end def action_title(params = {}) parts = key.split('.') lookups = [] if parts.length == 2 lookups << [parts[0], 'actions', parts[1], 'title'] lookups << [parts[0], 'actions', parts[1]] lookups << ['actions', parts[1], 'title'] else lookups << ['actions', key, 'title'] lookups << ['actions', key] end lookups.map!{|l| l.join('.').to_sym } lookups << key I18n.t(lookups.shift, (parameters.merge(params) || {}).merge(scope: :admin, default: lookups)) end def trackable_changed_attrs return unless trackable trackable_changes.keys.map { |attr| trackable_han(attr) }.join(', ') end def trackable_han(attr) attr_s = attr.to_s trackable.class.han attr_s =~ /_ids$/ ? attr_s.sub(/_ids$/, '').pluralize : attr_s end private def make_trackable self.name ||= trackable.han self.trackable_changes = trackable.changes.except(:updated_at) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
ab_admin-0.6.1 | lib/ab_admin/models/track.rb |
ab_admin-0.6.0 | lib/ab_admin/models/track.rb |
ab_admin-0.5.0 | lib/ab_admin/models/track.rb |
ab_admin-0.4.0 | lib/ab_admin/models/track.rb |