Topic Ratings Plugin

Небольшая ошибка, которую я обнаружил: если для категории включена опция «Требовать одобрения модератора всех новых ответов», рейтинг теряется в процессе проверки.

1 лайк

Да, сейчас это не обрабатывается. Можете создать отчёт на нашем экземпляре?

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

2 лайка

Я создал её и упомянул вас там.

P.S. Также добавил плагин рейтингов в выпадающее меню.

Не отображается «Использовать темы в этой категории для оценки» в настройках категории. Версия Discourse 2.6.0.beta1. В чём может быть проблема?

1 лайк

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

Здравствуйте,

Возможно ли скрыть рейтинги при создании темы с помощью CSS и отображать их только в ответах?

Спасибо за ответ! :slightly_smiling_face:

1 лайк

Думаю, я разобрался. Оставляю здесь решение на случай, если кому-то понадобится:
#reply-control.open.edit-title .composer-controls-rating .rating-container { display: none;}

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

2 лайка

Если создание не разрешено, то как вообще могут отображаться рейтинги?

Вы имеете в виду конкретную функцию, определяющую, кто имеет право ставить рейтинги?

P.S.
О, вы имеете в виду, что у автора темы (OP) не может быть рейтинга?

Какой в этом смысл?

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

Верно!

2 лайка

Это позволит продавцу оставить оценку в другом посте. Это не обязательно должен быть автор темы.

2 лайка

Теперь я понял, в чём проблема :confused: Так можно ли запретить автору темы оценивать её?

1 лайк

В данный момент это недоступно в плагине. Вы можете создать запрос на новую функцию здесь: Pavilion

Если у вас есть бюджет, мы можем обсудить возможность реализации этой функции раньше.

2 лайка

У меня тоже возникает эта проблема. Я только что установил этот плагин, и у меня версия Discourse 2.6.0.beta1.
Похоже, что в модальном окне редактирования категории нет никакой настройки, позволяющей включить этот плагин.

1 лайк

Плагин был практически переписан. Теперь перейдите в раздел /admin/plugins, где вы увидите меню рейтингов, позволяющее настроить все параметры рейтингов.

Для уточнения: плагин «Рейтинги» установлен и включён в разделе /admin/plugins. Однако в настройках категории нет возможности включить его для этой категории.

2 лайка

Понял. Есть сбой. Я быстро это исправлю.

P.S. Могу подтвердить, что система рейтингов работает идеально на последней ветке tests-passed.

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

1 лайк

Я обновился до последней версии, и если я не удалю этот плагин, я не могу просматривать какие-либо темы. Даже если я отключу этот плагин, он всё равно выдаёт ошибку. Все плагины в моём app.yml работают, кроме этого. Это единственный, который мне пришлось удалить, и после этого всё снова заработало как по маслу.

А в моих логах видно, что проблема в рейтингах:

image

Спойлер
plugins/discourse-ratings/lib/ratings/rating.rb:154:in `serialize'
plugins/discourse-ratings/plugin.rb:201:in `block (2 levels) in activate!'
(eval):84:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
app/serializers/post_stream_serializer_mixin.rb:54:in `block in posts'
activerecord (6.0.3.2) lib/active_record/relation/delegation.rb:87:in `each'
activerecord (6.0.3.2) lib/active_record/relation/delegation.rb:87:in `each'
app/serializers/post_stream_serializer_mixin.rb:47:in `map'
app/serializers/post_stream_serializer_mixin.rb:47:in `posts'
app/serializers/post_stream_serializer_mixin.rb:18:in `post_stream'
(eval):3:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
activesupport (6.0.3.2) lib/active_support/json/encoding.rb:22:in `encode'
activesupport (6.0.3.2) lib/active_support/json/encoding.rb:22:in `encode'
activesupport (6.0.3.2) lib/active_support/core_ext/object/json.rb:42:in `to_json'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:331:in `to_json'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapter.rb:25:in `dump'
multi_json (1.15.0) lib/multi_json.rb:139:in `dump'
app/controllers/application_controller.rb:464:in `render_json_dump'
app/controllers/topics_controller.rb:1043:in `block (2 levels) in perform_show_response'
actionpack (6.0.3.2) lib/action_controller/metal/mime_responds.rb:214:in `respond_to'
app/controllers/topics_controller.rb:1033:in `perform_show_response'
app/controllers/topics_controller.rb:160:in `show'
actionpack (6.0.3.2) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (6.0.3.2) lib/abstract_controller/base.rb:195:in `process_action'
actionpack (6.0.3.2) lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack (6.0.3.2) lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport (6.0.3.2) lib/active_support/callbacks.rb:112:in `block in run_callbacks'
app/controllers/application_controller.rb:340:in `block in with_resolved_locale'
i18n (1.8.5) lib/i18n.rb:313:in `with_locale'
app/controllers/application_controller.rb:340:in `with_resolved_locale'
activesupport (6.0.3.2) lib/active_support/callbacks.rb:121:in `block in run_callbacks'
activesupport (6.0.3.2) lib/active_support/callbacks.rb:139:in `run_callbacks'
actionpack (6.0.3.2) lib/abstract_controller/callbacks.rb:41:in `process_action'
actionpack (6.0.3.2) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (6.0.3.2) lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
activesupport (6.0.3.2) lib/active_support/notifications.rb:180:in `block in instrument'
activesupport (6.0.3.2) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (6.0.3.2) lib/active_support/notifications.rb:180:in `instrument'
actionpack (6.0.3.2) lib/action_controller/metal/instrumentation.rb:32:in `process_action'
actionpack (6.0.3.2) lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
activerecord (6.0.3.2) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (6.0.3.2) lib/abstract_controller/base.rb:136:in `process'
actionview (6.0.3.2) lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler (2.0.4) lib/mini_profiler/profiling_methods.rb:104:in `block in profile_method'
actionpack (6.0.3.2) lib/action_controller/metal.rb:190:in `dispatch'
actionpack (6.0.3.2) lib/action_controller/metal.rb:254:in `dispatch'
actionpack (6.0.3.2) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
actionpack (6.0.3.2) lib/action_dispatch/routing/route_set.rb:33:in `serve'
actionpack (6.0.3.2) lib/action_dispatch/journey/router.rb:49:in `block in serve'
actionpack (6.0.3.2) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (6.0.3.2) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (6.0.3.2) lib/action_dispatch/routing/route_set.rb:834:in `call'
lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.3) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.3) lib/rack/head.rb:12:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:336:in `call'
rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (6.0.3.2) lib/action_dispatch/middleware/cookies.rb:648:in `call'
actionpack (6.0.3.2) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (6.0.3.2) lib/active_support/callbacks.rb:101:in `run_callbacks'
actionpack (6.0.3.2) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (6.0.3.2) lib/action_dispatch/middleware/actionable_exceptions.rb:17:in `call'
actionpack (6.0.3.2) lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call'
actionpack (6.0.3.2) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
logster (2.9.2) lib/logster/middleware/reporter.rb:43:in `call'
railties (6.0.3.2) lib/rails/rack/logger.rb:37:in `call_app'
railties (6.0.3.2) lib/rails/rack/logger.rb:28:in `call'
config/initializers/100-quiet_logger.rb:19:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
actionpack (6.0.3.2) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
actionpack (6.0.3.2) lib/action_dispatch/middleware/request_id.rb:27:in `call'
lib/middleware/enforce_hostname.rb:22:in `call'
rack (2.2.3) lib/rack/method_override.rb:24:in `call'
actionpack (6.0.3.2) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.2.3) lib/rack/sendfile.rb:110:in `call'
actionpack (6.0.3.2) lib/action_dispatch/middleware/host_authorization.rb:76:in `call'
rack-mini-profiler (2.0.4) lib/mini_profiler/profiler.rb:321:in `call'
message_bus (3.3.1) lib/message_bus/rack/middleware.rb:61:in `call'
lib/middleware/request_tracker.rb:176:in `call'
railties (6.0.3.2) lib/rails/engine.rb:527:in `call'
railties (6.0.3.2) lib/rails/railtie.rb:190:in `public_send'
railties (6.0.3.2) lib/rails/railtie.rb:190:in `method_missing'
rack (2.2.3) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.3) lib/rack/urlmap.rb:58:in `each'
rack (2.2.3) lib/rack/urlmap.rb:58:in `call'
unicorn (5.6.0) lib/unicorn/http_server.rb:632:in `process_client'
unicorn (5.6.0) lib/unicorn/http_server.rb:728:in `worker_loop'
unicorn (5.6.0) lib/unicorn/http_server.rb:548:in `spawn_missing_workers'
unicorn (5.6.0) lib/unicorn/http_server.rb:144:in `start'
unicorn (5.6.0) bin/unicorn:128:in `<top (required)>'
vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `load'
vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `<main>'
2 лайка

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

@Arkshine, есть какие-то идеи?

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

Вот список моих плагинов. Большинство из них официальные, остальные — от Pavilion.

Спойлер
  - git clone https://github.com/discourse/docker_manager.git
  - git clone https://github.com/discourse/discourse-adplugin.git
  - git clone https://github.com/discourse/discourse-calendar.git
  - git clone https://github.com/discourse/discourse-chart.git
  - git clone https://github.com/discourse/discourse-math.git
  - git clone https://github.com/discourse/discourse-voting.git
  - git clone https://github.com/procourse/procourse-static-pages.git
  - git clone https://github.com/discourse/discourse-signatures.git
  - git clone https://github.com/Ebsy/discourse-nationalflags.git
  - git clone https://github.com/discourse/discourse-chat-integration.git
  - git clone https://github.com/discourse/discourse-solved.git
  - git clone https://github.com/discourse/discourse-graphviz.git
  #- git clone https://github.com/paviliondev/discourse-ratings.git
  - git clone https://github.com/discourse/discourse-tooltips.git
  - git clone https://github.com/cpradio/discourse-plugin-imgflip.git
  - git clone https://github.com/paviliondev/discourse-topic-previews.git
  - git clone https://github.com/discourse/discourse-bbcode
  - git clone https://github.com/discourse/discourse-affiliate.git
  - git clone https://github.com/paviliondev/discourse-news.git
  - git clone https://github.com/discourse/discourse-sitemap.git
  - git clone https://github.com/paviliondev/discourse-layouts.git
  - git clone https://github.com/discourse/discourse-assign.git
  - git clone https://github.com/gdpelican/retort.git
  - git clone https://github.com/discourse/discourse-canned-replies.git
  - git clone https://github.com/discourse/discourse-cakeday.git
  - git clone https://github.com/paviliondev/discourse-follow.git
  - git clone https://github.com/cpradio/discourse-plugin-composer-help-button.git
  - git clone https://github.com/paviliondev/discourse-custom-wizard.git
  - git clone https://github.com/discourse/discourse-perspective-api.git
  - git clone https://github.com/paviliondev/discourse-tickets.git
  - git clone https://github.com/discourse/discourse-spoiler-alert.git

В данный момент я не могу позволить себе пересборку и простои на моём сайте. Я смогу проверить позже.

1 лайк