工作区组

:information_source: 摘要 原型插件,用于将单个 Discourse 服务器作为多个团队(类似 Slack 或 Mattermost)的家园。
:hammer_and_wrench: 仓库链接 GitHub - akhmerov/discourse-workspace-groups · GitHub
:open_book: 安装指南 如何在 Discourse 中安装插件

这是一个原型插件,主要由 AI 生成,请自行评估风险使用。欢迎提供任何反馈!

功能

我开发此插件的初衷是希望为多个研究小组托管单个 Discourse 实例,同时让每个顶级分类更像团队空间。该插件将顶级分类转换为工作区,将子分类转换为频道。每个频道保留其正常的 Discourse 主题,并配备一个配对的聊天频道。

该插件还增加了团队概览页面、面向团队的侧边栏导航、公开和私有频道、加入和退出流程、对单个频道的访客访问权限,以及对应频道归档或取消归档的支持(用于需要变为只读的频道)。

效果如下所示:

配置

安装插件,重建 Discourse,并在管理员设置中启用 discourse_workspace_groups_enabled。如果您希望启用配对聊天行为,还需启用 Discourse Chat 并配置其允许创建和使用分类聊天频道。

使用该插件时,请为研究小组创建一个顶级分类,并将其转换为工作区。其子分类随后将变为频道。团队概览页面是创建和管理频道的主要场所。

如果您希望普通团队成员能够创建频道,请启用 discourse_workspace_groups_members_can_create_channels。如果某些顶级分类不应成为工作区,请将它们的 ID 添加到 discourse_workspace_groups_excluded_top_level_category_ids 中。

设置

名称 描述
discourse_workspace_groups_enabled 启用插件及其工作区或频道行为。
discourse_workspace_groups_members_can_create_channels 允许工作区中的非管理员成员创建频道。
discourse_workspace_groups_excluded_top_level_category_ids 一个顶级分类 ID 列表,这些分类将永远不被视为工作区候选项。
8 个赞

我真的很喜欢你们在这里所做的。我完全能看出,像这样的工具对于希望为各个团队提供专属空间以进行内部沟通的大型组织来说非常合适。

你们已经在实际环境中使用它了吗?

(我注意到你提到这还只是一个原型)

很想知道你在实际使用中的真实体验。

4 个赞

谢谢!

这是刚出炉的,所以我也将其作为 RFC 发布。在将其用于生产环境之前,我还需要开发一个迁移方案,将数 GB、跨越十年的 Mattermost 数据库迁移到其中。

3 个赞

我这里有更新:

  1. 我开发了一个 迁移插件,用于从 Mattermost 迁移(这是一个插件,因为它使用了许多实例 API)。该插件设计为与 workspace 插件配合使用。
  2. 我将一个包含 200 万条消息的 Mattermost 实例导入到 Discourse 沙箱中进行测试。
  3. 修复了几个小问题。
  4. 一切运行正常,沙箱实例的测试者总体感到满意 :tada:
3 个赞

我正在测试这个插件,但找不到将类别转换为工作区的选项——我该在哪里找到这个功能?

嘿!很高兴你想试试!

关于转换:网站管理员应该在的顶级类别中看到一个按钮,位于新主题按钮旁边。

1 个赞

我觉得你的插件非常有趣 :+1: 我还没有安装,但能够在每个类别中轻松地在论坛和讨论之间切换,这很巧妙。我认为它可以用于其他情况。

我前段时间做了这个。

这为不同的主要群组创建了专属空间。

出于好奇,这在概念上有什么不同?

我的插件是一个极其(或许有些过头)雄心勃勃的尝试,它通过人工智能实现,旨在探讨 Discourse 是否能够模拟 Slack/Mattermost/Zulip 的交互和权限模型。如今,它已经具备大量功能。例如,它管理群组会员资格,赋予用户创建和管理分类及聊天频道的权限,从而打造更动态的工作空间。

其中部分功能与现有特性相关,但我从未见过与之相近的实现。看到它最终能顺利运行,我着实感到惊讶——我们已经使用它大约一个月了 :upside_down_face:

3 个赞

看起来很棒。我正在考虑尝试一下。不知道现有用户是否对该插件报告了任何重大问题?