Skip to content
This repository was archived by the owner on Jul 22, 2025. It is now read-only.

Commit c762fd0

Browse files
committed
Use new AiPersona's feature method
1 parent 70501df commit c762fd0

File tree

3 files changed

+12
-16
lines changed

3 files changed

+12
-16
lines changed

app/controllers/discourse_ai/admin/ai_personas_controller.rb

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,11 @@ class AiPersonasController < ::Admin::AdminController
88
before_action :find_ai_persona, only: %i[edit update destroy create_user]
99

1010
def index
11-
features_by_persona_id = DiscourseAi::Features.features.group_by { |f| f[:persona]&.id }
12-
1311
ai_personas =
1412
AiPersona
1513
.ordered
1614
.includes(:user, :uploads)
17-
.map do |persona|
18-
LocalizedAiPersonaSerializer.new(
19-
persona,
20-
root: false,
21-
features_by_persona_id: features_by_persona_id,
22-
)
23-
end
15+
.map { |persona| LocalizedAiPersonaSerializer.new(persona, root: false) }
2416

2517
tools =
2618
DiscourseAi::Personas::Persona.all_available_tools.map do |tool|

app/serializers/localized_ai_persona_serializer.rb

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,6 @@
33
class LocalizedAiPersonaSerializer < ApplicationSerializer
44
root "ai_persona"
55

6-
def initialize(object, options = {})
7-
@features_by_persona_id = options.delete(:features_by_persona_id)
8-
super(object, options)
9-
end
10-
116
attributes :id,
127
:name,
138
:description,
@@ -59,4 +54,8 @@ def description
5954
def default_llm
6055
LlmModel.find_by(id: object.default_llm_id)
6156
end
57+
58+
def features
59+
object.features.map { |feature| { id: feature.module_id, name: feature.module_name } }
60+
end
6261
end

assets/javascripts/discourse/components/ai-persona-list-editor.gjs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,10 @@ export default class AiPersonaListEditor extends Component {
9898
value: "all",
9999
label: i18n("discourse_ai.ai_persona.filters.all_features"),
100100
},
101-
...features.map((name) => ({ value: name, label: name })),
101+
...features.map((name) => ({
102+
value: name,
103+
label: i18n(`discourse_ai.features.${name}.name`),
104+
})),
102105
];
103106
}
104107

@@ -275,7 +278,9 @@ export default class AiPersonaListEditor extends Component {
275278
{{#each persona.features as |feature|}}
276279
<DButton
277280
class="btn-flat btn-small ai-persona-list__row-item-feature"
278-
@translatedLabel={{feature.name}}
281+
@translatedLabel={{i18n
282+
(concat "discourse_ai.features." feature.name ".name")
283+
}}
279284
@route="adminPlugins.show.discourse-ai-features.edit"
280285
@routeModels={{feature.id}}
281286
/>

0 commit comments

Comments
 (0)