From 7849f8943c696a05d5e77de7c0c729e50167dc53 Mon Sep 17 00:00:00 2001 From: Justin DiRose Date: Thu, 1 Oct 2020 13:24:28 -0500 Subject: [PATCH] FIX: 406 Error on Reload Logic was not properly checking if there was a topic selected or not. As a result, the template for onebox data was still being loaded, causing an error. Also changed the order around TopicView to avoid unwanted effects. --- .../knowledge_explorer_controller.rb | 23 +++++++++++++------ .../knowledge_explorer/get_topic.html.erb | 2 +- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/app/controllers/knowledge_explorer/knowledge_explorer_controller.rb b/app/controllers/knowledge_explorer/knowledge_explorer_controller.rb index 9c1dd88..17914cb 100644 --- a/app/controllers/knowledge_explorer/knowledge_explorer_controller.rb +++ b/app/controllers/knowledge_explorer/knowledge_explorer_controller.rb @@ -19,11 +19,20 @@ module KnowledgeExplorer } query = KnowledgeExplorer::Query.new(current_user, filters).list - query["topic"] = get_topic(filters[:topic], current_user) if filters[:topic].present? + + if filters[:topic].present? + begin + @topic = Topic.find(filters[:topic]) + rescue + raise Discourse::NotFound + end + + query["topic"] = get_topic(@topic, current_user) + end respond_to do |format| format.html do - render :get_topic if filters[:topic].present? + render :get_topic end format.json do @@ -32,13 +41,13 @@ module KnowledgeExplorer end end - def get_topic(topic_id, current_user) - @topic_view = TopicView.new(topic_id, current_user) + def get_topic(topic, current_user) + return nil unless topic_in_explorer(topic.category_id, topic.tags) + + topic_view = TopicView.new(topic.id, current_user) guardian = Guardian.new(current_user) - return unless topic_in_explorer(@topic_view.topic.category_id, @topic_view.topic.tags) - - TopicViewSerializer.new(@topic_view, scope: guardian, root: false) + TopicViewSerializer.new(topic_view, scope: guardian, root: false) end def topic_in_explorer(category, tags) diff --git a/app/views/knowledge_explorer/knowledge_explorer/get_topic.html.erb b/app/views/knowledge_explorer/knowledge_explorer/get_topic.html.erb index f29048f..a8c37f3 100644 --- a/app/views/knowledge_explorer/knowledge_explorer/get_topic.html.erb +++ b/app/views/knowledge_explorer/knowledge_explorer/get_topic.html.erb @@ -1,3 +1,3 @@ <% content_for :head do %> - <%= raw crawlable_meta_data(title: @topic_view.topic.title, description: @topic_view.topic.excerpt) %> + <%= raw crawlable_meta_data(title: @topic["title"], description: @topic["excerpt"]) if @topic %> <% end %>