OpenProject 15.2.0 版本特性深度解析:工作包提醒、工时表 PDF 导出与关系 Lag 调度
OpenProject 15.2.0 版本特性深度解析工作包提醒、工时表 PDF 导出与关系 Lag 调度【免费下载链接】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/openprojectOpenProject 15.2.0发布于 2025-01-22是一次以提醒与调度精细化为核心的功能性版本更新重点引入了工作包个人提醒Work package reminders、工时报表 PDF 导出、前置/后继关系 Lag 调度等能力并修复了一批影响通知中心、文件存储集成与层级自定义字段的缺陷。本文以官方 15.2.0 发布说明为骨架结合本仓库源码与用户指南逐项拆解这些新特性的使用方式、底层实现与配置要点帮助你在升级后快速上手并排查相关问题。版本概览与升级建议官方发布说明明确指出15.2.0 包含多个 Bug 修复建议所有用户升级到该最新版本。本次发布由德国科隆市City of Cologne与 ZenDiS 赞助部分功能开发社区成员与 Crowdin 翻译贡献者共同参与了质量改进。从功能走向看15.2.0 的更新集中在三个方向个人提醒体系在任意工作包上设置未来某个时间点的提醒并在通知中心收到站内通知可选立即邮件推送报表导出扩展Time and costs 模块的工时报表支持 PDF 导出此前仅有 Excel调度精细度提升前置/后继Predecessor/Successor关系支持 Lag工作日偏移文件存储集成支持在文件选择器中直接新建文件夹层级类型自定义字段支持分组与排序。下文按发布说明中的重要功能变更章节逐一展开并在文末给出完整的 Bug 修复清单与源码级佐证。工作包提醒Work package reminders功能入口与使用方式在任意工作包详情页点击工具栏中的**提醒图标闹钟**即可为该工作包设置一个未来时间点的个人提醒。设置成功后你会收到一条指向该工作包的站内通知出现在通知中心中。点击图标后系统会弹出预定义时间选项并最终打开设置弹窗弹窗内可调整日期、时间并附加备注该备注会在提醒触发时显示在通知中心明天3 天后一周后一个月后特定日期/时间[!TIP] 除特定日期/时间外其余预定义选项的时间默认固定为所选日期的9:00 AM可在弹窗中再次调整。设置成功后提醒图标会显示角标badge再次点击图标即可修改既有提醒。在提醒触发时间到达时通知中心会展示该提醒若同一工作包存在多条通知提醒内容会优先显示在页面底部若同时配置了日期提醒date alert两者会被合并展示。详细交互说明参见用户指南 edit-work-package 中的 Work package reminders 一节。源码视角提醒的建模与调度从本仓库源码可以看到提醒功能是一个完整的模型 异步任务 通知服务链路数据模型Reminderreminder.rb是一个多态模型belongs_to :remindable, polymorphic: true与创建者creator关联并通过has_many :reminder_notifications和has_many :notifications, through: :reminder_notifications级联到通知。它当前是纯个人化的——visible(user)仅返回creator user且该用户仍对 remindable 对象可见的提醒。upcoming_and_visible_to用于筛选尚未完成completed_at IS NULL且尚未生成通知的待触发提醒。关联模型ReminderNotificationreminder_notification.rb作为Reminder与Notification之间的联接表。调度任务Reminders::ScheduleReminderJobschedule_reminder_job.rb通过set(wait_until: reminder.remind_at).perform_later(reminder)在提醒时间精确触发触发时若提醒已不可见例如用户失去对该工作包的访问权限则直接将completed_at置为当前时间否则调用Notifications::CreateService以reason: :reminder生成通知成功后创建ReminderNotification记录并判断用户偏好recipient.pref.immediate_reminders[:personal_reminder]来决定是否立即投递邮件Mails::Reminders::NotificationDeliveryJob。邮件聚合任务Notifications::ScheduleReminderMailsJobschedule_reminder_mails_job.rb每 15 分钟运行一次include Cron::QuarterHourScheduleJob找出在上下边界时间内有未发送提醒邮件的用户为其排队Mails::ReminderJob而Mails::ReminderJobreminder_job.rb则使用 GoodJob 并发锁保证每个用户同一时刻只有一个提醒邮件任务渲染基于unsent_reminders_before通知集合的DigestMailer.work_packages摘要邮件。这条链路解释了发布说明中的两个行为一是提醒通知默认只在通知中心站内出现二是若希望个人提醒立即通过邮件送达需要在账户设置中开启对应选项。为个人提醒开启立即邮件通知发布说明特别提示要获得个人提醒的即时邮件需在账户设置中调整。操作路径为Account settings → Notification and email → email reminders 标签页参见 notification-and-email 的 Email reminders 一节默认设置为每日邮件提醒周一至周五 2:00可选择立即接收邮件或仅在特定日期/时间接收也可临时暂停或完全关闭提醒邮件开启立即选项后该条通知不会被重复计入每日摘要。工时报表导出 PDFExport timesheets as PDF操作步骤在项目的Time and costs模块中按需配置好所有报表过滤器后点击Export PDF timesheet按钮即可将工时报表导出为 PDF。此前该模块仅支持 Excel 导出15.2.0 新增了 PDF 格式。导出的 PDF 内容包含报表过滤器筛选出的工时记录示例效果如下[!TIP] 请注意该工时报表只包含工时条目time entries不包含成本条目cost entries。用户指南 reporting 中的 Export time sheets 一节补充了更多导出细节Group by分组设置不会应用到导出的 PDF 文件中同一用户同一天的多条记录会合并为一行显示跨越多天的记录会给出合计行每行列出工作包 ID带链接第一列为日期与缩写星期若 PDF 包含多个用户封面页后会额外生成一页概览表展示每个用户的总工时、每人每天工时汇总。前置/后继关系支持 Lag 偏移Lag 的含义与默认值对于Predecessor/Successor关系15.2.0 支持为关系指定Lag——即两个工作包之间需要保持的最小工作日数量默认值为0 个工作日。Lag 可以为 0、正数或负数帮助你在自动调度模式下精确控制依赖任务的排期间隙。根据用户指南 work-package-relations-hierarchies 中的示例Lag 0后继在前驱完成后的下一个工作日开始Lag 2后继在前驱完成后的第 3 个工作日开始保持 2 个工作日间隔Lag -1后继与前驱完成的当天开始Lag -2后继在前驱完成的前一个工作日开始。[!NOTE] 计算 Lag 时只考虑工作日。例如前驱在周三完成而周六、周日为非工作日则 Lag -3 会将后继排到上一个周四开始。与自动/手动调度模式的配合在**自动调度automatic scheduling**模式下后继默认紧随前驱完成之后开始前驱延迟会连带将后继推迟。若要规划计划内的间隙就为该关系设置 Lag。在**手动调度manual scheduling**模式下前置/后继关系仍然保留但两个工作包可以各自自由排期后继甚至可以排在前驱开始与结束之前。Lag 与Description字段可以在之后任意时间再次编辑以适应项目时间线的变化。相关的新增关系时自动滚动到新关系、优化新增关系弹窗的可理解性等改进也随本版本一并上线。文件存储集成在文件选择器中直接新建文件夹15.2.0 增强了Nextcloud与OneDrive/SharePoint两类文件存储集成在上传文件选择目标文件夹时可以直接创建新的文件夹结构无需先在文件存储服务中单独建文件夹从而在上传过程中就地整理文件简化工作流。该功能对应的底层需求号为 #46811 目录下的 nextcloud-integration 与 sharepoint-integration。层级类型自定义字段分组与排序15.2.0 允许用户按层级类型type hierarchy自定义字段的值对工作包列表进行分组与排序从而在特定层级语境下快速组织、筛选工作包获得更高效的整体视图。例如上图中工作包按 Location 这一层级字段分组为 Germany → Berlin (DC)、Munich、Hamburg (HH) 等层级分支每组下列出对应的工作包及其 ID、主题、类型、状态、优先级等列。该能力来自两个需求启用按层级自定义字段分组#59174与启用按层级自定义字段值排序#59766。此外针对层级多选字段无法分组的问题#59920也已在本次发布中修复。用户信息悬浮卡片Popover在成员Members或活动Activity等页面将鼠标悬停在用户头像上时现在会直接显示该用户的简要信息浮层无需再跳转到用户个人资料页。该特性对应需求 #55581。发布说明同时列出了该功能上线后跟进修复的若干问题悬浮卡片渲染卡顿#59879、在用户本人资料页与其他用户资料页误显示#59898、悬浮卡片被 Meeting 参与者浮层遮挡#59907等均已在 15.2.0 中解决。页面标题与子标题的标准化更新15.2.0 继续在多个项目页面中引入标准化的页面标题PageHeader与子标题SubHeader组件以提升设计一致性。这属于分阶段推进的设计系统改造的第一部分Rails 项目页面对应需求 #53810 组件库中查看。Bug 修复与变更清单以下为 15.2.0 自动生成的完整变更清单按官方发布说明整理新功能Feature编辑前置/后继关系的 Lag 值 #22360在文件位置选择器中直接新建文件夹 #46811更新 Rails 项目页面的 PageHeaders 与 SubHeaders第一部分#53810悬停显示用户信息 Popover #55581工作包查询支持按层级自定义字段分组 #59174工作包提醒基础功能与提醒通知调度 #59436工作包支持按层级自定义字段值排序 #59766新增关系时自动滚动到新添加的关系 #59769新增设置提醒的图标 #59793成本查询导出为工时表 PDF #59824提升新增关系弹窗的可理解性 #60462Bug 修复Bugfix移动端评论输入框需点击两次才能开始输入 #57107桌面端浏览器下活动面板通知中心错误进入移动端布局 #59235Unexpected Content Error日志行中缺失文件夹信息 #59346移动端活动标签不滚动到底部或正确评论 #59458活动标签仅显示一个值即使多个值被更新 #59855用户悬浮卡片渲染卡顿 #59879用户悬浮卡片在用户本人及他人资料页误显示 #59898用户悬浮卡片显示在 Meeting 参与者浮层之后 #59907无法按层级自定义字段多选分组 #59920Proto 插件无法与 OpenProject 15 一起工作 #59931组管理中的项目成员关系错误地列出全局角色 #59934Azure OIDC 登录在客户端密钥过期时返回内部服务器错误 #59960OpenID 配置因 Claims 不是合法 JSON 对象而失败 #59962个人 API 访问令牌创建时错误消息的语言环境错误 #60025Meetings 模块的过滤器翻译缺失 #60113保存新工作包触发浏览器警告消息 #60133Meeting 创建者默认未被添加为受邀者且全部会议菜单点不应默认带过滤器 #60287标题并非始终使用应用标题 #60371在文件选择器中创建文件夹后出现连接错误 #60384非工作日未显示在日历组件上 #60410可滚动弹窗中吸底按钮与上方表单字段间距过小 #60430通知中心中同一工作包的提醒生成两行或更多行点击一行会选中全部 #60449设置提醒操作对未登录用户可用 #60458MessagesController#show 发生 ActionView::Template::Error #60478提醒菜单项位置不正确 #60501工作包表格组件中的过滤器消失 #60546移除对用户设置自身提醒的权限限制 #60568德语环境下关系下拉框首字母大写错误 #60627其中与提醒功能相关的多项修复#60449、#60458、#60501、#60568共同保证了提醒入口的权限边界未登录用户不可见、通知中心展示正确性以及菜单布局的稳定性。版本特性速查特性使用入口关键配置/默认值对应需求号工作包提醒工作包详情页提醒图标预定义时间默认 9:00 AM立即邮件需在账户设置中开启#59436工时表 PDF 导出Time and costs 模块 → Export PDF timesheet仅含工时条目不含成本条目Group by 不生效#59824关系 Lag 偏移工作包关系标签页 → Predecessor/Successor 关系默认 0 工作日可为负仅计算工作日#22360文件选择器中新建文件夹上传文件选择目标文件夹时支持 Nextcloud 与 OneDrive/SharePoint#46811层级自定义字段分组/排序工作包表格 → 按层级字段分组支持单值分组与排序多选分组已修复#59174 / #59766用户信息悬浮卡片Members / Activity 页面悬停头像无需跳转资料页#55581PageHeader/SubHeader 标准化多个 Rails 项目页面分阶段改造第一部分#53810结语OpenProject 15.2.0 通过提醒 通知的完整链路Reminder 模型 → ScheduleReminderJob → 通知中心/邮件摘要将个人时间管理真正融入了工作包工作流PDF 导出、关系 Lag、文件存储就地建文件夹与层级字段分组排序则分别补强了报表交付、自动调度、文件管理与自定义字段展示四个高频场景。建议在升级后重点验证提醒邮件的账户设置、Lag 对自动调度甘特图的影响以及文件存储集成的连接稳定性涉及修复项 #60384。更多细节可继续阅读用户指南 edit-work-package、reporting 与 work-package-relations-hierarchies。【免费下载链接】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),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →