Use name/title instead of ID for associated object when showing changes
This commit is contained in:
parent
c7b8418f1a
commit
b982d18bbb
4 changed files with 34 additions and 6 deletions
|
|
@ -397,6 +397,7 @@ module ApplicationHelper
|
||||||
# Returns object as it was before version's change(unless its a create event's version)
|
# Returns object as it was before version's change(unless its a create event's version)
|
||||||
# Else Returns object as it was after version's change
|
# Else Returns object as it was after version's change
|
||||||
def get_version_object(version)
|
def get_version_object(version)
|
||||||
|
return nil unless version
|
||||||
version.item || version.reify || version.next.reify
|
version.item || version.reify || version.next.reify
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -502,4 +503,10 @@ module ApplicationHelper
|
||||||
'deleted'
|
'deleted'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def object_last_description(model_name, id)
|
||||||
|
object_version = PaperTrail::Version.where(item_type: model_name, item_id: id).last
|
||||||
|
object = (object_version.reify || object_version.item) if object_version
|
||||||
|
object.try(:name) || object.try(:title)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ class Role < ActiveRecord::Base
|
||||||
has_many :users_roles
|
has_many :users_roles
|
||||||
has_many :users, through: :users_roles
|
has_many :users, through: :users_roles
|
||||||
|
|
||||||
has_paper_trail on: [:update], only: [:name, :description], meta: { conference_id: :resource_id }
|
has_paper_trail on: [:create, :update], only: [:name, :description], meta: { conference_id: :resource_id }
|
||||||
|
|
||||||
before_destroy :cancel
|
before_destroy :cancel
|
||||||
scopify
|
scopify
|
||||||
|
|
|
||||||
|
|
@ -12,17 +12,37 @@
|
||||||
- if can? :revert_attribute, version
|
- if can? :revert_attribute, version
|
||||||
%th Action
|
%th Action
|
||||||
%tbody
|
%tbody
|
||||||
- if version.event!= 'destroy'
|
- if version.event != 'destroy'
|
||||||
- version.changeset.reject{ |_, values| values[0].blank? && values[1].blank? }.each do |attribute, values|
|
- version.changeset.reject{ |_, values| values[0].blank? && values[1].blank? }.each do |attribute, values|
|
||||||
%tr
|
%tr
|
||||||
%td= attribute
|
%td= attribute
|
||||||
- if version.event != 'create'
|
|
||||||
%td= values[0].blank? ? '-' : values[0]
|
- if attribute.include?('_id')
|
||||||
%td= values[1].blank? ? '-' : values[1]
|
- model_name = attribute.chomp('_id').camelize
|
||||||
|
- if version.event != 'create'
|
||||||
|
%td
|
||||||
|
= object_last_description(model_name, values[0])
|
||||||
|
= "(ID: #{values[0].blank? ? '-' : values[0]})"
|
||||||
|
%td
|
||||||
|
= object_last_description(model_name, values[1])
|
||||||
|
= "(ID: #{values[1].blank? ? '-' : values[1]})"
|
||||||
|
|
||||||
|
- else
|
||||||
|
- if version.event != 'create'
|
||||||
|
%td= values[0].blank? ? '-' : values[0]
|
||||||
|
%td= values[1].blank? ? '-' : values[1]
|
||||||
|
|
||||||
- if can? :revert_attribute, version
|
- if can? :revert_attribute, version
|
||||||
%td= link_to 'Revert', admin_revision_history_revert_attribute_path(id: version.id, attribute: attribute), class: 'btn btn-sm btn-primary', data: { confirm: "Are you sure you want to revert #{attribute}?" }
|
%td= link_to 'Revert', admin_revision_history_revert_attribute_path(id: version.id, attribute: attribute), class: 'btn btn-sm btn-primary', data: { confirm: "Are you sure you want to revert #{attribute}?" }
|
||||||
- else
|
- else
|
||||||
- version.reify.attributes.each do |attribute, value|
|
- version.reify.attributes.each do |attribute, value|
|
||||||
%tr
|
%tr
|
||||||
%td= attribute
|
%td= attribute
|
||||||
%td= value.blank? ? '-' : value
|
|
||||||
|
- if attribute.include?('_id')
|
||||||
|
- model_name = attribute.chomp('_id').camelize
|
||||||
|
%td
|
||||||
|
= object_last_description(model_name, value)
|
||||||
|
= "(ID: #{value.blank? ? '-' : value})"
|
||||||
|
- else
|
||||||
|
%td= value.blank? ? '-' : value
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,7 @@ feature 'Version' do
|
||||||
new_conference.update_attributes(title: 'New Con', short_title: 'NewCon')
|
new_conference.update_attributes(title: 'New Con', short_title: 'NewCon')
|
||||||
|
|
||||||
visit admin_revision_history_path
|
visit admin_revision_history_path
|
||||||
|
select '100', from: 'versionstable_length'
|
||||||
expect(page).to have_text('Someone (probably via the console) created new conference New Con')
|
expect(page).to have_text('Someone (probably via the console) created new conference New Con')
|
||||||
expect(page).to have_text('Someone (probably via the console) created new event type Talk in conference NewCon')
|
expect(page).to have_text('Someone (probably via the console) created new event type Talk in conference NewCon')
|
||||||
expect(page).to have_text('Someone (probably via the console) created new event type Workshop in conference NewCon')
|
expect(page).to have_text('Someone (probably via the console) created new event type Workshop in conference NewCon')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue