REVERT: 'FEATURE: Add solved icon for topic titles in search results and other topic lists'

REVERT: ‘FEATURE: Add solved icon for topic titles in search results and other topic lists’

diff --git a/app/serializers/concerns/topic_answer_mixin.rb b/app/serializers/concerns/topic_answer_mixin.rb
deleted file mode 100644
index 23c8a22..0000000
--- a/app/serializers/concerns/topic_answer_mixin.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-module TopicAnswerMixin
-  def self.included(klass)
-    klass.attributes :has_accepted_answer, :can_have_answer
-  end
-
-  def has_accepted_answer
-    object.custom_fields["accepted_answer_post_id"] ? true : false
-  end
-
-  def can_have_answer
-    return true if SiteSetting.allow_solved_on_all_topics
-    return false if object.closed || object.archived
-    return scope.allow_accepted_answers_on_category?(object.category_id)
-  end
-
-  def include_can_have_answer?
-    SiteSetting.empty_box_on_unsolved
-  end
-end
diff --git a/assets/javascripts/discourse/initializers/extend-for-solved-button.js.es6 b/assets/javascripts/discourse/initializers/extend-for-solved-button.js.es6
index ae8391d..1aa1fe2 100644
--- a/assets/javascripts/discourse/initializers/extend-for-solved-button.js.es6
+++ b/assets/javascripts/discourse/initializers/extend-for-solved-button.js.es6
@@ -1,7 +1,6 @@
 import Topic from "discourse/models/topic";
 import User from "discourse/models/user";
 import TopicStatus from "discourse/raw-views/topic-status";
-import TopicStatusIcons from "discourse/helpers/topic-status-icons";
 import { popupAjaxError } from "discourse/lib/ajax-error";
 import { withPluginApi } from "discourse/lib/plugin-api";
 import { ajax } from "discourse/lib/ajax";
@@ -65,12 +64,6 @@ function acceptPost(post) {
 function initializeWithApi(api) {
   const currentUser = api.getCurrentUser();
 
-  TopicStatusIcons.addObject([
-    "has_accepted_answer",
-    "check-square-o",
-    "solved"
-  ]);
-
   api.includePostAttributes(
     "can_accept_answer",
     "can_unaccept_answer",
@@ -226,7 +219,7 @@ export default {
           results.push({
             openTag: "span",
             closeTag: "span",
-            title: I18n.t("topic_statuses.solved.help"),
+            title: I18n.t("solved.has_accepted_answer"),
             icon: "check-square-o"
           });
         } else if (
diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml
index 16abec3..4157acf 100644
--- a/config/locales/client.en.yml
+++ b/config/locales/client.en.yml
@@ -9,6 +9,7 @@ en:
       title: "Solved"
       allow_accepted_answers: "Allow topic owner and staff to mark a reply as the solution"
       accept_answer: "Select if this reply solves the problem"
+      has_accepted_answer: "This topic has a solution"
       has_no_accepted_answer: "This topic has no solution"
       unaccept_answer: "Unselect if this reply no longer solves the problem"
       accepted_answer: "Solution"
@@ -18,7 +19,3 @@ en:
         other: "solutions"
       accepted_html: "{{icon}} Solved <span class='by'>by <a href data-user-card='{{username_lower}}'>{{username}}</a></span> in <a href='{{post_path}}' class='back'>post #{{post_number}}</a>"
       accepted_notification: "<p><span>{{username}}</span> {{description}}</p>"
-
-    topic_statuses:
-      solved:
-        help: "This topic has a solution"
diff --git a/plugin.rb b/plugin.rb
index 68af667..0514e45 100644
--- a/plugin.rb
+++ b/plugin.rb
@@ -18,10 +18,6 @@ register_asset 'stylesheets/solutions.scss'
 
 after_initialize do
 
-  [
-    '../app/serializers/concerns/topic_answer_mixin.rb'
-  ].each { |path| load File.expand_path(path, __FILE__) }
-
   # we got to do a one time upgrade
   if defined?(UserAction::SOLVED)
     unless $redis.get('solved_already_upgraded')
@@ -483,29 +479,42 @@ SQL
   end
 
   require_dependency 'topic_list_item_serializer'
-  require_dependency 'search_topic_list_item_serializer'
-  require_dependency 'suggested_topic_serializer'
-  require_dependency 'category_detailed_serializer'
-  require_dependency 'user_summary_serializer'
+  require_dependency 'listable_topic_serializer'
 
   class ::TopicListItemSerializer
-    include TopicAnswerMixin
-  end
+    attributes :has_accepted_answer, :can_have_answer
 
-  class ::SearchTopicListItemSerializer
-    include TopicAnswerMixin
-  end
+    def has_accepted_answer
+      object.custom_fields["accepted_answer_post_id"] ? true : false
+    end
 
-  class ::SuggestedTopicSerializer
-    include TopicAnswerMixin
-  end
+    def can_have_answer
+      return true if SiteSetting.allow_solved_on_all_topics
+      return false if object.closed || object.archived
+      return scope.allow_accepted_answers_on_category?(object.category_id)
+    end
 
-  class ::CategoryDetailedSerializer
-    include TopicAnswerMixin
+    def include_can_have_answer?
+      SiteSetting.empty_box_on_unsolved
+    end
   end
 
-  class ::UserSummarySerializer::TopicSerializer
-    include TopicAnswerMixin
+  class ::ListableTopicSerializer
+    attributes :has_accepted_answer, :can_have_answer
+
+    def has_accepted_answer
+      object.custom_fields["accepted_answer_post_id"] ? true : false
+    end
+
+    def can_have_answer
+      return true if SiteSetting.allow_solved_on_all_topics
+      return false if object.closed || object.archived
+      return scope.allow_accepted_answers_on_category?(object.category_id)
+    end
+
+    def include_can_have_answer?
+      SiteSetting.empty_box_on_unsolved
+    end
   end
 
   TopicList.preloaded_custom_fields << "accepted_answer_post_id" if TopicList.respond_to? :preloaded_custom_fields

GitHub sha: 6dbd420c

Revert "REVERT: 'FEATURE: Add solved icon for topic titles in search results and other topic lists'"

hmm what is the story with the revert and then the revert revert?

1 Like

The core commit which this one depends is stuck for few hours in the build. I waited until its reach to “tests-passed”.

2 Likes