Discourse 已解决

在主页面的“热门”、“最新”等选项旁边,如何添加“未解决”?

您可以使用 Custom Top Navigation Links 组件在站点设置中配置的链接旁边添加自定义链接。要过滤未解决主题的主题列表,您可以添加 solved=no。例如 \u003chttps://meta.discourse.org/?solved=no\u003e

6 个赞

遇到上面提到的相同不兼容插件错误,但我们使用的是正式版本:

[详细信息=“日志”]

********************************************************
*** 请耐心等待,接下来的步骤可能需要一段时间 ***
********************************************************
骑行独角兽,释放内存
重启 unicorn 进程:551
等待 Unicorn 重新加载。
等待 Unicorn 重新加载..
等待 Unicorn 重新加载...
等待 Unicorn 重新加载....
等待 Unicorn 重新加载.....
等待 Unicorn 重新加载......
等待 Unicorn 重新加载.......
停止 3 个 Unicorn 工作进程,以释放内存
停止作业队列以回收内存,主进程 pid 为 3004191
$ cd /var/www/discourse/plugins/docker_manager  git fetch --tags --prune-tags --prune --force
$ cd /var/www/discourse/plugins/docker_manager  git reset --hard HEAD@{upstream}
HEAD 现在位于 930ec25 开发:再次启用 smoke 规格
$ bundle install --retry 3 --jobs 4
依赖已完整安装!共146个 Gemfile 依赖,已安装189个 gems。
在“测试”和“开发”组中的 Gems 未被安装。
捆绑的 gems 被安装到 `./vendor/bundle`
你直接依赖的 3 个 gems 寻求资金支持。
  运行 `bundle fund` 获取详细信息
$ if [ -f yarn.lock ]; then yarn install; else CI=1 pnpm install; fi
范围:所有 17 个工作区项目
锁定文件是最新的,跳过解析步骤
已是最新状态

```完成于3.2秒
$ LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all
正在检出兼容的 discourse-calendar 版本:8d09cf8503b78f4c72b47a7319c0f4b9ad0247e7
HEAD 现在位于 8d09cf8 DEV:更新区域(#717)
正在检出兼容的 discourse-reactions 版本:f87583d9054421869ba0de16c24ad15e32bbebe7
HEAD 现在位于 f87583d DEV:添加系统测试以确认核心功能正常工作(#361)
正在检出兼容的 discourse-solved 版本:4f0234f5be3aaa77db277e0f224cd9750d2713cd
HEAD 现在位于 4f0234f DEV:添加系统测试以确认核心功能正常工作(#357)
discourse-spoiler-alert 已经是最新的兼容版本
docker_manager 已经是最新的兼容版本
$ SKIP_POST_DEPLOYMENT_MIGRATIONS=1 bundle exec rake multisite:migrate
	81:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/bin/bundle:25:in `<main>
	80:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/bin/bundle:25:in `load`
	79:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.4/exe/bundle:20:in `<top (required)>
	78:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.4/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
	77:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.4/exe/bundle:28:in `block in <top (required)>
	76:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.4/lib/bundler/cli.rb:29:in `start'
	75:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
	74:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.4/lib/bundler/cli.rb:35:in `dispatch'
	73:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor.rb:538:in `dispatch'
	72:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
	71:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.4/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
	70:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.4/lib/bundler/cli.rb:452:in `exec'
	69:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.4/lib/bundler/cli/exec.rb:23:in `run'
	68:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.4/lib/bundler/cli/exec.rb:59:in `kernel_load'
	67:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bundler-2.6.4/lib/bundler/cli/exec.rb:59:in `load'
	66:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/bin/rake:25:in `<top (required)>
	65:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/bin/rake:25:in `load'
	64:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/exe/rake:27:in `<top (required)>
	63:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/lib/rake/application.rb:80:in `run'
	62:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/lib/rake/application.rb:214:in `standard_exception_handling'
	61:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/lib/rake/application.rb:83:in `block in run'
	60:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/lib/rake/application.rb:132:in `top_level'
	59:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/lib/rake/application.rb:147:in `run_with_threads'
	58:来自 /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/lib/rake/application.rb:138:in `block in top_level'
	...
3 个赞

FWIW 我安装了 Solved 插件,并且今天早些时候通过 UI 更新了,一切顺利。:+1:


我应该在发帖前检查一下…… :slight_smile: 看起来 Solved 有一个新提交,在此期间已添加。让我通过命令行重建一下,以检查并确认一切顺利。

ETA:@Frully 我的重建(包括 Solved)成功了 :partying_face:

2 个赞

补充一下 Jam 说的话。我也没有遇到过任何问题

如果这是你第一次安装 Solved,请确认你的 GitHub 地址是否正确。

如果可以的话,也请分享你是在运行 Stable 版还是推荐通过测试的版本

如果你能发布部分你的 app.yml 插件部分,也许会有所帮助。

2 个赞

感谢两位的检查。现在更新完成,我觉得重新启用插件更安全了。等我有时间测试并记录结果时会通知您。

3 个赞

我们仍然受到此问题的影响(尽管似乎没有其他人报告过,我开始怀疑是不是只有我们?)。

深入研究后,我发现向 topic-statuses CSS 类添加 15px 的 padding-toppadding-bottom 可以解决此问题。我希望插件的维护者能够以更永久的方式修复此问题。

3 个赞

我认为这与 Discourse Tooltips 有关。不仅是你们网站上的未解决框,还有任何图钉和挂锁。

我认为还有其他几个报告:

5 个赞

自从我们更新了 Discourse,已解决的 webhooks 状态颠倒了。

如果我解决一个主题,webhook 会像这样发送:

    "can_accept_answer": true,
    "can_unaccept_answer": false,
    "accepted_answer": false,
    "topic_accepted_answer": null

而如果我不接受答案,情况则正好相反。

:partying_face: 此插件现已作为 Bundling more popular plugins with Discourse core 的一部分,与 Discourse 核心捆绑在一起。如果您是自托管用户并使用了此插件,则需要在下次升级前将其从 app.yml 中删除。

3 个赞

它与 discourse 的 最新版本 有错误

我必须禁用它来 重建应用程序 (discourse)

它现在已包含在核心中

3 个赞

Home > 分类下的帖子将显示已解决的主题为未解决的主题

我需要其他设置吗?

1 个赞

是否可以在 Discourse 的搜索区域的“高级过滤器”中添加一个条目,仅显示未解决的问题?

您可以使用 /filterin:solved / in:unsolved

3 个赞

我的理解是我们可以在创建自动化时使用“solved”中的可触发“first_accepted_solution”。具有此触发器的自动化是仅对每个已解决的主题运行一次,还是用户的第一条被接受的解决方案,而不是主题?不确定问题是否有意义,抱歉。

“首次接受的解决方案”会在用户首次将帖子选为任何主题的解决方案时触发。


例如,您可以使用它来感谢用户第一次帮助他人。

您好 @Moin

非常感谢您的澄清,这很有道理。

后续问题:是否有“accepted-solution”触发器,还是只有“first-accepted-solution”?

原因:我想创建一个自定义自动化,在每次主题解决(帖子被标记为解决方案)时创建一个帖子

我尝试使用“first-accepted-solution”,但正如我现在所见,它只工作一次,这是预期的。有什么建议或想法吗?

在不知道您想用该帖子做什么或为什么需要它的情况下,很难提供有用的建议。
您只是想了解帖子被标记为解决方案吗?

然后,您可以使用数据探索器查询和“使用数据探索器结果安排主题中的帖子”脚本。例如,您可以运行一个查询,每 10 分钟返回过去 10 分钟内的解决方案。我想您也可以更频繁地运行它,但我不太确定这对服务器增加了多少负担。但即使您每分钟运行一次,也不一定会为每个解决方案都获得一个帖子。也许一分钟内有 2 个主题得到解决。此外,生成的帖子只能在有限的程度上进行自定义。(当然,您可以像其他任何文本一样自定义所使用的文本,但请记住,您将不得不为该脚本自动更改的每个帖子都这样做。因此,如果您想过于个性化,它实际上是行不通的。)

该自动化创建的帖子的简单示例

表格的内容取决于查询。可以扩展查询,例如显示指向主题或解决方案的链接。我为了演示该功能通常如何工作而保持简单。

我使用的查询
SELECT
  dst.created_at AS solution_accepted_at,
  dst.topic_id,
  dst.answer_post_id,
  dst.accepter_user_id
FROM discourse_solved_solved_topics dst
WHERE dst.created_at >= NOW() - INTERVAL '10 minutes'
ORDER BY dst.created_at DESC
1 个赞

您好 @Moin

非常感谢您的回复 :slight_smile:

这很好,我测试并使其奏效了——感谢您的回复:

此外,这仍然不是我想要的。
如果我之前的问题不够清楚,我很抱歉。

我试图创建一个自动化,每当一个主题被解决时,就创建一个帖子(来自系统用户)。在这个主题中,新生成的帖子将包含一个调查(调查将是 Discourse Surveys 的 markdown)。