ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

OpenProject 10.1.0 版本详解:项目状态报告、API v3 项目 CRUD 与 Rails 6 升级

OpenProject 10.1.0 版本详解:项目状态报告、API v3 项目 CRUD 与 Rails 6 升级 OpenProject 10.1.0 版本详解项目状态报告、API v3 项目 CRUD 与 Rails 6 升级【免费下载链接】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.1.02019-10-28 发布官方发布说明系统梳理该版本的两大核心新特性项目状态报告Project Status Reporting与API v3 的项目 CRUD 能力并附带说明工作包编辑字段整合、Rails 6.0.0 升级等维护性改进。通过结合当前仓库源码读者将理解项目状态从「状态枚举定义 → 设置入口 → 红绿灯小部件渲染 → API 表示 → 列表过滤与导出」的完整技术链路掌握如何在项目概览页配置状态小部件、如何通过 API v3 读写项目状态并了解版本升级路径。版本概览OpenProject 10.1.0 的三大主题OpenProject 10.1 的主要亮点是全新的项目概览仪表盘页面project overview dashboard及其内置的项目状态小部件用于在线的项目状态上报。除此之外该版本还包含大量缺陷修复与代码维护工作整体技术状态得到明显改善。三大主题可归纳为项目状态报告在项目概览页以「红绿灯」形式呈现项目状态方便团队与干系人随时掌握项目是否在轨on track、存在风险at risk或偏离轨道off track。API v3 支持项目 CRUD此前 API v3 对项目只读本版本起可对项目执行创建、读取、更新、删除全生命周期操作。代码维护整合工作包编辑字段实现并统一视觉风格底层框架升级到 Rails 6.0.0。项目状态报告将项目概览页升级为汇报仪表盘红绿灯状态小部件Status Widget新引入的项目状态小部件可以添加到项目概览页面project overview page实现一目了然、公开透明的项目状态汇报。它用红绿灯语义展示项目状态团队成员与干系人可以在同一位置快速判断On track在轨——项目按计划推进无重大问题或阻塞At risk存在风险——项目面临潜在风险需关注Off track偏离轨道——项目已偏离计划需要干预。同时小部件还支持附加关键项目信息如项目负责人project owner、截止日期due dates、重要资源链接等从而把项目概览页扩展成一个详细的汇报仪表盘reporting dashboard。初始状态为 NOT SET未设置小部件在首次激活时显示占位符NOT SET未设置提示项目尚未上报状态。这一点在源码中有多处印证状态辅助模块 project_status_helper.rb 中定义了常量NOT_SET not_set当状态码为nil时返回-not-set的 CSS 类与本地化的 Not set 文案对应的单测 project_status_helper_spec.rb 明确断言了nil状态码的渲染行为。状态枚举六种状态码当前仓库的 Project 模型 通过 Rails enum 定义了完整的项目状态码比发布说明中提到的三种状态更丰富enum :status_code, { on_track: 0, at_risk: 1, off_track: 2, not_started: 3, finished: 4, discontinued: 5 }这六个状态码on_track、at_risk、off_track、not_started、finished、discontinued的本地化名称定义在 config/locales/en.yml依次为 At risk、Discontinued、Finished、Not started、Off track、On track。前端小部件实现小部件的前端实现位于 project-status.component.ts是一个继承自AbstractTurboWidgetComponent的 Angular 组件其 HTML 模板 project-status.component.html 通过turbo-frame懒加载状态内容并支持属性帮助文本与部件菜单。状态说明status explanation除了状态码本身发布说明强调可以「附加重要项目信息」。对应地Project 模型还维护了status_explanation字段状态描述用户可以在设置状态时以富文本形式记录变更、项目 KPI 或其他相关信息。该字段在 API 表示层由 project_representer.rb 以formattable_property暴露。设置项目状态项目设置与项目首页两条路径根据用户指南 docs/user-guide/projects/project-status/README.md设置项目状态有两种方式项目设置Project settings在左侧项目模块菜单中选择「Project settings」然后选择对应的状态值还可以通过下方的状态描述字段补充变更记录、项目 KPI 等额外信息。项目首页Project home如果尚未配置项目状态小部件会默认出现在首页直接通过下拉菜单即可设置状态。详细的用户指南见 docs/user-guide/projects/project-status/小部件在项目首页的完整行为说明见 项目首页部件文档。项目状态的展示位置项目状态一旦设置会出现在 OpenProject 的多个模块中项目列表Project lists项目列表页展示所有项目及其状态列并支持按状态过滤与排序。实现上过滤由 project_status_filter.rb 提供查询键project_status_code类型为:list_optional基于status_code字段生成 SQL排序由 project_status_order.rb 提供按status_code升降序。预置的「项目状态」静态查询如 on track / at risk / off track定义在 static.rb。项目首页Project home项目状态以可拖拽的小部件形式显示用户可自定义项目概览布局。导出Export项目导出时状态列由 status.rb 格式化输出本地化的状态码名称未设置状态时输出空字符串。API v3 新增项目 CRUD 操作发布说明指出API v3 现在支持对项目执行 CRUD增删改查。这在仓库中有完整的路由与测试支撑路由入口 projects_api.rb 挂载了resources :projects其中get列表/索引与post创建直接通过SqlFallbackedIndex与Create端点挂载route_param :id下的嵌套 API 则服务于单项目操作。项目的 API 表示 project_representer.rb 以resource :status暴露状态getter在status_code存在时渲染StatusRepresentersetter通过LinkObject将 API 的status链接写回status_code属性status_explanation作为可写属性同步暴露。项目状态资源端点 statuses_api.rb 提供GET /api/v3/project_statuses/:id其中:id必须是Project.status_codes的合法键否则返回 404。状态表示器 status_representer.rb 输出_type: ProjectStatus、id与本地化的name三个字段。测试佐证请求级测试 project_status_resource_spec.rb 验证了合法状态返回 200 且_type为ProjectStatus非法状态返回 not found渲染级测试 status_representer_rendering_spec.rb 验证了self链接、_type、id、name属性。基于 API 表示层可通过如下方式通过 API v3 读取项目状态示意GET /api/v3/projects/{id} # 响应中的 status 链接形如 # status: { href: /api/v3/project_statuses/on_track, # title: On track } GET /api/v3/project_statuses/on_track # 响应{ _type: ProjectStatus, id: on_track, name: On track }注意当前仓库已演进至更高的主版本API 路由与字段行为以当前仓库源码为准如 projects_api.rb 中保留了面向所有 workspace 类型的兼容注释。代码维护编辑字段整合与 Rails 6 升级整合工作包编辑字段实现OpenProject 引入了统一外观与观感的工作包编辑字段work package edit fields此前分散、风格各异的编辑字段现在拥有统一的技术基础视觉上也趋于一致。这一改动降低了前端维护成本也修复了类型下拉框样式丑陋等问题。升级到 Rails 6.0.0OpenProject 10.1 将底层框架升级到Rails 6.0.0。作为参考当前仓库的 Gemfile 已进一步演进到gem rails, ~ 8.1.3说明自 10.1 之后框架又经历了多次大版本升级10.1 的 Rails 6.0 升级是这条演进路径上的重要里程碑。缺陷修复与变更清单Bug fixes and changes10.1 版本修复了大量与项目概览、工作包、Gantt 图表、看板boards、文档插件、邮件通知等相关的缺陷代表性修复包括状态小部件位于页面底部时下拉菜单错位用户缺少权限时项目概览的显示字段未保持「只读」Gantt 图表中新调度条无法正常工作看板中状态列可被重复添加多次小部件大小有时不可调整、渲染间距异常、状态图顺序错误项目状态描述在从项目设置添加宏时未显示项目概览页偶发空白、小部件闪烁、无法移动工作包评论内容过宽时无法编辑、编辑时主题跳动会议评审邮件通知时区错误、复选框在文本编辑器中的格式错误预算小数分隔符显示错误、仓库提交中指向工作包的链接样式异常版本编辑缓慢/api/v3/versions/available projects在大项目集合下性能问题传入邮件unknown useraccept时产生未翻译的契约错误复制项目时缺少直接错误提示、Grid 中无法用 Escape 退出编辑等。升级到 OpenProject 10.1Enterprise 云版会自动在数天内升级到最新的 10.1 版本无需手动操作。本地安装需要执行少量变更来完成升级请参阅 升级指南。后续展望发布说明预告下一个版本将引入多项目组合视图multi-project portfolio view为最重要的项目提供快速概览相关演进可进一步参考 组合管理相关代码 与当前仓库的用户指南文档。版本信息速查项目内容发布版本10.1.0发布日期2019-10-28核心新特性项目状态报告红绿灯状态小部件、API v3 项目 CRUD代码维护工作包编辑字段整合、Rails 6.0.0 升级相关文档项目状态用户指南、升级指南关键源码Project 状态枚举、状态 API、项目 API【免费下载链接】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),仅供参考
返回列表