Множественные установки пользовательского портфолио

Хорошо, я пошел по другому пути, не используя плагины для портфолио. Не уверен, стоит ли мне разместить это здесь или создать новую тему — если нужно, пожалуйста, дайте знать!

Может ли кто-нибудь взглянуть на это и сказать, что я делаю не так (и, надеюсь, почему и как это исправить)? Я потратил часы на часы, читая учебники, написывая код и внося правки, но я все еще новичок и дошел до точки, когда не знаю, что попробовать дальше.

Цель: отображать список тем из определенной категории на странице профиля пользователя.
В данном случае это форум для RPG, где пользователи создают персонажей для публикации историй. Я хочу, чтобы этот плагин показывал, каких персонажей создал пользователь, чтобы никому не пришлось далеко искать их. Все листы персонажей будут храниться в одном форуме. Поэтому я думаю, что мне просто нужно создать список тем, который получает темы от нужного пользователя и из нужного форума.

Я использовал следующие ссылки в качестве основы:

https://meta.discourse.org/t/add-a-featured-topic-list-to-your-discourse-homepage/132949

Вот моя попытка. Пока что заголовок списка тем (тема/ответы/активность) отображается в нужном месте, но сам список тем не заполняется.

<script type="text/discourse-plugin" version="0.8">
  const ajax = require('discourse/lib/ajax').ajax;
  const Topic = require('discourse/models/topic').default;
  const User = require('discourse/models/user').default;
  // Нужны ajax, Topic и User

  api.registerConnectorClass('above-user-summary-stats', 'character-list', {
    // above-user-summary-stats — это выход плагина, character-list — имя пользовательского компонента

    setupComponents(args, component) {

        const store = getOwner(this).lookup("service:store");

        return ajax(userPath(`/topics/created-by/${this.username_lower}.json`)).then(function (result) {
        // строки взяты из summary() в модели user.js; пытаюсь найти имя пользователя профиля, который мы просматриваем, чтобы получить доступ к JSON тем, созданных этим пользователем

            let characterList = [];
            // пустой массив для добавления тем

            result.topic_list.topics.forEach.category_id(4)(function(topic){
            // только темы из нужной категории

            // примерно здесь в уроке Криса были строки для связывания пользователей с темой. Я их пропустил, потому что мне не нужно отображать пользователей, кроме автора темы, вместе с темой. Это важно?
            //topic.posters.forEach(function(poster){
                //poster.user = $.grep(featuredUsers, function(e){ return e.id == poster.user_id; })[0];
              //});

                characterList.push(Topic.create(topic));
                // добавить темы в список

            });

            component.set('characterList', characterList);
            // Настроить компонент с темами из массива

        }); // конец ajax


    } // конец setupComponents

  });
</script>

<script type="text/x-handlebars" data-template-name="/connectors/above-user-summary-stats/character-list">

      <div class="custom-character-list-wrapper">
        {{topic-list topics=characterList showPosters=false}}
      </div>

</script>