在 Trac 中向用户帐户添加附加信息

Adding additional information to user accounts in Trac

对于我的 Trac 插件,我想为每个用户添加一种颜色(作为字符串或 rgb 值),以便在插件的其他地方使用。颜色应该可以通过管理页面配置。

是否可以在 AccountManagerPlugin 面板的用户设置中向 table 添加另一列,如果是,我如何将信息添加到数据库以便我可以从其他地方访问它?

另一种选择是为我的插件创建一个新的管理面板,这就是我目前正在做的,table 仅包含用户名及其颜色。但在这种情况下,虽然我已经有了空的管理面板,但我不知道如何添加 table 和向数据库添加新项目。

解释我需要颜色的原因:
我的插件为票证添加了一个新的导出选项,并使用我自己的 html 和 css 结构对其进行格式化。门票包含所有者的姓名,并且此名称应以其各自的颜色显示。这方面的代码已经存在,现在我只需要从数据库中检索颜色,并预先通过管理面板将它们保存到数据库中。

只能通过管理页面更改颜色。

Trac 中没有用户管理面板,但是 AccountManagerPlugin 有一个用户管理面板。如果您正在使用 AccountManagerPlugin,请告诉我,我会提供更多相关信息。

将讨论保持在 Trac 的范围内,您可以通过实现 IPreferencePanelProvider. You could save the value in the session_attribute table 实现用户通过首选项面板进行选择的能力,并在其他任何地方使用它。对于名为 user_color 的属性,可以使用 req.session.get('user_color') 检索该值。

可以在 trac.prefs.web_ui. I've linked to the code in Trac 1.1.6 because the module was refactored so that the preferences were more modular #9162 中找到示例。