Update paper_trail, show ticket price with currency in versions

This commit is contained in:
Stella Rouzi 2018-04-07 14:07:38 +03:00 committed by James Mason
parent c4eac5ec3b
commit d01d15ba5e
5 changed files with 49 additions and 32 deletions

View file

@ -323,9 +323,8 @@ GEM
rack-openid (~> 1.3.1) rack-openid (~> 1.3.1)
open4 (1.3.4) open4 (1.3.4)
orm_adapter (0.5.0) orm_adapter (0.5.0)
paper_trail (5.2.1) paper_trail (9.0.0)
activerecord (>= 3.0, < 6.0) activerecord (>= 4.2, < 5.3)
activesupport (>= 3.0, < 6.0)
request_store (~> 1.1) request_store (~> 1.1)
parallel (1.12.0) parallel (1.12.0)
parser (2.4.0.2) parser (2.4.0.2)
@ -433,7 +432,8 @@ GEM
json json
redcarpet (3.2.3) redcarpet (3.2.3)
referer-parser (0.3.0) referer-parser (0.3.0)
request_store (1.1.0) request_store (1.4.1)
rack (>= 1.4)
responders (2.4.0) responders (2.4.0)
actionpack (>= 4.2.0, < 5.3) actionpack (>= 4.2.0, < 5.3)
railties (>= 4.2.0, < 5.3) railties (>= 4.2.0, < 5.3)

View file

@ -305,7 +305,7 @@ class Event < ApplicationRecord
def set_week def set_week
self.week = created_at.strftime('%W') self.week = created_at.strftime('%W')
without_versioning do paper_trail.without_versioning do
save! save!
end end
end end

View file

@ -77,7 +77,7 @@ class Registration < ApplicationRecord
def set_week def set_week
self.week = created_at.strftime('%W') self.week = created_at.strftime('%W')
without_versioning do paper_trail.without_versioning do
save! save!
end end
end end

View file

@ -1,8 +1,10 @@
- object = current_or_last_object_state(version.item_type, version.item_id) :ruby
object = current_or_last_object_state(version.item_type, version.item_id)
- unless version.item_type == 'Role' || version.item_type == 'UsersRole' unless version.item_type == 'Role' || version.item_type == 'UsersRole'
- conference = Conference.find_by(id: version.conference_id) conference = Conference.find_by(id: version.conference_id)
- conference_short_title = conference.try(:short_title) || current_or_last_object_state('Conference', version.conference_id).try(:short_title) || ' ' conference_short_title = conference.try(:short_title) || current_or_last_object_state('Conference', version.conference_id).try(:short_title) || ' '
end
- case version.item_type - case version.item_type
- when 'Organization' - when 'Organization'

View file

@ -10,10 +10,13 @@
%thead %thead
%tr %tr
%th Updated Attribute %th Updated Attribute
- if version.event != 'create'
%th Previous Value %th{ class: "#{'hidden' if version.event == 'create'}" }
- if version.event != 'destroy' Prevous Value
%th New Value
%th{ class: "#{'hidden' if version.event == 'destroy'}" }
New Value
- if can? :revert_attribute, version - if can? :revert_attribute, version
%th Action %th Action
%tbody %tbody
@ -21,26 +24,35 @@
- 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'
/ If the attribute is an associated model, show the value of the record it corresponds to, not just the ID. %td
/ Eg. when the version is of an Event, if the attribute is event_type_id it shows / If the attribute is an associated model, show the value of the record it corresponds to, not just the ID.
/ Workshop (ID: 116) instead of just 116 / Eg. when the version is of an Event, if the attribute is event_type_id it shows
- if attribute.include?('_id') / Workshop (ID: 116) instead of just 116
- model_name = attribute.chomp('_id').camelize - if attribute.include?('_id')
- if version.event != 'create' - model_name = attribute.chomp('_id').camelize
%td
- associated_object = current_or_last_object_state(model_name, values[0]) - associated_object = current_or_last_object_state(model_name, values[0])
= associated_object.try(:title) || associated_object.try(:name) = associated_object.try(:title) || associated_object.try(:name)
= values[0].blank? ? '-' : "(ID: #{values[0]})" = values[0].blank? ? '-' : "(ID: #{values[0]})"
%td - else
= values[0].blank? ? '-' : values[0]
- if attribute == 'price_cents'
= "(#{humanized_money_with_symbol previous_version.try(:price)})"
%td
- if attribute.include?('_id')
- model_name = attribute.chomp('_id').camelize
- associated_object = current_or_last_object_state(model_name, values[1]) - associated_object = current_or_last_object_state(model_name, values[1])
= associated_object.try(:title) || associated_object.try(:name) = associated_object.try(:title) || associated_object.try(:name)
= (values[1].blank? ? '-' : "(ID: #{values[1]})") = (values[1].blank? ? '-' : "(ID: #{values[1]})")
- else - else
- if version.event != 'create' = values[1].blank? ? '-' : values[1]
%td= values[0].blank? ? '-' : values[0]
%td= values[1].blank? ? '-' : values[1] - if attribute == 'price_cents'
= "(#{humanized_money_with_symbol version_item.try(:price)})"
- 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}?" }
@ -49,11 +61,14 @@
%tr %tr
%td= attribute %td= attribute
- if attribute.include?('_id') %td
- model_name = attribute.chomp('_id').camelize - if attribute.include?('_id')
%td - model_name = attribute.chomp('_id').camelize
- associated_object = current_or_last_object_state(model_name, value) - associated_object = current_or_last_object_state(model_name, value)
= associated_object.try(:title) || associated_object.try(:name) = associated_object.try(:title) || associated_object.try(:name)
= value.blank? ? '-' : "(ID: #{value})" = value.blank? ? '-' : "(ID: #{value})"
- else - else
%td= value.blank? ? '-' : value = value.blank? ? '-' : value
- if attribute == 'price_cents'
= "(#{humanized_money_with_symbol version_item.try(:price)})"