Tickets 插件 🎟

标签过滤似乎给我带来了一个问题。如果这很重要的话,我在 bb019aab5d。堆栈跟踪如下。

NoMethodError (undefined method id' for #<Array:0x00007f2c08ca79f8>) app/controllers/tags_controller.rb:249:in search’
app/controllers/application_controller.rb:404:in block in with_resolved_locale' app/controllers/application_controller.rb:404:in with_resolved_locale’
lib/middleware/omniauth_bypass_middleware.rb:71:in call' lib/content_security_policy/middleware.rb:12:in call’
lib/middleware/anonymous_cache.rb:368:in call' config/initializers/100-quiet_logger.rb:23:in call’
config/initializers/100-silence_logger.rb:31:in call' lib/middleware/enforce_hostname.rb:23:in call’
lib/middleware/request_tracker.rb:202:in `call’

Backtrace

plugins/discourse-tickets/plugin.rb:47:in block in filter_allowed_tags' plugins/discourse-tickets/plugin.rb:47:in select’
plugins/discourse-tickets/plugin.rb:47:in filter_allowed_tags' app/controllers/tags_controller.rb:249:in search’
actionpack (6.1.4.7) lib/action_controller/metal/basic_implicit_render.rb:6:in send_action' actionpack (6.1.4.7) lib/abstract_controller/base.rb:228:in process_action’
actionpack (6.1.4.7) lib/action_controller/metal/rendering.rb:30:in process_action' actionpack (6.1.4.7) lib/abstract_controller/callbacks.rb:42:in block in process_action’
activesupport (6.1.4.7) lib/active_support/callbacks.rb:117:in block in run_callbacks' app/controllers/application_controller.rb:404:in block in with_resolved_locale’

Env

HTTP HOSTS: forums.librehealth.io

Tickets 插件已报告一个问题,不幸的是,它目前被标记为 #plugin:broken-plugin。如果从 app.yml 中移除该插件并重新构建,应该可以使网站的其余部分正常使用标签。

(我已将这些帖子移至 Tickets 主题,以便更好地跟踪此问题 :+1:

2 个赞

@JammyDodger 我完全错过了——谢谢!

2 个赞

看到它被搁置真是令人失望——这肯定花费了大量心血,并且潜力巨大!我希望它将来能被重新启动……

2 个赞

在讨论将 #plugin:broken-plugin 移至该主题时

2 个赞

我也发现了 TIckets 插件的问题,在尝试为任何 PM 添加标签时会导致“内部服务器错误”,已禁用该插件,恢复正常。

错误日志:

plugins/discourse-tickets/plugin.rb:47:in `block in filter_allowed_tags'

plugins/discourse-tickets/plugin.rb:47:in `select'

plugins/discourse-tickets/plugin.rb:47:in `filter_allowed_tags'

app/controllers/tags_controller.rb:249:in `search'

actionpack (7.0.2.4) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'

actionpack (7.0.2.4) lib/abstract_controller/base.rb:214:in `process_action'

actionpack (7.0.2.4) lib/action_controller/metal/rendering.rb:53:in `process_action'

actionpack (7.0.2.4) lib/abstract_controller/callbacks.rb:234:in `block in process_action'

activesupport (7.0.2.4) lib/active_support/callbacks.rb:118:in `block in run_callbacks'

app/controllers/application_controller.rb:404:in `block in with_resolved_locale'

i18n (1.10.0) lib/i18n.rb:328:in `with_locale'

app/controllers/application_controller.rb:404:in `with_resolved_locale'

activesupport (7.0.2.4) lib/active_support/callbacks.rb:127:in `block in run_callbacks'
2 个赞

@robbyoconnor @Nick_Chomey @jerry0 我刚刚推送了一个针对此插件问题的修复程序

如果你们中的一位能够更新并回复以确认修复,我将把这个插件移回 #plugin。

4 个赞

我很快就会测试它并汇报。

2 个赞

@angus

非常感谢您为此付出的努力!我真心希望它能尽快完成!

我已经进行了一些基本测试,它仍然存在我在此处报告的大部分问题。

我不再收到“抱歉,发生错误”的弹出错误消息,但单击“Tickets”模块中的“Assign”按钮(在标签的右侧)没有任何反应,并且会产生之前在屏幕录像中显示的相同控制台错误。

我可以使用主题下方的“Assign”按钮分配一个主题,但“Tickets”和“Assign”似乎仍然没有相互通信。“Tickets Dashboard”中的“Assigned”列没有填充。

另外,我希望您在查看此问题时,也能关注一下许多人提出的请求——允许“Staff”以外的组使用“Tickets”。我稍微查看了一下代码,注意到有几个地方写着类似 currentUser.staffis_staff 等。所以我猜想,要么

  1. 放宽/删除该规定,
  2. 添加另一个用户组(例如 TicketsTeam),我们可以自己创建和定义,或者
  3. 在“Tickets”设置中添加某种自定义机制,允许我们定义哪些组可以访问“Tickets”。

显然 3 > 2 > 1,但无论您倾向于哪种方式,都将不胜感激!我也认为这将使“Tickets”更具广泛吸引力,从而使您之前的辛勤工作更有价值。

再次感谢!

1 个赞

@angus - 是的,这已经修复了标签问题。

但是,我仍然认为这个插件是坏的,因为与“已分配”插件的任何交互都无法正常工作了,我和 @Nick_Chomey 几个月来一直在报告这个问题(并单独联系Pavilion,但没有得到任何有用的回应)。它根本不显示工单分配给谁,这是一个相当重大的问题。

谢谢,希望这个问题仍然可以得到修复。

1 个赞

@Nick_Chomey @jerry0 我已更新此插件以支持assign插件中的更改。

抱歉,我们可能错过了您的消息!您是如何尝试联系我们的?您是否提交了bug报告(我没有看到关于tickets插件的报告)?您是在别处给我发消息了吗?还是您指的是您在本主题中早些时候的帖子?

鉴于标签问题已确认修复,并且我已经处理了assign集成,我将把它移回#plugin。

6 个赞

你好 Angus - 我非常感谢你为此付出的努力。这太棒了!!!(并且回答你的问题,我按照你在上面你的帖子中的建议,给 @ellibereth 发了几次私信)。抱歉,我没有提交bug报告,但以后会注意的!!

3 个赞

@angus 感谢您为此付出的额外努力。当我访问 site.com/admin/tickets 时,我收到此错误:

如果我勾选“将用户分配的路由重定向到工单仪表板”,该错误就会消失。

另外,我认为 @jerry0 指的是我们在过去 6 个月里在这里发布的各种标记回复……我认为那些已经足够了,因为您和您的团队已经多次承认了这些问题……

如果这里有一个非员工可以访问的工单机制,那么一群不相关的人就可以轻松地跟踪和管理公共任务…… :wink:

对于像 Discourse 这样通常运行的去中心化社区来说,这是非常需要的东西。使用单独的项目管理工具(站外摩擦、成本和过度杀伤)没有意义,并非所有问题都值得在 Github 上创建/跟踪(站外摩擦、非代码相关问题/任务等……),而且,显然,这样的任务需要的不仅仅是一个主题类别(因此有了这个插件)。

已经可以使用 Assign Plugin 将主题分配给非员工(例如特定组内的人员)——将其功能/访问权限扩展到 Tickets 插件似乎是自然而然的(而且,我怀疑,并不难)。我自己会做的,但我真的不知道 Discourse 开发是如何工作的……我需要几天时间才能弄清楚。

所以,我真的希望您能快速查看一下我之前的帖子中建议的修改 Tickets 的方法之一。关于这一点最后的想法——考虑到非员工无法访问 site.com/admin,也许工单仪表板可以/应该移至用户仪表板,就像分配仪表板一样,例如 site.com/u/[username]/activity/tickets

1 个赞

所以,我只是想确认一下,如果启用了“门票重定向分配”,那么所有内容(包括分配集成)是否都按预期工作?我明天会查看问题本身。

是的,我们可以考虑添加这个,但插件在添加此功能之前需要单元测试,所以这至少要几个月后才能实现。这个插件最需要解决的问题是加强现有功能,以便在出现兼容性问题(如最近的标签问题)时更容易解决。

这个插件之所以没有得到更多的关注,主要是因为我们时间不够。但你可以帮助我们解决这个问题。找一个有 Ruby on Rails 和 JavaScript 经验的开发者,或者愿意学习的开发者,让他们与我联系,我将作为这个插件的维护者指导他们。正如俗话所说,我总是愿意授人以渔。

你是开发者吗?我很乐意帮助你开始 Discourse 开发,这样你就可以接管这个插件。从这里开始,一旦你完成了,我将为你安排一些涉及 Tickets Plugin 的入门任务。

5 个赞

非常感谢您深思熟虑的回复!

我现在完全理解了,在您解释了插件需要解决的根本问题之后,我们才能继续推进。

我是一名相当新手级的“开发者”,主要专注于 WordPress(php、mysql、一点点 js),所以几个月前我很乐意接受指导,学习如何将此功能集成到插件中。但很遗憾,我现在真的没有时间了。我对 Discourse 的兴趣仅限于我为开源 CyberPanel Web 控制面板创建/迁移的新论坛。

开发者没有时间或技能/意愿进行社区管理,所以他基本上是独自一人。自从我 6 个月前介入并将所有内容——支持、文档等——迁移到 Discourse 以来,情况已经大有改善。最后一块拼图是某种工单管理系统,以便社区和开发者更好地跟踪需要完成的工作。

如果有人好奇,可以在这里查看:https://community.cyberpanel.net/

总之,我真心希望其他人能接受您慷慨的指导提议!

2 个赞

既然 CyberPanel 是一家盈利性企业,也许可以资助这项工作? 我相信 Pavilion 会很乐意与其合作。

2 个赞

我正在寻找一种方法来接收社区成员的反馈/建议,所有员工都可以查看,但其他非员工成员看不到。这看起来可以作为一种解决方案,但我不太清楚它在实践中是如何工作的。我的意思是用户会创建一个私信并将其标记为工单吗?

我也乐于接受关于其他适用于此目的的插件的建议。

如何创建新工单?希望能有一些指南……

1 个赞

在“Tickets”中,点击名为“Priority”的列标题,您期望列表按该列排序。它没有排序。它没有任何效果。

它将此添加到 URL:

&order=priority

但列表仍然是随机顺序。

您好,欢迎您 @eddie_patently.com :slight_smile:

我已经将您的帖子移至 Tickets Plugin 🎟 主题,以便该插件的维护者了解您的问题。 :+1:

2 个赞