From 1292717c5251615fa4a90381712512a5014b19ac Mon Sep 17 00:00:00 2001 From: evazion Date: Thu, 24 Jan 2019 13:52:16 -0600 Subject: [PATCH] dynamic requests: handle deleted/processing/queued statuses (#3824) Fix bug where [ta:1234] didn't render if the request's status was 'deleted', 'queued', or 'processing'. --- app/helpers/forum_topics_helper.rb | 17 ++++++++--------- app/models/tag_relationship.rb | 8 ++++++++ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/app/helpers/forum_topics_helper.rb b/app/helpers/forum_topics_helper.rb index 226246c98..ecb5124fc 100644 --- a/app/helpers/forum_topics_helper.rb +++ b/app/helpers/forum_topics_helper.rb @@ -9,14 +9,18 @@ module ForumTopicsHelper def tag_request_message(obj) if obj.is_a?(TagRelationship) - if obj.is_active? - return "The #{obj.relationship} ##{obj.id} [[#{obj.antecedent_name}]] -> [[#{obj.consequent_name}]] is active." + if obj.is_approved? + return "The #{obj.relationship} ##{obj.id} [[#{obj.antecedent_name}]] -> [[#{obj.consequent_name}]] has been approved." elsif obj.is_retired? - return "The #{obj.relationship} ##{obj.id} [[#{obj.antecedent_name}]] -> [[#{obj.consequent_name}]] has been retired" + return "The #{obj.relationship} ##{obj.id} [[#{obj.antecedent_name}]] -> [[#{obj.consequent_name}]] has been retired." + elsif obj.is_deleted? + return "The #{obj.relationship} ##{obj.id} [[#{obj.antecedent_name}]] -> [[#{obj.consequent_name}]] has been rejected." elsif obj.is_pending? return "The #{obj.relationship} ##{obj.id} [[#{obj.antecedent_name}]] -> [[#{obj.consequent_name}]] is pending approval." elsif obj.is_errored? return "The #{obj.relationship} ##{obj.id} [[#{obj.antecedent_name}]] -> [[#{obj.consequent_name}]] (#{relationship} failed during processing." + else # should never happen + return "The #{obj.relationship} ##{obj.id} [[#{obj.antecedent_name}]] -> [[#{obj.consequent_name}]] has an unknown status." end end @@ -38,12 +42,7 @@ module ForumTopicsHelper end def parse_embedded_tag_request_text(text) - # for dev mode, prime these - if Rails.env.development? - [TagAlias, TagImplication] - end - - [*TagRelationship.subclasses, BulkUpdateRequest].each do |tag_request| + [TagAlias, TagImplication, BulkUpdateRequest].each do |tag_request| text.gsub!(tag_request.embedded_pattern) do |match| begin obj = tag_request.find($~[:id]) diff --git a/app/models/tag_relationship.rb b/app/models/tag_relationship.rb index fe310bc5c..0a0d1dcb5 100644 --- a/app/models/tag_relationship.rb +++ b/app/models/tag_relationship.rb @@ -43,10 +43,18 @@ class TagRelationship < ApplicationRecord self.consequent_name = consequent_name.mb_chars.downcase.tr(" ", "_") end + def is_approved? + status.in?(%w[active processing queued]) + end + def is_retired? status == "retired" end + def is_deleted? + status == "deleted" + end + def is_pending? status == "pending" end