diff --git a/app/controllers/discourse_ai/sentiment/sentiment_controller.rb b/app/controllers/discourse_ai/sentiment/sentiment_controller.rb index 220488ec3..5dd289932 100644 --- a/app/controllers/discourse_ai/sentiment/sentiment_controller.rb +++ b/app/controllers/discourse_ai/sentiment/sentiment_controller.rb @@ -46,10 +46,6 @@ def posts u.name, u.uploaded_avatar_id, c.id AS category_id, - c.name AS category_name, - c.color AS category_color, - c.slug AS category_slug, - c.description AS category_description, (CASE WHEN (cr.classification::jsonb->'positive')::float > :threshold THEN 'positive' WHEN (cr.classification::jsonb->'negative')::float > :threshold THEN 'negative' diff --git a/app/serializers/ai_sentiment_post_serializer.rb b/app/serializers/ai_sentiment_post_serializer.rb index faefcba7f..53668db61 100644 --- a/app/serializers/ai_sentiment_post_serializer.rb +++ b/app/serializers/ai_sentiment_post_serializer.rb @@ -11,7 +11,7 @@ class AiSentimentPostSerializer < ApplicationSerializer :excerpt, :sentiment, :truncated, - :category, + :category_id, :created_at def avatar_template @@ -25,14 +25,4 @@ def excerpt def truncated object.post_cooked.length > SiteSetting.post_excerpt_maxlength end - - def category - { - id: object.category_id, - name: object.category_name, - color: object.category_color, - slug: object.category_slug, - description: object.category_description, - } - end end diff --git a/assets/javascripts/discourse/components/admin-report-sentiment-analysis.gjs b/assets/javascripts/discourse/components/admin-report-sentiment-analysis.gjs index 154d07305..ec1b993af 100644 --- a/assets/javascripts/discourse/components/admin-report-sentiment-analysis.gjs +++ b/assets/javascripts/discourse/components/admin-report-sentiment-analysis.gjs @@ -11,6 +11,7 @@ import DButton from "discourse/components/d-button"; import HorizontalOverflowNav from "discourse/components/horizontal-overflow-nav"; import PostList from "discourse/components/post-list"; import bodyClass from "discourse/helpers/body-class"; +import categoryBadge from "discourse/helpers/category-badge"; import dIcon from "discourse/helpers/d-icon"; import replaceEmoji from "discourse/helpers/replace-emoji"; import { ajax } from "discourse/lib/ajax"; @@ -18,6 +19,7 @@ import { popupAjaxError } from "discourse/lib/ajax-error"; import { getAbsoluteURL } from "discourse/lib/get-url"; import discourseLater from "discourse/lib/later"; import { clipboardCopy } from "discourse/lib/utilities"; +import Category from "discourse/models/category"; import Post from "discourse/models/post"; import closeOnClickOutside from "discourse/modifiers/close-on-click-outside"; import { i18n } from "discourse-i18n"; @@ -111,6 +113,7 @@ export default class AdminReportSentimentAnalysis extends Component { get transformedData() { return this.args.model.data.map((data) => { return { + category: Category.findById(data.category_id), title: data.category_name || data.tag_name, scores: [ data.positive_count, @@ -139,6 +142,7 @@ export default class AdminReportSentimentAnalysis extends Component { return this.posts.filter((post) => { post.topic_title = replaceEmoji(post.topic_title); + post.category = Category.findById(post.category_id); if (this.activeFilter === "all") { return true; @@ -347,7 +351,13 @@ export default class AdminReportSentimentAnalysis extends Component { ) }} > -