From b00ae71957243fc6b6beefcce898f00f90fb45a4 Mon Sep 17 00:00:00 2001 From: r888888888 Date: Tue, 4 Apr 2017 13:20:47 -0700 Subject: [PATCH] fixes #2953: Tag change report doesn't take tags removed by user into account --- app/logical/reports/upload_tags.rb | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/app/logical/reports/upload_tags.rb b/app/logical/reports/upload_tags.rb index e609f4e1d..65bc813c8 100644 --- a/app/logical/reports/upload_tags.rb +++ b/app/logical/reports/upload_tags.rb @@ -29,14 +29,13 @@ module Reports def uploader_tags_array @uploader_tags ||= begin - uploader_versions = versions.select { |p| p.updater_id == uploader_id } - added_tags = uploader_versions.flat_map do |version| - version.changes[:added_tags] + uploader_versions = versions.where(updater_id: uploader_id) + tags = [] + uploader_versions.each do |version| + tags += version.changes[:added_tags] + tags -= version.changes[:removed_tags] end - removed_tags = uploader_versions.flat_map do |version| - version.changes[:removed_tags] - end - (added_tags - removed_tags).uniq.sort + tags.uniq.sort end end