From d01d15ba5e0d2fad978c0da8410d16615ad97e2e Mon Sep 17 00:00:00 2001 From: Stella Rouzi Date: Sat, 7 Apr 2018 14:07:38 +0300 Subject: [PATCH] Update paper_trail, show ticket price with currency in versions --- Gemfile.lock | 8 +-- app/models/event.rb | 2 +- app/models/registration.rb | 2 +- .../versions/_object_desc_and_link.html.haml | 10 ++-- app/views/shared/_object_changes.html.haml | 59 ++++++++++++------- 5 files changed, 49 insertions(+), 32 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 4966edd5..d9d0d587 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -323,9 +323,8 @@ GEM rack-openid (~> 1.3.1) open4 (1.3.4) orm_adapter (0.5.0) - paper_trail (5.2.1) - activerecord (>= 3.0, < 6.0) - activesupport (>= 3.0, < 6.0) + paper_trail (9.0.0) + activerecord (>= 4.2, < 5.3) request_store (~> 1.1) parallel (1.12.0) parser (2.4.0.2) @@ -433,7 +432,8 @@ GEM json redcarpet (3.2.3) referer-parser (0.3.0) - request_store (1.1.0) + request_store (1.4.1) + rack (>= 1.4) responders (2.4.0) actionpack (>= 4.2.0, < 5.3) railties (>= 4.2.0, < 5.3) diff --git a/app/models/event.rb b/app/models/event.rb index 8e5dd60a..45a37c43 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -305,7 +305,7 @@ class Event < ApplicationRecord def set_week self.week = created_at.strftime('%W') - without_versioning do + paper_trail.without_versioning do save! end end diff --git a/app/models/registration.rb b/app/models/registration.rb index 4cd9d034..66c33431 100644 --- a/app/models/registration.rb +++ b/app/models/registration.rb @@ -77,7 +77,7 @@ class Registration < ApplicationRecord def set_week self.week = created_at.strftime('%W') - without_versioning do + paper_trail.without_versioning do save! end end diff --git a/app/views/admin/versions/_object_desc_and_link.html.haml b/app/views/admin/versions/_object_desc_and_link.html.haml index 3da5ffc9..3ad17d07 100644 --- a/app/views/admin/versions/_object_desc_and_link.html.haml +++ b/app/views/admin/versions/_object_desc_and_link.html.haml @@ -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' - - 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) || ' ' + unless version.item_type == 'Role' || version.item_type == 'UsersRole' + 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) || ' ' + end - case version.item_type - when 'Organization' diff --git a/app/views/shared/_object_changes.html.haml b/app/views/shared/_object_changes.html.haml index 1d0b2fe0..b8625de7 100644 --- a/app/views/shared/_object_changes.html.haml +++ b/app/views/shared/_object_changes.html.haml @@ -10,10 +10,13 @@ %thead %tr %th Updated Attribute - - if version.event != 'create' - %th Previous Value - - if version.event != 'destroy' - %th New Value + + %th{ class: "#{'hidden' if version.event == 'create'}" } + Prevous Value + + %th{ class: "#{'hidden' if version.event == 'destroy'}" } + New Value + - if can? :revert_attribute, version %th Action %tbody @@ -21,26 +24,35 @@ - version.changeset.reject{ |_, values| values[0].blank? && values[1].blank? }.each do |attribute, values| %tr %td= attribute - - / If the attribute is an associated model, show the value of the record it corresponds to, not just the ID. - / Eg. when the version is of an Event, if the attribute is event_type_id it shows - / Workshop (ID: 116) instead of just 116 - - if attribute.include?('_id') - - model_name = attribute.chomp('_id').camelize - - if version.event != 'create' - %td + - if version.event != 'create' + %td + / If the attribute is an associated model, show the value of the record it corresponds to, not just the ID. + / Eg. when the version is of an Event, if the attribute is event_type_id it shows + / Workshop (ID: 116) instead of just 116 + - if attribute.include?('_id') + - model_name = attribute.chomp('_id').camelize - associated_object = current_or_last_object_state(model_name, values[0]) + = associated_object.try(:title) || associated_object.try(:name) = 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.try(:title) || associated_object.try(:name) = (values[1].blank? ? '-' : "(ID: #{values[1]})") - - else - - if version.event != 'create' - %td= values[0].blank? ? '-' : values[0] - %td= values[1].blank? ? '-' : values[1] + - else + = values[1].blank? ? '-' : values[1] + + - if attribute == 'price_cents' + = "(#{humanized_money_with_symbol version_item.try(:price)})" - 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}?" } @@ -49,11 +61,14 @@ %tr %td= attribute - - if attribute.include?('_id') - - model_name = attribute.chomp('_id').camelize - %td + %td + - if attribute.include?('_id') + - model_name = attribute.chomp('_id').camelize - associated_object = current_or_last_object_state(model_name, value) = associated_object.try(:title) || associated_object.try(:name) = value.blank? ? '-' : "(ID: #{value})" - - else - %td= value.blank? ? '-' : value + - else + = value.blank? ? '-' : value + + - if attribute == 'price_cents' + = "(#{humanized_money_with_symbol version_item.try(:price)})"