Events Plugin 📅

Я обновился до последней версии сегодня. Теперь всё работает. Спасибо.

2 лайка

Это хорошо, что вы это знаете. У вас, несомненно, возникла именно эта проблема.

2 лайка

Всем привет,

Я уже около месяца сталкиваюсь с ошибкой, которую не могу воспроизвести, но и не знаю, как её исправить.
На одном из управляемых мной экземпляров страница «Агenda» сортируется по дате активности, а не по дате события.
Я использую следующие плагины (но, думаю, они не причём, так как те же самые установлены и на других экземплярах):

Плагины

discourse-checklist 0.4.1 Да
discourse-custom-wizard 0.1 Да
discourse-data-explorer 0.2 Да
discourse-events 0.1 Да
discourse-footnote 0.1 Да
discourse-locations 0.1 Да
discourse-math 0.9 Нет
discourse-quick-messages 0.1 Нет
discourse-sidebar-categories 0.1 Да
discourse-solved 0.1 Да
discourse-whos-online 1.0 Да
docker_manager 0.1 Да

Не подскажете ли вы, может ли это быть проблемой конфигурации, или что-то, что я мог сделать и сломать, или где стоит проверить, чтобы диагностировать проблему?

Больше деталей или доступ к экземпляру через ЛС.

Заранее спасибо

2 лайка

Спасибо за отчет.
Пожалуйста, нажмите на ссылку «Сообщить об ошибке» в первом сообщении этой темы и заполните форму, указав соответствующие детали. Так нам будет проще назначить подходящее время для изучения проблемы.

3 лайка

Всем привет,

Рядом с названием темы отображаются значок календаря и дата события на страницах /latest, /top, /unread или /agenda. На странице <Category + Latest> и в мобильной версии они не показаны.

Есть ли настройка, чтобы добавить их туда? (Я не смог найти)
Если нет, не мог бы кто-нибудь подсказать грязный хак, который можно использовать для этого, например, скопировав что-то в код плагина для /latest и включив это для /categories? (Даже если это будет выглядеть загроможденным, я найду способ с помощью CSS сделать это не таким уж ужасным)

Заранее спасибо

2 лайка

Да. Это зафиксировано на нашем экземпляре. Мы скоро запланируем исправление.

3 лайка
      if (this._state === 'destroying') return;

Можете объяснить, какова цель этой строки кода в наблюдателе Ember? Имеет ли она отношение к жизненному циклу компонентов Ember: https://guides.emberjs.com/release/components/the-component-lifecycle/?

2 лайка

Да. Вы можете вывести его в консоль и увидеть его значение на разных этапах жизненного цикла.

1 лайк

Ладно, а в чём смысл простого возврата, когда состояние ‘destroying’? Что произойдёт, если мы пропустим эту строку?

1 лайк

Чтобы предотвратить выполнение следующих двух операторов, так как они станут излишними :slight_smile:

1 лайк

Так что это для производительности?

2 лайка

Это того стоит, даже если прироста производительности не будет. Зачем запускать кучу операторов, которые в конкретном случае бесполезны?

Теперь, когда я обдумал это и провел небольшое исследование, я узнал, что для функций существует правильный термин — return early pattern (паттерн раннего возврата).

1 лайк


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

2 лайка

Я сказал «излишние», но да, это также вызовет ошибку. Если вам интересно, можете ознакомиться с ember-concurrency — это готовое решение для борьбы с подобными ситуациями. Пока оно не включено в ядро Discourse.

Так что, если бы оно использовалось, этот случай обрабатывался бы самой библиотекой.

1 лайк

Я только что посмотрел это выступление, изучая наблюдатели и вычисляемые свойства:

Можете объяснить, почему в данном случае использовался наблюдатель, а не вычисляемое свойство?
Я пытаюсь понять компромиссы и различные сценарии использования.

1 лайк

Можно ли заставить это работать на страницах тегов?

1 лайк

Какой функционал вы хотите реализовать на страницах тегов/тегов? Плагин событий в основном влияет на темы, но категории также могут получать календарь и виджет расписания для тем событий внутри категории. Вы предлагаете предоставить виджет расписания для тем событий, помеченных тегами? Это могло бы быть интересно, например, для отображения всех событий, помеченных по стране. Это было бы довольно круто! Но, насколько мне известно, это пока не входит в дорожную карту. Вы можете запросить эту функцию на https://thepavilion.io/.

3 лайка

Спасибо за ваш ответ @tobiaseigen. Мы активно продвигаем теги для навигации пользователей, так как они невероятно гибкие. Основная проблема в том, что большинство плагинов и компонентов тем с ними не работают. Так что да, мы хотим создать эту дополнительную гибкость. К любой странице тега, куда пользователи пометят посты, будет прикреплен календарь, который они смогут использовать.

Вы можете увидеть это на примере плагина Kanban: один из наших волонтёров из движения Public Happiness Movement успешно адаптировал его для страниц тегов: https://github.com/artysidorenko/discourse-kanban-theme

Я сам довольно простой разработчик, но мне интересно, можно ли изменить код, который использовал @artysidorenko, чтобы он работал и с этим плагином. Честно говоря, существует множество плагинов и компонентов тем, которые выиграли бы от поддержки страниц тегов. Не думаете ли вы, что основная команда могла бы предложить готовое решение?

3 лайка

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

1 лайк

Спасибо за ваш ответ. При использовании тегов для навигации пользователи не будут находиться в категории, чтобы увидеть календарь или ссылку, а общий календарь на весь сайт не подходит для нескольких команд.

1 лайк