OpenProject 10.6.0 版本详解:表格格式化、快速工时记录与 BIM 增强
【免费下载链接】openprojectOpenProject is the leading open source project management software for product, project and portfolio management. A powerful Jira alternative with agile planning, issue tracking, roadmaps, Gantt charts, time tracking, collaboration features, and more. Available on premises or in the cloud. ⭐ Star us on GitHub项目地址: https://gitcode.com/GitHub_Trending/op/openproject
OpenProject 10.6.0(发布于 2020-06-02)是该开源项目管理软件在 10.x 系列中的一次重要功能迭代,重点带来了富文本编辑器表格样式定制、工作包工时快速记录、斯洛文尼亚语 100% 翻译、卡片视图项目归属展示,以及面向建筑行业的 BIM 版本 BCF 管理增强。本文以 官方发布说明 为主体,结合仓库源码(app/、modules/bim/)中的实现证据,逐项解读这些新特性的使用方式与底层实现,帮助你完整了解本次版本的全部变更。
版本概览
OpenProject 10.6.0 的核心更新点如下:
| 特性 | 说明 |
|---|---|
| 表格样式增强 | 富文本编辑器中可自定义表格宽度、颜色、内边距、对齐方式与长词换行规则 |
| 快速工时记录 | 无需离开当前工作环境,在工作包详情页或工作包表格中直接弹出窗口记录工时 |
| 斯洛文尼亚语支持 | OpenProject 现已 100% 翻译为斯洛文尼亚语 |
| 卡片视图项目归属 | 工作包卡片视图直接显示所属项目名称 |
| 分配者看板改进 | 项目无成员时创建/扩展分配者看板会给出明确通知 |
| 活动聚合 | Activity 模块按分钟聚合同一用户对同一工作包的同类变更记录 |
| BIM 版本增强 | BCF XML 版本校验、IFC 文件上限提升至 500MB、独立删除 BCF 问题权限 |
表格格式化增强:让文本编辑器中的表格更可控
10.6.0 之前,在富文本编辑器中插入表格后,用户能定制的样式十分有限。本次版本为表格新增了多组样式选项,可作用于工作包描述、会议纪要、Wiki 页面与新闻正文中的任意表格,具体包括:
- 表格与单元格宽度限制:可限制表格整体宽度以及单元格宽度,避免表格撑破页面布局;
- 网格线与单元格背景颜色:支持以 HEX/XSL 色值或标准调色板为网格线和单元格背景着色;
- 单元格内边距(padding):控制单元格内容与边框的间距;
- 单元格内对齐:设置单元格内文本/内容的水平对齐方式;
- 长词换行 CSS 规则:定义 CSS 规则以断开单元格内的长单词,防止溢出。
从实现角度看,这些能力依托于富文本编辑器底层对表格元素(<table>、<td>、<th>)内联样式与 CSS 类名的支持,编辑器将用户的格式化选择直接映射为 HTML 表格的样式属性并随内容一并保存,因此在导出的页面与打印视图中同样生效。如果你在文本编辑器中看不到这些选项,请确认你使用的是包含富文本编辑(Text formatting)模块的视图,并在编辑状态下选中表格后再展开表格工具栏。
快速工时记录:无需离开当前页面的弹窗式记时
工时记录(Time logging)是本次版本的重头改进。此前记录工时需要进入专门的工时页面,打断了工作流;10.6.0 将这一操作收敛为弹窗(pop-up)形式,全程不离开当前工作环境:
- 工作包详情页:在花费时间(Spent time)属性附近新增了 "Log time" 图标,点击后在弹窗中填写时长与说明即可完成记录;
- 工作包表格视图:只要把"SPENT TIME"(已花费时间)作为表格列加入视图,该列即出现记时入口,点击 "Log time" 同样打开弹窗记账。
从变更列表可以还原该功能的三处关键演进(对应社区工单 #32126、#32129、#33307):
- 全局统一使用 Angular modal 进行工时记录:整个应用(详情页、表格视图等)共用同一个模态框组件,保证交互一致;
- 在详情页"花费时间"属性旁新增记时图标:让入口显式化、可发现;
- 将 "Log time" 图标移出 hover 高亮区域:此前图标仅在鼠标悬停时显现,容易错过,10.6.0 将其固定展示,提升可操作性。
同时,本次修复了多项与工时记录相关的缺陷,包括:无权限用户仍会看到记时按钮(#33152)、已记录工时小部件不刷新(#33217)、含"版本(version)"类型自定义字段时无法记录工时(#33378)、记录工时时拉取最近工作包触发内部错误(#33472),以及 10.5.2 升级后 PostgreSQL 环境下的工时记录问题(#33310)。
卡片视图:卡片归属项目一目了然
工作包的卡片视图(card view)在 10.6 中升级:为了明确每个卡片属于哪个项目,卡片上现在直接显示项目名称(对应工单 #31556 "Show Project name in Card View")。这在跨项目看板、子项目混排场景下尤为实用——当看板中包含来自多个子项目的工作包时,用户无需进入详情即可区分卡片归属。
同时修复了卡片视图的两个交互缺陷:点击卡片上的信息图标无响应(#33451)、在子 URL 部署环境下分配者看板崩溃(#33202)。
分配者看板:无成员时给出明确通知
在敏捷看板中按"分配者(assignee)"创建看板列表时,如果项目当前没有任何成员,10.6.0 会立即给出通知,说明无法创建分配者列表;同样,当你试图在成员已经全部分配完的情况下继续添加新的分配者列表时,也会收到提示(对应工单 #33073 "Add notification message to assignee board when no project members")。这一改进避免了以往"列表静默创建但内容为空"的困惑。
语言支持:斯洛文尼亚语 100% 翻译完成
OpenProject 10.6.0 宣布对斯洛文尼亚语(Slovenian)的翻译完成度达到 100%,社区贡献者通过 CrowdIn 平台持续维护各语言翻译,这是 OpenProject 多语言本地化工作的重要节点。
更多易用性改进与 Bug 修复
新闻组件样式与活动聚合
- 新闻组件(news widget)样式优化:项目概览页与首页上的新闻组件 UI 得到重新打磨;
- 活动(Activity)模块按分钟聚合:从 10.6.0 起,同一用户在同一分钟内对同一个工作包的同类变更,Activity 模块只会显示一条记录,分钟内的多次变更会被聚合展示。这大幅减少了高频编辑场景下的活动刷屏。从源码结构看,该能力建立在
app/models/activities/目录下的活动事件体系之上(如 fetcher.rb 负责按事件类型与权限拉取活动、event_mapper.rb 负责将 journal 映射为活动事件),聚合发生在活动事件的生成/查询环节,对应 Epic #23744 "Aggregate activity entries"。
其他值得关注的修复与变更
- 日期选择器仅允许选择未来 10 年内的年份,需要扩大范围(#29413);
- 会议页面日期格式异常(#32986);
- 工作包长文本自定义字段问题(#33143);
- 成本报表的 .xls 导出小数精度错误(#33149);
- 新建类别时主菜单高亮不正确(#33154);
- 主菜单缩放条图标无法拖拽(#33187);
- 工作包评论每次描述调用只能编辑一次(#33200);
- OAuth 设置与文档未提供端点信息(#33241);
- 设置当前单位成本费率时超时/500 错误(#33319);
- 表单出错后位置错乱(#33324);
- 在工作包表格中创建子级未建立父子关系(#33329);
- OAuth 端点需要在 CSP 头 "form-action" 中允许目标主机(#33336);
- 邮件配置在 worker 中未重新加载(#33413);
- 设置新父级时的布局错误(#33449);
- 取消防按钮样式不统一(#32919);
- token 结构扩展 company 与 domain 属性(#33129);
- LDAP 连接支持自定义 CA 路径(#33345);
- 富文本编辑器启用更多表格功能(#33349);
- 项目支持出站 Webhooks(#33355)。
OpenProject 10.6.0 BIM 版:BCF 管理能力显著增强
OpenProject BIM 10.6 同步发布,面向建筑行业(building industry)的 BIM 项目管理,尤其是 BCF(BIM Collaboration Format)管理能力得到大幅改进。
BCF XML 导入版本校验
BCF XML 文件在导入前会先检查其版本号是否为2.1;若为更早版本,导入将直接不启动,以避免导入过程出错。这一校验在源码中有明确实现:modules/bim/lib/open_project/bim/bcf_xml/importer.rb中定义了MINIMUM_BCF_VERSION = "2.1",bcf_version_valid?方法会打开上传的 ZIP 文件、读取其中的bcf.version条目、解析VersionId,并用Gem::Version与 2.1 进行比较;任何解析异常都会被捕获并返回false("The uploaded file could be anything."),保证非 BCF 文件或损坏文件不会进入导入流程。
该导入器的其余逻辑同样值得关注(见 importer.rb):导入选项DEFAULT_IMPORT_OPTIONS支持配置未知类型/状态/优先级采用默认值、无效人员匿名化、未知邮箱邀请、非成员处理角色等行为;导入流程会先处理成员(无效人员、未知邮箱、非成员),再同步所有 BCF topic 到工作包。BCF 中的问题(issue)在仓库中以Bim::Bcf::Issue模型承载(表名bcf_issues,见 issue.rb),与WorkPackage关联,并级联持有 viewpoints 与 comments。
IFC 文件大小上限提升至 500 MB
BIM 版中 IFC 模型文件的上传大小上限被提升到500 MB。对应的种子配置位于modules/bim/app/seeders/bim/basic_data/setting_seeder.rb,其中将attachment_max_size设置为512 * 1024(即 512 MB),同时把bim模块加入default_projects_modules默认项目模块列表。注意该上限受全局附件大小设置影响:上传时若文件超过Setting.attachment_max_size,会返回"文件过大"错误(见 ifc_models_controller.rb),实际可用上限以部署环境配置为准。
BCF 管理独立删除权限
本次版本为**删除 BCF 问题(BCF issues)**引入了独立权限。权限定义在modules/bim/config/locales/en.yml中(permission_delete_bcf: "Delete BCF issues"),并在契约层落地:modules/bim/app/contracts/bim/bcf/issues/delete_contract.rb通过delete_permission :delete_bcf声明删除 BCF 问题所需权限(同理可参见 viewpoints 的删除契约)。这意味着管理员可以更细粒度地控制"谁能删除 BCF 问题",而不必开放全部 BCF 管理权限。
BIM 版其他改进与修复
- 创建全局工作包时控制台不再报 BIM 错误;
- 自 BCF 2.1 起,BCF-XML 文件后缀应为
.bcf而非.bcfzip; - BCF-XML 导入界面在主菜单中激活 "Work Package" 模块;
- 项目无 IFC 模型时,viewpoint URL 不再陷入重定向循环;
- 引导(onboarding)流程修复:非管理员因缺少查看看板权限而无法完成引导的问题。
需要注意的是,BIM 版仍处于持续开发中,当前版本属于早期状态,后续会不断补充建筑行业特有功能。如需体验,可在 BIM 版本发布页申请免费测试实例。
致谢与社区贡献
本版本的发布离不开社区的力量:Marc Vollmer、Ricardo Vigatti、Sébastien VITA、Tino Breddin、Lukas Zeil、Rajesh Vishwakarma、Gio @ Enuan、Harald Holzmann 等社区成员报告并协助定位了大量 bug;DBI AG 赞助了 BCF 管理功能;Lindsay Kay 负责 3D 模型查看器 xeokit 的集成并改进 IFC 查看器相机控制;Georg Dangl 开发了 OpenProject 的 Revit 集成。所有在 CrowdIn 上提供翻译、在论坛中提问与解答的社区用户同样值得感谢。
小结
OpenProject 10.6.0 通过表格样式定制、弹窗式快速工时记录、卡片项目归属与分配者看板通知等改进,明显降低了日常工作流的操作成本;Activity 按分钟聚合则改善了高频协作场景下的信息噪音。BIM 版则围绕 BCF 2.1 版本校验、500 MB IFC 上传上限与独立删除权限,为建筑行业协作提供了更可靠、更可控的基础能力。以上全部变更的官方清单可在 发布说明 中查看,相关实现证据可在 app/models/activities 与 modules/bim 源码中进一步追溯。
【免费下载链接】openprojectOpenProject is the leading open source project management software for product, project and portfolio management. A powerful Jira alternative with agile planning, issue tracking, roadmaps, Gantt charts, time tracking, collaboration features, and more. Available on premises or in the cloud. ⭐ Star us on GitHub项目地址: https://gitcode.com/GitHub_Trending/op/openproject
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考